Update jflex to 1.8.2
[scilab.git] / scilab / modules / scinotes / src / java / jflex / matchingblock.jflex
index cdfec55..3b86a66 100644 (file)
@@ -6,7 +6,6 @@ import java.io.IOException;
 import javax.swing.text.Element;
 
 @javax.annotation.Generated("JFlex")
-@SuppressWarnings("fallthrough")
 %%
 
 %public
@@ -17,8 +16,6 @@ import javax.swing.text.Element;
 %type int
 %buffer 256
 
-%switch
-
 %{
     private ScilabDocument doc;
     private Element elem;
@@ -31,7 +28,11 @@ import javax.swing.text.Element;
     public MatchingBlockScanner(ScilabDocument doc) {
         this.doc = doc;
         this.elem = doc.getDefaultRootElement();
-        this.scilabLexer = doc.createLexer();
+        this.scilabLexer = new ScilabLexer(doc, null, false);
+    }
+
+    public int yychar() {
+        return (int) yychar;
     }
 
     public MatchingPositions getNextBlock(int pos, boolean lr) {
@@ -61,9 +62,9 @@ import javax.swing.text.Element;
         }
         if (s == 0) {
             if (lr) {
-                return new MatchingPositions(pos, pos, pos + yychar, pos + yychar + (transp?(yylength()-1):yylength()));
+                return new MatchingPositions(pos, pos, pos + yychar(), pos + yychar() + (transp?(yylength()-1):yylength()));
             } else {
-                return new MatchingPositions(pos, pos, pos - yychar - yylength(), pos - yychar);
+                return new MatchingPositions(pos, pos, pos - yychar() - yylength(), pos - yychar());
             }
         }
 
@@ -109,9 +110,9 @@ import javax.swing.text.Element;
         }
         if (s == 0) {
             if (lr) {
-                return new MatchingPositions(pos, p1, pos + yychar, pos + yychar + (transp?(yylength()-1):yylength()));
+                return new MatchingPositions(pos, p1, pos + yychar(), pos + yychar() + (transp?(yylength()-1):yylength()));
             } else {
-                return new MatchingPositions(p1, pos, pos - yychar - yylength(), pos - yychar);
+                return new MatchingPositions(p1, pos, pos - yychar() - yylength(), pos - yychar());
             }
         }
 
@@ -153,7 +154,7 @@ qstring = (\"|\'){string}(\"|\')
 gnirtsq = \"{string}(\"|\')
 transp = ({spec} | ")" | "]" | "}") "'"
 
-openK = ("if" | "for" | "while" | "select" | "try" | "function")
+openK = ("if" | "for" | "while" | "select" | "try" | "function" | "switch")
 openKx = {openK}{spec}+
 
 elseif = "elseif" | "else"
@@ -164,7 +165,7 @@ closeKx = {closeK}{spec}+
 xcloseK = ({spec} | "%" ){closeK}
 closeS =  ")" | "]" | "}"
 
-esolcK = ("fi" | "rof" | "elihw" | "tceles" | "yrt" | "noitcnuf")
+esolcK = ("fi" | "rof" | "elihw" | "tceles" | "yrt" | "noitcnuf" | "hctiws")
 esolcKx = {spec}{esolcK}
 xesolcK = {esolcK}{spec}
 nepoK = ("dne" | "noitcnufdne")
@@ -234,8 +235,8 @@ nepoKx = {spec}{nepoK}
 
 <PSNART> {
   \'                             {
-                                   if (scilabLexer.getKeyword(start - yychar, false) == ScilabLexerConstants.STRING) {
-                                      savePos = start - yychar - scilabLexer.beginString - scilabLexer.start;
+                                   if (scilabLexer.getKeyword(start - yychar(), false) == ScilabLexerConstants.STRING) {
+                                      savePos = start - yychar() - scilabLexer.beginString - scilabLexer.start;
                                       yybegin(SPEC);
                                    } else {
                                       yybegin(RL);