Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44994
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 17 May 2008 17:33:43 +0000 (17:33 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 17 May 2008 17:33:43 +0000 (17:33 +0000)
Correct BNF grammar so  ${0 lt a ? 1 lt a ? "many": "one": "none"} does not throw an exception
The patch is bigger than I would like due to the code generation tools used

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@657404 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/el/parser/ELParser.html
java/org/apache/el/parser/ELParser.java
java/org/apache/el/parser/ELParser.jjt
java/org/apache/el/parser/ELParserConstants.java
java/org/apache/el/parser/ELParserTokenManager.java
java/org/apache/el/parser/ParseException.java

index cae1bcd..24a312a 100644 (file)
@@ -51,7 +51,7 @@
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">Choice</A></TD>
 <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod7">Or</A> ( &lt;QUESTIONMARK&gt; <A HREF="#prod7">Or</A> &lt;COLON&gt; <A HREF="#prod6">Choice</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod7">Or</A> ( &lt;QUESTIONMARK&gt; <A HREF="#prod6">Choice</A> &lt;COLON&gt; <A HREF="#prod6">Choice</A> )*</TD>
 </TR>
 <TR>
 <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">Or</A></TD>
index 5b6eb1e..34027c2 100644 (file)
@@ -27,15 +27,6 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
                 throw new ELException(pe.getMessage());
         }
     }
-  
-  public static void main(String[] argv) throws Exception {
-         String[] str = { "${foo()}", "${fn.fn:foo() ? a : b}", "${fn:foo() ? (fn_af.f:fd() ? a : b) : b}", "${a.b.c ? a : b}" };
-               for (int i = 0; i < str.length; i++) {
-                       SimpleNode sn = (SimpleNode) ELParser.parse(str[i]);
-                       System.out.println("====\n" + str[i]);
-                       sn.dump("\t");
-               }
-  }
 
 /*
  * CompositeExpression
@@ -216,31 +207,31 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
         break label_2;
       }
       jj_consume_token(QUESTIONMARK);
-      Or();
+      Choice();
       jj_consume_token(COLON);
-                                            AstChoice jjtn001 = new AstChoice(JJTCHOICE);
-                                            boolean jjtc001 = true;
-                                            jjtree.openNodeScope(jjtn001);
+                                                AstChoice jjtn001 = new AstChoice(JJTCHOICE);
+                                                boolean jjtc001 = true;
+                                                jjtree.openNodeScope(jjtn001);
       try {
         Choice();
       } catch (Throwable jjte001) {
-                                            if (jjtc001) {
-                                              jjtree.clearNodeScope(jjtn001);
-                                              jjtc001 = false;
-                                            } else {
-                                              jjtree.popNode();
-                                            }
-                                            if (jjte001 instanceof RuntimeException) {
-                                              {if (true) throw (RuntimeException)jjte001;}
-                                            }
-                                            if (jjte001 instanceof ParseException) {
-                                              {if (true) throw (ParseException)jjte001;}
-                                            }
-                                            {if (true) throw (Error)jjte001;}
+                                                if (jjtc001) {
+                                                  jjtree.clearNodeScope(jjtn001);
+                                                  jjtc001 = false;
+                                                } else {
+                                                  jjtree.popNode();
+                                                }
+                                                if (jjte001 instanceof RuntimeException) {
+                                                  {if (true) throw (RuntimeException)jjte001;}
+                                                }
+                                                if (jjte001 instanceof ParseException) {
+                                                  {if (true) throw (ParseException)jjte001;}
+                                                }
+                                                {if (true) throw (Error)jjte001;}
       } finally {
-                                            if (jjtc001) {
-                                              jjtree.closeNodeScope(jjtn001,  3);
-                                            }
+                                                if (jjtc001) {
+                                                  jjtree.closeNodeScope(jjtn001,  3);
+                                                }
       }
     }
   }
index 9e8f6dd..1a6c41c 100644 (file)
@@ -104,7 +104,7 @@ void Expression() : {}
  */
 void Choice() : {}
 {
-       Or() (<QUESTIONMARK> Or() <COLON> Choice() #Choice(3))*
+       Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
 }
 
 /*
index 4467819..e2c0782 100644 (file)
@@ -19,131 +19,126 @@ package org.apache.el.parser;
 
 public interface ELParserConstants {
 
-       int EOF = 0;
-
-       int LITERAL_EXPRESSION = 1;
-
-       int START_DYNAMIC_EXPRESSION = 2;
-
-       int START_DEFERRED_EXPRESSION = 3;
-
-       int INTEGER_LITERAL = 9;
-
-       int FLOATING_POINT_LITERAL = 10;
-
-       int EXPONENT = 11;
-
-       int STRING_LITERAL = 12;
-
-       int BADLY_ESCAPED_STRING_LITERAL = 13;
-
-       int TRUE = 14;
-
-       int FALSE = 15;
-
-       int NULL = 16;
-
-       int END_EXPRESSION = 17;
-
-       int DOT = 18;
-
-       int LPAREN = 19;
-
-       int RPAREN = 20;
-
-       int LBRACK = 21;
-
-       int RBRACK = 22;
-
-       int COLON = 23;
-
-       int COMMA = 24;
-
-       int GT0 = 25;
-
-       int GT1 = 26;
-
-       int LT0 = 27;
-
-       int LT1 = 28;
-
-       int GE0 = 29;
-
-       int GE1 = 30;
-
-       int LE0 = 31;
-
-       int LE1 = 32;
-
-       int EQ0 = 33;
-
-       int EQ1 = 34;
-
-       int NE0 = 35;
-
-       int NE1 = 36;
-
-       int NOT0 = 37;
-
-       int NOT1 = 38;
-
-       int AND0 = 39;
-
-       int AND1 = 40;
-
-       int OR0 = 41;
-
-       int OR1 = 42;
-
-       int EMPTY = 43;
-
-       int INSTANCEOF = 44;
-
-       int MULT = 45;
-
-       int PLUS = 46;
-
-       int MINUS = 47;
-
-       int QUESTIONMARK = 48;
-
-       int DIV0 = 49;
-
-       int DIV1 = 50;
-
-       int MOD0 = 51;
-
-       int MOD1 = 52;
-
-       int IDENTIFIER = 53;
-
-       int NAMESPACE = 54;
-
-       int FUNCTIONSUFFIX = 55;
-
-       int IMPL_OBJ_START = 56;
-
-       int LETTER = 57;
-
-       int DIGIT = 58;
-
-       int ILLEGAL_CHARACTER = 59;
-
-       int DEFAULT = 0;
-
-       int IN_EXPRESSION = 1;
-
-       String[] tokenImage = { "<EOF>", "<LITERAL_EXPRESSION>", "\"${\"",
-                       "\"#{\"", "\"\\\\\"", "\" \"", "\"\\t\"", "\"\\n\"", "\"\\r\"",
-                       "<INTEGER_LITERAL>", "<FLOATING_POINT_LITERAL>", "<EXPONENT>",
-                       "<STRING_LITERAL>", "<BADLY_ESCAPED_STRING_LITERAL>", "\"true\"",
-                       "\"false\"", "\"null\"", "\"}\"", "\".\"", "\"(\"", "\")\"",
-                       "\"[\"", "\"]\"", "\":\"", "\",\"", "\">\"", "\"gt\"", "\"<\"",
-                       "\"lt\"", "\">=\"", "\"ge\"", "\"<=\"", "\"le\"", "\"==\"",
-                       "\"eq\"", "\"!=\"", "\"ne\"", "\"!\"", "\"not\"", "\"&&\"",
-                       "\"and\"", "\"||\"", "\"or\"", "\"empty\"", "\"instanceof\"",
-                       "\"*\"", "\"+\"", "\"-\"", "\"?\"", "\"/\"", "\"div\"", "\"%\"",
-                       "\"mod\"", "<IDENTIFIER>", "<NAMESPACE>", "<FUNCTIONSUFFIX>",
-                       "\"#\"", "<LETTER>", "<DIGIT>", "<ILLEGAL_CHARACTER>", };
+  int EOF = 0;
+  int LITERAL_EXPRESSION = 1;
+  int START_DYNAMIC_EXPRESSION = 2;
+  int START_DEFERRED_EXPRESSION = 3;
+  int INTEGER_LITERAL = 9;
+  int FLOATING_POINT_LITERAL = 10;
+  int EXPONENT = 11;
+  int STRING_LITERAL = 12;
+  int BADLY_ESCAPED_STRING_LITERAL = 13;
+  int TRUE = 14;
+  int FALSE = 15;
+  int NULL = 16;
+  int END_EXPRESSION = 17;
+  int DOT = 18;
+  int LPAREN = 19;
+  int RPAREN = 20;
+  int LBRACK = 21;
+  int RBRACK = 22;
+  int COLON = 23;
+  int COMMA = 24;
+  int GT0 = 25;
+  int GT1 = 26;
+  int LT0 = 27;
+  int LT1 = 28;
+  int GE0 = 29;
+  int GE1 = 30;
+  int LE0 = 31;
+  int LE1 = 32;
+  int EQ0 = 33;
+  int EQ1 = 34;
+  int NE0 = 35;
+  int NE1 = 36;
+  int NOT0 = 37;
+  int NOT1 = 38;
+  int AND0 = 39;
+  int AND1 = 40;
+  int OR0 = 41;
+  int OR1 = 42;
+  int EMPTY = 43;
+  int INSTANCEOF = 44;
+  int MULT = 45;
+  int PLUS = 46;
+  int MINUS = 47;
+  int QUESTIONMARK = 48;
+  int DIV0 = 49;
+  int DIV1 = 50;
+  int MOD0 = 51;
+  int MOD1 = 52;
+  int IDENTIFIER = 53;
+  int NAMESPACE = 54;
+  int FUNCTIONSUFFIX = 55;
+  int IMPL_OBJ_START = 56;
+  int LETTER = 57;
+  int DIGIT = 58;
+  int ILLEGAL_CHARACTER = 59;
+
+  int DEFAULT = 0;
+  int IN_EXPRESSION = 1;
+
+  String[] tokenImage = {
+    "<EOF>",
+    "<LITERAL_EXPRESSION>",
+    "\"${\"",
+    "\"#{\"",
+    "\"\\\\\"",
+    "\" \"",
+    "\"\\t\"",
+    "\"\\n\"",
+    "\"\\r\"",
+    "<INTEGER_LITERAL>",
+    "<FLOATING_POINT_LITERAL>",
+    "<EXPONENT>",
+    "<STRING_LITERAL>",
+    "<BADLY_ESCAPED_STRING_LITERAL>",
+    "\"true\"",
+    "\"false\"",
+    "\"null\"",
+    "\"}\"",
+    "\".\"",
+    "\"(\"",
+    "\")\"",
+    "\"[\"",
+    "\"]\"",
+    "\":\"",
+    "\",\"",
+    "\">\"",
+    "\"gt\"",
+    "\"<\"",
+    "\"lt\"",
+    "\">=\"",
+    "\"ge\"",
+    "\"<=\"",
+    "\"le\"",
+    "\"==\"",
+    "\"eq\"",
+    "\"!=\"",
+    "\"ne\"",
+    "\"!\"",
+    "\"not\"",
+    "\"&&\"",
+    "\"and\"",
+    "\"||\"",
+    "\"or\"",
+    "\"empty\"",
+    "\"instanceof\"",
+    "\"*\"",
+    "\"+\"",
+    "\"-\"",
+    "\"?\"",
+    "\"/\"",
+    "\"div\"",
+    "\"%\"",
+    "\"mod\"",
+    "<IDENTIFIER>",
+    "<NAMESPACE>",
+    "<FUNCTIONSUFFIX>",
+    "\"#\"",
+    "<LETTER>",
+    "<DIGIT>",
+    "<ILLEGAL_CHARACTER>",
+  };
 
 }
index 7d9d971..14ada64 100644 (file)
  */
 /* Generated By:JJTree&JavaCC: Do not edit this line. ELParserTokenManager.java */
 package org.apache.el.parser;
+import java.io.StringReader;
+import javax.el.ELException;
+
+public class ELParserTokenManager implements ELParserConstants
+{
+  public  java.io.PrintStream debugStream = System.out;
+  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0)
+{
+   switch (pos)
+   {
+      case 0:
+         if ((active0 & 0x10L) != 0L)
+            return 2;
+         if ((active0 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 1;
+            return 4;
+         }
+         if ((active0 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 1;
+            return 6;
+         }
+         return -1;
+      default :
+         return -1;
+   }
+}
+private final int jjStartNfa_0(int pos, long active0)
+{
+   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private final int jjStopAtPos(int pos, int kind)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   return pos + 1;
+}
+private final int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) { return pos + 1; }
+   return jjMoveNfa_0(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_0()
+{
+   switch(curChar)
+   {
+      case 35:
+         return jjMoveStringLiteralDfa1_0(0x8L);
+      case 36:
+         return jjMoveStringLiteralDfa1_0(0x4L);
+      case 92:
+         return jjStartNfaWithStates_0(0, 4, 2);
+      default :
+         return jjMoveNfa_0(7, 0);
+   }
+}
+private final int jjMoveStringLiteralDfa1_0(long active0)
+{
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(0, active0);
+      return 1;
+   }
+   switch(curChar)
+   {
+      case 123:
+         if ((active0 & 0x4L) != 0L)
+            return jjStopAtPos(1, 2);
+         else if ((active0 & 0x8L) != 0L)
+            return jjStopAtPos(1, 3);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_0(0, active0);
+}
+private final void jjCheckNAdd(int state)
+{
+   if (jjrounds[state] != jjround)
+   {
+      jjstateSet[jjnewStateCnt++] = state;
+      jjrounds[state] = jjround;
+   }
+}
+private final void jjAddStates(int start, int end)
+{
+   do {
+      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+   } while (start++ != end);
+}
+private final void jjCheckNAddTwoStates(int state1, int state2)
+{
+   jjCheckNAdd(state1);
+   jjCheckNAdd(state2);
+}
+private final void jjCheckNAddStates(int start, int end)
+{
+   do {
+      jjCheckNAdd(jjnextStates[start]);
+   } while (start++ != end);
+}
+private final void jjCheckNAddStates(int start)
+{
+   jjCheckNAdd(jjnextStates[start]);
+   jjCheckNAdd(jjnextStates[start + 1]);
+}
+static final long[] jjbitVec0 = {
+   0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec2 = {
+   0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+private final int jjMoveNfa_0(int startState, int curPos)
+{
+   int[] nextStates;
+   int startsAt = 0;
+   jjnewStateCnt = 8;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int j, kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         MatchLoop: do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 7:
+                  if ((0xffffffe7ffffffffL & l) != 0L)
+                  {
+                     if (kind > 1)
+                        kind = 1;
+                     jjCheckNAddStates(0, 3);
+                  }
+                  else if ((0x1800000000L & l) != 0L)
+                  {
+                     if (kind > 1)
+                        kind = 1;
+                  }
+                  if (curChar == 35)
+                     jjstateSet[jjnewStateCnt++] = 6;
+                  else if (curChar == 36)
+                     jjstateSet[jjnewStateCnt++] = 4;
+                  break;
+               case 0:
+                  if ((0xffffffe7ffffffffL & l) == 0L)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               case 2:
+                  if ((0x1800000000L & l) == 0L)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               case 3:
+                  if (curChar == 36)
+                     jjstateSet[jjnewStateCnt++] = 4;
+                  break;
+               case 4:
+                  if ((0xffffffefffffffffL & l) == 0L)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               case 5:
+                  if (curChar == 35)
+                     jjstateSet[jjnewStateCnt++] = 6;
+                  break;
+               case 6:
+                  if ((0xfffffff7ffffffffL & l) == 0L)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         MatchLoop: do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 7:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                  {
+                     if (kind > 1)
+                        kind = 1;
+                     jjCheckNAddStates(0, 3);
+                  }
+                  else if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 2;
+                  break;
+               case 0:
+                  if ((0xffffffffefffffffL & l) == 0L)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               case 1:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 2;
+                  break;
+               case 2:
+                  if (curChar != 92)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               case 4:
+               case 6:
+                  if ((0xf7ffffffffffffffL & l) == 0L)
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int hiByte = (int)(curChar >> 8);
+         int i1 = hiByte >> 6;
+         long l1 = 1L << (hiByte & 077);
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         MatchLoop: do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 7:
+               case 0:
+               case 4:
+               case 6:
+                  if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 1)
+                     kind = 1;
+                  jjCheckNAddStates(0, 3);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
+         return curPos;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { return curPos; }
+   }
+}
+private final int jjStopStringLiteralDfa_1(int pos, long active0)
+{
+   switch (pos)
+   {
+      case 0:
+         if ((active0 & 0x141d555401c000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            return 41;
+         }
+         if ((active0 & 0x40000L) != 0L)
+            return 1;
+         return -1;
+      case 1:
+         if ((active0 & 0x41554000000L) != 0L)
+            return 42;
+         if ((active0 & 0x1419400001c000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 1;
+            return 42;
+         }
+         return -1;
+      case 2:
+         if ((active0 & 0x14014000000000L) != 0L)
+            return 42;
+         if ((active0 & 0x18000001c000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 2;
+            return 42;
+         }
+         return -1;
+      case 3:
+         if ((active0 & 0x14000L) != 0L)
+            return 42;
+         if ((active0 & 0x180000008000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 3;
+            return 42;
+         }
+         return -1;
+      case 4:
+         if ((active0 & 0x80000008000L) != 0L)
+            return 42;
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 4;
+            return 42;
+         }
+         return -1;
+      case 5:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 5;
+            return 42;
+         }
+         return -1;
+      case 6:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 6;
+            return 42;
+         }
+         return -1;
+      case 7:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 7;
+            return 42;
+         }
+         return -1;
+      case 8:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 8;
+            return 42;
+         }
+         return -1;
+      default :
+         return -1;
+   }
+}
+private final int jjStartNfa_1(int pos, long active0)
+{
+   return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
+}
+private final int jjStartNfaWithStates_1(int pos, int kind, int state)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) { return pos + 1; }
+   return jjMoveNfa_1(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_1()
+{
+   switch(curChar)
+   {
+      case 33:
+         jjmatchedKind = 37;
+         return jjMoveStringLiteralDfa1_1(0x800000000L);
+      case 37:
+         return jjStopAtPos(0, 51);
+      case 38:
+         return jjMoveStringLiteralDfa1_1(0x8000000000L);
+      case 40:
+         return jjStopAtPos(0, 19);
+      case 41:
+         return jjStopAtPos(0, 20);
+      case 42:
+         return jjStopAtPos(0, 45);
+      case 43:
+         return jjStopAtPos(0, 46);
+      case 44:
+         return jjStopAtPos(0, 24);
+      case 45:
+         return jjStopAtPos(0, 47);
+      case 46:
+         return jjStartNfaWithStates_1(0, 18, 1);
+      case 47:
+         return jjStopAtPos(0, 49);
+      case 58:
+         return jjStopAtPos(0, 23);
+      case 60:
+         jjmatchedKind = 27;
+         return jjMoveStringLiteralDfa1_1(0x80000000L);
+      case 61:
+         return jjMoveStringLiteralDfa1_1(0x200000000L);
+      case 62:
+         jjmatchedKind = 25;
+         return jjMoveStringLiteralDfa1_1(0x20000000L);
+      case 63:
+         return jjStopAtPos(0, 48);
+      case 91:
+         return jjStopAtPos(0, 21);
+      case 93:
+         return jjStopAtPos(0, 22);
+      case 97:
+         return jjMoveStringLiteralDfa1_1(0x10000000000L);
+      case 100:
+         return jjMoveStringLiteralDfa1_1(0x4000000000000L);
+      case 101:
+         return jjMoveStringLiteralDfa1_1(0x80400000000L);
+      case 102:
+         return jjMoveStringLiteralDfa1_1(0x8000L);
+      case 103:
+         return jjMoveStringLiteralDfa1_1(0x44000000L);
+      case 105:
+         return jjMoveStringLiteralDfa1_1(0x100000000000L);
+      case 108:
+         return jjMoveStringLiteralDfa1_1(0x110000000L);
+      case 109:
+         return jjMoveStringLiteralDfa1_1(0x10000000000000L);
+      case 110:
+         return jjMoveStringLiteralDfa1_1(0x5000010000L);
+      case 111:
+         return jjMoveStringLiteralDfa1_1(0x40000000000L);
+      case 116:
+         return jjMoveStringLiteralDfa1_1(0x4000L);
+      case 124:
+         return jjMoveStringLiteralDfa1_1(0x20000000000L);
+      case 125:
+         return jjStopAtPos(0, 17);
+      default :
+         return jjMoveNfa_1(0, 0);
+   }
+}
+private final int jjMoveStringLiteralDfa1_1(long active0)
+{
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(0, active0);
+      return 1;
+   }
+   switch(curChar)
+   {
+      case 38:
+         if ((active0 & 0x8000000000L) != 0L)
+            return jjStopAtPos(1, 39);
+         break;
+      case 61:
+         if ((active0 & 0x20000000L) != 0L)
+            return jjStopAtPos(1, 29);
+         else if ((active0 & 0x80000000L) != 0L)
+            return jjStopAtPos(1, 31);
+         else if ((active0 & 0x200000000L) != 0L)
+            return jjStopAtPos(1, 33);
+         else if ((active0 & 0x800000000L) != 0L)
+            return jjStopAtPos(1, 35);
+         break;
+      case 97:
+         return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
+      case 101:
+         if ((active0 & 0x40000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 30, 42);
+         else if ((active0 & 0x100000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 32, 42);
+         else if ((active0 & 0x1000000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 36, 42);
+         break;
+      case 105:
+         return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
+      case 109:
+         return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L);
+      case 110:
+         return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L);
+      case 111:
+         return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
+      case 113:
+         if ((active0 & 0x400000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 34, 42);
+         break;
+      case 114:
+         if ((active0 & 0x40000000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 42, 42);
+         return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
+      case 116:
+         if ((active0 & 0x4000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 26, 42);
+         else if ((active0 & 0x10000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 28, 42);
+         break;
+      case 117:
+         return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
+      case 124:
+         if ((active0 & 0x20000000000L) != 0L)
+            return jjStopAtPos(1, 41);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_1(0, active0);
+}
+private final int jjMoveStringLiteralDfa2_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(0, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(1, active0);
+      return 2;
+   }
+   switch(curChar)
+   {
+      case 100:
+         if ((active0 & 0x10000000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 40, 42);
+         else if ((active0 & 0x10000000000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 52, 42);
+         break;
+      case 108:
+         return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
+      case 112:
+         return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L);
+      case 115:
+         return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
+      case 116:
+         if ((active0 & 0x4000000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 38, 42);
+         break;
+      case 117:
+         return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
+      case 118:
+         if ((active0 & 0x4000000000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 50, 42);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_1(1, active0);
+}
+private final int jjMoveStringLiteralDfa3_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(1, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(2, active0);
+      return 3;
+   }
+   switch(curChar)
+   {
+      case 101:
+         if ((active0 & 0x4000L) != 0L)
+            return jjStartNfaWithStates_1(3, 14, 42);
+         break;
+      case 108:
+         if ((active0 & 0x10000L) != 0L)
+            return jjStartNfaWithStates_1(3, 16, 42);
+         break;
+      case 115:
+         return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
+      case 116:
+         return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_1(2, active0);
+}
+private final int jjMoveStringLiteralDfa4_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(2, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(3, active0);
+      return 4;
+   }
+   switch(curChar)
+   {
+      case 97:
+         return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
+      case 101:
+         if ((active0 & 0x8000L) != 0L)
+            return jjStartNfaWithStates_1(4, 15, 42);
+         break;
+      case 121:
+         if ((active0 & 0x80000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 43, 42);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_1(3, active0);
+}
+private final int jjMoveStringLiteralDfa5_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(3, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(4, active0);
+      return 5;
+   }
+   switch(curChar)
+   {
+      case 110:
+         return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_1(4, active0);
+}
+private final int jjMoveStringLiteralDfa6_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(4, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(5, active0);
+      return 6;
+   }
+   switch(curChar)
+   {
+      case 99:
+         return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_1(5, active0);
+}
+private final int jjMoveStringLiteralDfa7_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(5, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(6, active0);
+      return 7;
+   }
+   switch(curChar)
+   {
+      case 101:
+         return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_1(6, active0);
+}
+private final int jjMoveStringLiteralDfa8_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(6, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(7, active0);
+      return 8;
+   }
+   switch(curChar)
+   {
+      case 111:
+         return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_1(7, active0);
+}
+private final int jjMoveStringLiteralDfa9_1(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_1(7, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_1(8, active0);
+      return 9;
+   }
+   switch(curChar)
+   {
+      case 102:
+         if ((active0 & 0x100000000000L) != 0L)
+            return jjStartNfaWithStates_1(9, 44, 42);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_1(8, active0);
+}
+static final long[] jjbitVec3 = {
+   0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L
+};
+static final long[] jjbitVec4 = {
+   0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec5 = {
+   0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec6 = {
+   0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
+};
+static final long[] jjbitVec7 = {
+   0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec8 = {
+   0x3fffffffffffL, 0x0L, 0x0L, 0x0L
+};
+private final int jjMoveNfa_1(int startState, int curPos)
+{
+   int[] nextStates;
+   int startsAt = 0;
+   jjnewStateCnt = 41;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int j, kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         MatchLoop: do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 41:
+                  if ((0x3ff001000000000L & l) != 0L)
+                  {
+                     if (kind > 55)
+                        kind = 55;
+                     jjCheckNAdd(40);
+                  }
+                  else if ((0x600000000000L & l) != 0L)
+                     jjCheckNAddStates(4, 6);
+                  else if (curChar == 58)
+                  {
+                     if (kind > 54)
+                        kind = 54;
+                  }
+                  if ((0x3ff001000000000L & l) != 0L)
+                     jjCheckNAddStates(7, 10);
+                  if ((0x3ff001000000000L & l) != 0L)
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAdd(34);
+                  }
+                  if ((0x1800000000L & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 0:
+                  if ((0x3ff000000000000L & l) != 0L)
+                  {
+                     if (kind > 9)
+                        kind = 9;
+                     jjCheckNAddStates(15, 19);
+                  }
+                  else if ((0x1800000000L & l) != 0L)
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAddStates(20, 25);
+                  }
+                  else if (curChar == 39)
+                     jjCheckNAddStates(26, 30);
+                  else if (curChar == 34)
+                     jjCheckNAddStates(31, 35);
+                  else if (curChar == 46)
+                     jjCheckNAdd(1);
+                  break;
+               case 42:
+                  if ((0x3ff001000000000L & l) != 0L)
+                  {
+                     if (kind > 55)
+                        kind = 55;
+                     jjCheckNAdd(40);
+                  }
+                  else if ((0x600000000000L & l) != 0L)
+                     jjCheckNAddStates(4, 6);
+                  else if (curChar == 58)
+                  {
+                     if (kind > 54)
+                        kind = 54;
+                  }
+                  if ((0x3ff001000000000L & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  if ((0x3ff001000000000L & l) != 0L)
+                     jjCheckNAddStates(7, 10);
+                  if ((0x3ff001000000000L & l) != 0L)
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAdd(34);
+                  }
+                  if ((0x1800000000L & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 1:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 10)
+                     kind = 10;
+                  jjCheckNAddTwoStates(1, 2);
+                  break;
+               case 3:
+                  if ((0x280000000000L & l) != 0L)
+                     jjCheckNAdd(4);
+                  break;
+               case 4:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 10)
+                     kind = 10;
+                  jjCheckNAdd(4);
+                  break;
+               case 5:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 9)
+                     kind = 9;
+                  jjCheckNAddStates(15, 19);
+                  break;
+               case 6:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 9)
+                     kind = 9;
+                  jjCheckNAdd(6);
+                  break;
+               case 7:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(7, 8);
+                  break;
+               case 8:
+                  if (curChar != 46)
+                     break;
+                  if (kind > 10)
+                     kind = 10;
+                  jjCheckNAddTwoStates(9, 10);
+                  break;
+               case 9:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 10)
+                     kind = 10;
+                  jjCheckNAddTwoStates(9, 10);
+                  break;
+               case 11:
+                  if ((0x280000000000L & l) != 0L)
+                     jjCheckNAdd(12);
+                  break;
+               case 12:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 10)
+                     kind = 10;
+                  jjCheckNAdd(12);
+                  break;
+               case 13:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(13, 14);
+                  break;
+               case 15:
+                  if ((0x280000000000L & l) != 0L)
+                     jjCheckNAdd(16);
+                  break;
+               case 16:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 10)
+                     kind = 10;
+                  jjCheckNAdd(16);
+                  break;
+               case 17:
+                  if (curChar == 34)
+                     jjCheckNAddStates(31, 35);
+                  break;
+               case 18:
+                  if ((0xfffffffbffffffffL & l) != 0L)
+                     jjCheckNAddStates(36, 38);
+                  break;
+               case 20:
+                  if (curChar == 34)
+                     jjCheckNAddStates(36, 38);
+                  break;
+               case 21:
+                  if (curChar == 34 && kind > 12)
+                     kind = 12;
+                  break;
+               case 22:
+                  if ((0xfffffffbffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(22, 23);
+                  break;
+               case 24:
+                  if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
+                     kind = 13;
+                  break;
+               case 25:
+                  if (curChar == 39)
+                     jjCheckNAddStates(26, 30);
+                  break;
+               case 26:
+                  if ((0xffffff7fffffffffL & l) != 0L)
+                     jjCheckNAddStates(39, 41);
+                  break;
+               case 28:
+                  if (curChar == 39)
+                     jjCheckNAddStates(39, 41);
+                  break;
+               case 29:
+                  if (curChar == 39 && kind > 12)
+                     kind = 12;
+                  break;
+               case 30:
+                  if ((0xffffff7fffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(30, 31);
+                  break;
+               case 32:
+                  if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
+                     kind = 13;
+                  break;
+               case 33:
+                  if ((0x1800000000L & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  jjCheckNAddStates(20, 25);
+                  break;
+               case 34:
+                  if ((0x3ff001000000000L & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  jjCheckNAdd(34);
+                  break;
+               case 35:
+                  if ((0x3ff001000000000L & l) != 0L)
+                     jjCheckNAddStates(7, 10);
+                  break;
+               case 36:
+                  if ((0x1800000000L & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 37:
+                  if ((0x3ff001000000000L & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 38:
+                  if ((0x600000000000L & l) != 0L)
+                     jjCheckNAddStates(4, 6);
+                  break;
+               case 39:
+                  if (curChar == 58 && kind > 54)
+                     kind = 54;
+                  break;
+               case 40:
+                  if ((0x3ff001000000000L & l) == 0L)
+                     break;
+                  if (kind > 55)
+                     kind = 55;
+                  jjCheckNAdd(40);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         MatchLoop: do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 41:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                  {
+                     if (kind > 55)
+                        kind = 55;
+                     jjCheckNAdd(40);
+                  }
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(7, 10);
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAdd(34);
+                  }
+                  break;
+               case 0:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  jjCheckNAddStates(20, 25);
+                  break;
+               case 42:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                  {
+                     if (kind > 55)
+                        kind = 55;
+                     jjCheckNAdd(40);
+                  }
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(7, 10);
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAdd(34);
+                  }
+                  break;
+               case 2:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(42, 43);
+                  break;
+               case 10:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(44, 45);
+                  break;
+               case 14:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(46, 47);
+                  break;
+               case 18:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     jjCheckNAddStates(36, 38);
+                  break;
+               case 19:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 20;
+                  break;
+               case 20:
+                  if (curChar == 92)
+                     jjCheckNAddStates(36, 38);
+                  break;
+               case 22:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     jjAddStates(48, 49);
+                  break;
+               case 23:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 24;
+                  break;
+               case 24:
+               case 32:
+                  if ((0xffffffffefffffffL & l) != 0L && kind > 13)
+                     kind = 13;
+                  break;
+               case 26:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     jjCheckNAddStates(39, 41);
+                  break;
+               case 27:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 28;
+                  break;
+               case 28:
+                  if (curChar == 92)
+                     jjCheckNAddStates(39, 41);
+                  break;
+               case 30:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     jjAddStates(50, 51);
+                  break;
+               case 31:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 32;
+                  break;
+               case 34:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  jjCheckNAdd(34);
+                  break;
+               case 35:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(7, 10);
+                  break;
+               case 36:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 37:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 40:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 55)
+                     kind = 55;
+                  jjCheckNAdd(40);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int hiByte = (int)(curChar >> 8);
+         int i1 = hiByte >> 6;
+         long l1 = 1L << (hiByte & 077);
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         MatchLoop: do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 41:
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAdd(34);
+                  }
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(7, 10);
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(11, 14);
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                  {
+                     if (kind > 55)
+                        kind = 55;
+                     jjCheckNAdd(40);
+                  }
+                  break;
+               case 0:
+                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  jjCheckNAddStates(20, 25);
+                  break;
+               case 42:
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                  {
+                     if (kind > 53)
+                        kind = 53;
+                     jjCheckNAdd(34);
+                  }
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(7, 10);
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(11, 14);
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(11, 14);
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                  {
+                     if (kind > 55)
+                        kind = 55;
+                     jjCheckNAdd(40);
+                  }
+                  break;
+               case 18:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjAddStates(36, 38);
+                  break;
+               case 22:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjAddStates(48, 49);
+                  break;
+               case 24:
+               case 32:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
+                     kind = 13;
+                  break;
+               case 26:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjAddStates(39, 41);
+                  break;
+               case 30:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjAddStates(50, 51);
+                  break;
+               case 34:
+                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  jjCheckNAdd(34);
+                  break;
+               case 35:
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(7, 10);
+                  break;
+               case 36:
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 37:
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(11, 14);
+                  break;
+               case 40:
+                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 55)
+                     kind = 55;
+                  jjCheckNAdd(40);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt)))
+         return curPos;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { return curPos; }
+   }
+}
+static final int[] jjnextStates = {
+   0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39, 36, 37, 38, 39, 6, 
+   7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27, 29, 30, 31, 18, 
+   19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16, 
+   22, 23, 30, 31, 
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec2[i2] & l2) != 0L);
+      default : 
+         if ((jjbitVec0[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec4[i2] & l2) != 0L);
+      case 48:
+         return ((jjbitVec5[i2] & l2) != 0L);
+      case 49:
+         return ((jjbitVec6[i2] & l2) != 0L);
+      case 51:
+         return ((jjbitVec7[i2] & l2) != 0L);
+      case 61:
+         return ((jjbitVec8[i2] & l2) != 0L);
+      default : 
+         if ((jjbitVec3[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+public static final String[] jjstrLiteralImages = {
+"", null, "\44\173", "\43\173", null, null, null, null, null, null, null, null, 
+null, null, "\164\162\165\145", "\146\141\154\163\145", "\156\165\154\154", "\175", 
+"\56", "\50", "\51", "\133", "\135", "\72", "\54", "\76", "\147\164", "\74", 
+"\154\164", "\76\75", "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75", 
+"\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", "\174\174", "\157\162", 
+"\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", "\77", "\57", 
+"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, null, };
+public static final String[] lexStateNames = {
+   "DEFAULT", 
+   "IN_EXPRESSION", 
+};
+public static final int[] jjnewLexState = {
+   -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 
+   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+};
+static final long[] jjtoToken = {
+   0x8fffffffffff60fL, 
+};
+static final long[] jjtoSkip = {
+   0x1f0L, 
+};
+protected SimpleCharStream input_stream;
+private final int[] jjrounds = new int[41];
+private final int[] jjstateSet = new int[82];
+protected char curChar;
+public ELParserTokenManager(SimpleCharStream stream){
+   if (SimpleCharStream.staticFlag)
+      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+   input_stream = stream;
+}
+public ELParserTokenManager(SimpleCharStream stream, int lexState){
+   this(stream);
+   SwitchTo(lexState);
+}
+public void ReInit(SimpleCharStream stream)
+{
+   jjmatchedPos = jjnewStateCnt = 0;
+   curLexState = defaultLexState;
+   input_stream = stream;
+   ReInitRounds();
+}
+private final void ReInitRounds()
+{
+   int i;
+   jjround = 0x80000001;
+   for (i = 41; i-- > 0;)
+      jjrounds[i] = 0x80000000;
+}
+public void ReInit(SimpleCharStream stream, int lexState)
+{
+   ReInit(stream);
+   SwitchTo(lexState);
+}
+public void SwitchTo(int lexState)
+{
+   if (lexState >= 2 || lexState < 0)
+      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+   else
+      curLexState = lexState;
+}
 
-public class ELParserTokenManager implements ELParserConstants {
-       public java.io.PrintStream debugStream = System.out;
-
-       public void setDebugStream(java.io.PrintStream ds) {
-               debugStream = ds;
-       }
-
-       private final int jjStopStringLiteralDfa_0(int pos, long active0) {
-               switch (pos) {
-               case 0:
-                       if ((active0 & 0x10L) != 0L)
-                               return 2;
-                       if ((active0 & 0x4L) != 0L) {
-                               jjmatchedKind = 1;
-                               return 4;
-                       }
-                       if ((active0 & 0x8L) != 0L) {
-                               jjmatchedKind = 1;
-                               return 6;
-                       }
-                       return -1;
-               default:
-                       return -1;
-               }
-       }
-
-       private final int jjStartNfa_0(int pos, long active0) {
-               return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
-       }
-
-       private final int jjStopAtPos(int pos, int kind) {
-               jjmatchedKind = kind;
-               jjmatchedPos = pos;
-               return pos + 1;
-       }
-
-       private final int jjStartNfaWithStates_0(int pos, int kind, int state) {
-               jjmatchedKind = kind;
-               jjmatchedPos = pos;
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       return pos + 1;
-               }
-               return jjMoveNfa_0(state, pos + 1);
-       }
-
-       private final int jjMoveStringLiteralDfa0_0() {
-               switch (curChar) {
-               case 35:
-                       return jjMoveStringLiteralDfa1_0(0x8L);
-               case 36:
-                       return jjMoveStringLiteralDfa1_0(0x4L);
-               case 92:
-                       return jjStartNfaWithStates_0(0, 4, 2);
-               default:
-                       return jjMoveNfa_0(7, 0);
-               }
-       }
-
-       private final int jjMoveStringLiteralDfa1_0(long active0) {
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_0(0, active0);
-                       return 1;
-               }
-               switch (curChar) {
-               case 123:
-                       if ((active0 & 0x4L) != 0L)
-                               return jjStopAtPos(1, 2);
-                       else if ((active0 & 0x8L) != 0L)
-                               return jjStopAtPos(1, 3);
-                       break;
-               default:
-                       break;
-               }
-               return jjStartNfa_0(0, active0);
-       }
-
-       private final void jjCheckNAdd(int state) {
-               if (jjrounds[state] != jjround) {
-                       jjstateSet[jjnewStateCnt++] = state;
-                       jjrounds[state] = jjround;
-               }
-       }
-
-       private final void jjAddStates(int start, int end) {
-               do {
-                       jjstateSet[jjnewStateCnt++] = jjnextStates[start];
-               } while (start++ != end);
-       }
-
-       private final void jjCheckNAddTwoStates(int state1, int state2) {
-               jjCheckNAdd(state1);
-               jjCheckNAdd(state2);
-       }
-
-       private final void jjCheckNAddStates(int start, int end) {
-               do {
-                       jjCheckNAdd(jjnextStates[start]);
-               } while (start++ != end);
-       }
-
-       private final void jjCheckNAddStates(int start) {
-               jjCheckNAdd(jjnextStates[start]);
-               jjCheckNAdd(jjnextStates[start + 1]);
-       }
-
-       static final long[] jjbitVec0 = { 0xfffffffffffffffeL, 0xffffffffffffffffL,
-                       0xffffffffffffffffL, 0xffffffffffffffffL };
-
-       static final long[] jjbitVec2 = { 0x0L, 0x0L, 0xffffffffffffffffL,
-                       0xffffffffffffffffL };
-
-       private final int jjMoveNfa_0(int startState, int curPos) {
-               int[] nextStates;
-               int startsAt = 0;
-               jjnewStateCnt = 8;
-               int i = 1;
-               jjstateSet[0] = startState;
-               int j, kind = 0x7fffffff;
-               for (;;) {
-                       if (++jjround == 0x7fffffff)
-                               ReInitRounds();
-                       if (curChar < 64) {
-                               long l = 1L << curChar;
-                               MatchLoop: do {
-                                       switch (jjstateSet[--i]) {
-                                       case 7:
-                                               if ((0xffffffe7ffffffffL & l) != 0L) {
-                                                       if (kind > 1)
-                                                               kind = 1;
-                                                       jjCheckNAddStates(0, 3);
-                                               } else if ((0x1800000000L & l) != 0L) {
-                                                       if (kind > 1)
-                                                               kind = 1;
-                                               }
-                                               if (curChar == 35)
-                                                       jjstateSet[jjnewStateCnt++] = 6;
-                                               else if (curChar == 36)
-                                                       jjstateSet[jjnewStateCnt++] = 4;
-                                               break;
-                                       case 0:
-                                               if ((0xffffffe7ffffffffL & l) == 0L)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       case 2:
-                                               if ((0x1800000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       case 3:
-                                               if (curChar == 36)
-                                                       jjstateSet[jjnewStateCnt++] = 4;
-                                               break;
-                                       case 4:
-                                               if ((0xffffffefffffffffL & l) == 0L)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       case 5:
-                                               if (curChar == 35)
-                                                       jjstateSet[jjnewStateCnt++] = 6;
-                                               break;
-                                       case 6:
-                                               if ((0xfffffff7ffffffffL & l) == 0L)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } while (i != startsAt);
-                       } else if (curChar < 128) {
-                               long l = 1L << (curChar & 077);
-                               MatchLoop: do {
-                                       switch (jjstateSet[--i]) {
-                                       case 7:
-                                               if ((0xffffffffefffffffL & l) != 0L) {
-                                                       if (kind > 1)
-                                                               kind = 1;
-                                                       jjCheckNAddStates(0, 3);
-                                               } else if (curChar == 92)
-                                                       jjstateSet[jjnewStateCnt++] = 2;
-                                               break;
-                                       case 0:
-                                               if ((0xffffffffefffffffL & l) == 0L)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       case 1:
-                                               if (curChar == 92)
-                                                       jjstateSet[jjnewStateCnt++] = 2;
-                                               break;
-                                       case 2:
-                                               if (curChar != 92)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       case 4:
-                                       case 6:
-                                               if ((0xf7ffffffffffffffL & l) == 0L)
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } while (i != startsAt);
-                       } else {
-                               int hiByte = (int) (curChar >> 8);
-                               int i1 = hiByte >> 6;
-                               long l1 = 1L << (hiByte & 077);
-                               int i2 = (curChar & 0xff) >> 6;
-                               long l2 = 1L << (curChar & 077);
-                               MatchLoop: do {
-                                       switch (jjstateSet[--i]) {
-                                       case 7:
-                                       case 0:
-                                       case 4:
-                                       case 6:
-                                               if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
-                                                       break;
-                                               if (kind > 1)
-                                                       kind = 1;
-                                               jjCheckNAddStates(0, 3);
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } while (i != startsAt);
-                       }
-                       if (kind != 0x7fffffff) {
-                               jjmatchedKind = kind;
-                               jjmatchedPos = curPos;
-                               kind = 0x7fffffff;
-                       }
-                       ++curPos;
-                       if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
-                               return curPos;
-                       try {
-                               curChar = input_stream.readChar();
-                       } catch (java.io.IOException e) {
-                               return curPos;
-                       }
-               }
-       }
-
-       private final int jjStopStringLiteralDfa_1(int pos, long active0) {
-               switch (pos) {
-               case 0:
-                       if ((active0 & 0x141d555401c000L) != 0L) {
-                               jjmatchedKind = 53;
-                               return 41;
-                       }
-                       if ((active0 & 0x40000L) != 0L)
-                               return 1;
-                       return -1;
-               case 1:
-                       if ((active0 & 0x41554000000L) != 0L)
-                               return 42;
-                       if ((active0 & 0x1419400001c000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 1;
-                               return 42;
-                       }
-                       return -1;
-               case 2:
-                       if ((active0 & 0x14014000000000L) != 0L)
-                               return 42;
-                       if ((active0 & 0x18000001c000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 2;
-                               return 42;
-                       }
-                       return -1;
-               case 3:
-                       if ((active0 & 0x14000L) != 0L)
-                               return 42;
-                       if ((active0 & 0x180000008000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 3;
-                               return 42;
-                       }
-                       return -1;
-               case 4:
-                       if ((active0 & 0x80000008000L) != 0L)
-                               return 42;
-                       if ((active0 & 0x100000000000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 4;
-                               return 42;
-                       }
-                       return -1;
-               case 5:
-                       if ((active0 & 0x100000000000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 5;
-                               return 42;
-                       }
-                       return -1;
-               case 6:
-                       if ((active0 & 0x100000000000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 6;
-                               return 42;
-                       }
-                       return -1;
-               case 7:
-                       if ((active0 & 0x100000000000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 7;
-                               return 42;
-                       }
-                       return -1;
-               case 8:
-                       if ((active0 & 0x100000000000L) != 0L) {
-                               jjmatchedKind = 53;
-                               jjmatchedPos = 8;
-                               return 42;
-                       }
-                       return -1;
-               default:
-                       return -1;
-               }
-       }
-
-       private final int jjStartNfa_1(int pos, long active0) {
-               return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
-       }
-
-       private final int jjStartNfaWithStates_1(int pos, int kind, int state) {
-               jjmatchedKind = kind;
-               jjmatchedPos = pos;
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       return pos + 1;
-               }
-               return jjMoveNfa_1(state, pos + 1);
-       }
-
-       private final int jjMoveStringLiteralDfa0_1() {
-               switch (curChar) {
-               case 33:
-                       jjmatchedKind = 37;
-                       return jjMoveStringLiteralDfa1_1(0x800000000L);
-               case 37:
-                       return jjStopAtPos(0, 51);
-               case 38:
-                       return jjMoveStringLiteralDfa1_1(0x8000000000L);
-               case 40:
-                       return jjStopAtPos(0, 19);
-               case 41:
-                       return jjStopAtPos(0, 20);
-               case 42:
-                       return jjStopAtPos(0, 45);
-               case 43:
-                       return jjStopAtPos(0, 46);
-               case 44:
-                       return jjStopAtPos(0, 24);
-               case 45:
-                       return jjStopAtPos(0, 47);
-               case 46:
-                       return jjStartNfaWithStates_1(0, 18, 1);
-               case 47:
-                       return jjStopAtPos(0, 49);
-               case 58:
-                       return jjStopAtPos(0, 23);
-               case 60:
-                       jjmatchedKind = 27;
-                       return jjMoveStringLiteralDfa1_1(0x80000000L);
-               case 61:
-                       return jjMoveStringLiteralDfa1_1(0x200000000L);
-               case 62:
-                       jjmatchedKind = 25;
-                       return jjMoveStringLiteralDfa1_1(0x20000000L);
-               case 63:
-                       return jjStopAtPos(0, 48);
-               case 91:
-                       return jjStopAtPos(0, 21);
-               case 93:
-                       return jjStopAtPos(0, 22);
-               case 97:
-                       return jjMoveStringLiteralDfa1_1(0x10000000000L);
-               case 100:
-                       return jjMoveStringLiteralDfa1_1(0x4000000000000L);
-               case 101:
-                       return jjMoveStringLiteralDfa1_1(0x80400000000L);
-               case 102:
-                       return jjMoveStringLiteralDfa1_1(0x8000L);
-               case 103:
-                       return jjMoveStringLiteralDfa1_1(0x44000000L);
-               case 105:
-                       return jjMoveStringLiteralDfa1_1(0x100000000000L);
-               case 108:
-                       return jjMoveStringLiteralDfa1_1(0x110000000L);
-               case 109:
-                       return jjMoveStringLiteralDfa1_1(0x10000000000000L);
-               case 110:
-                       return jjMoveStringLiteralDfa1_1(0x5000010000L);
-               case 111:
-                       return jjMoveStringLiteralDfa1_1(0x40000000000L);
-               case 116:
-                       return jjMoveStringLiteralDfa1_1(0x4000L);
-               case 124:
-                       return jjMoveStringLiteralDfa1_1(0x20000000000L);
-               case 125:
-                       return jjStopAtPos(0, 17);
-               default:
-                       return jjMoveNfa_1(0, 0);
-               }
-       }
-
-       private final int jjMoveStringLiteralDfa1_1(long active0) {
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(0, active0);
-                       return 1;
-               }
-               switch (curChar) {
-               case 38:
-                       if ((active0 & 0x8000000000L) != 0L)
-                               return jjStopAtPos(1, 39);
-                       break;
-               case 61:
-                       if ((active0 & 0x20000000L) != 0L)
-                               return jjStopAtPos(1, 29);
-                       else if ((active0 & 0x80000000L) != 0L)
-                               return jjStopAtPos(1, 31);
-                       else if ((active0 & 0x200000000L) != 0L)
-                               return jjStopAtPos(1, 33);
-                       else if ((active0 & 0x800000000L) != 0L)
-                               return jjStopAtPos(1, 35);
-                       break;
-               case 97:
-                       return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
-               case 101:
-                       if ((active0 & 0x40000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 30, 42);
-                       else if ((active0 & 0x100000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 32, 42);
-                       else if ((active0 & 0x1000000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 36, 42);
-                       break;
-               case 105:
-                       return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
-               case 109:
-                       return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L);
-               case 110:
-                       return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L);
-               case 111:
-                       return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
-               case 113:
-                       if ((active0 & 0x400000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 34, 42);
-                       break;
-               case 114:
-                       if ((active0 & 0x40000000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 42, 42);
-                       return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
-               case 116:
-                       if ((active0 & 0x4000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 26, 42);
-                       else if ((active0 & 0x10000000L) != 0L)
-                               return jjStartNfaWithStates_1(1, 28, 42);
-                       break;
-               case 117:
-                       return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
-               case 124:
-                       if ((active0 & 0x20000000000L) != 0L)
-                               return jjStopAtPos(1, 41);
-                       break;
-               default:
-                       break;
-               }
-               return jjStartNfa_1(0, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa2_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(0, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(1, active0);
-                       return 2;
-               }
-               switch (curChar) {
-               case 100:
-                       if ((active0 & 0x10000000000L) != 0L)
-                               return jjStartNfaWithStates_1(2, 40, 42);
-                       else if ((active0 & 0x10000000000000L) != 0L)
-                               return jjStartNfaWithStates_1(2, 52, 42);
-                       break;
-               case 108:
-                       return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
-               case 112:
-                       return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L);
-               case 115:
-                       return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
-               case 116:
-                       if ((active0 & 0x4000000000L) != 0L)
-                               return jjStartNfaWithStates_1(2, 38, 42);
-                       break;
-               case 117:
-                       return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
-               case 118:
-                       if ((active0 & 0x4000000000000L) != 0L)
-                               return jjStartNfaWithStates_1(2, 50, 42);
-                       break;
-               default:
-                       break;
-               }
-               return jjStartNfa_1(1, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa3_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(1, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(2, active0);
-                       return 3;
-               }
-               switch (curChar) {
-               case 101:
-                       if ((active0 & 0x4000L) != 0L)
-                               return jjStartNfaWithStates_1(3, 14, 42);
-                       break;
-               case 108:
-                       if ((active0 & 0x10000L) != 0L)
-                               return jjStartNfaWithStates_1(3, 16, 42);
-                       break;
-               case 115:
-                       return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
-               case 116:
-                       return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L);
-               default:
-                       break;
-               }
-               return jjStartNfa_1(2, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa4_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(2, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(3, active0);
-                       return 4;
-               }
-               switch (curChar) {
-               case 97:
-                       return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
-               case 101:
-                       if ((active0 & 0x8000L) != 0L)
-                               return jjStartNfaWithStates_1(4, 15, 42);
-                       break;
-               case 121:
-                       if ((active0 & 0x80000000000L) != 0L)
-                               return jjStartNfaWithStates_1(4, 43, 42);
-                       break;
-               default:
-                       break;
-               }
-               return jjStartNfa_1(3, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa5_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(3, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(4, active0);
-                       return 5;
-               }
-               switch (curChar) {
-               case 110:
-                       return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L);
-               default:
-                       break;
-               }
-               return jjStartNfa_1(4, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa6_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(4, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(5, active0);
-                       return 6;
-               }
-               switch (curChar) {
-               case 99:
-                       return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L);
-               default:
-                       break;
-               }
-               return jjStartNfa_1(5, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa7_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(5, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(6, active0);
-                       return 7;
-               }
-               switch (curChar) {
-               case 101:
-                       return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L);
-               default:
-                       break;
-               }
-               return jjStartNfa_1(6, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa8_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(6, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(7, active0);
-                       return 8;
-               }
-               switch (curChar) {
-               case 111:
-                       return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L);
-               default:
-                       break;
-               }
-               return jjStartNfa_1(7, active0);
-       }
-
-       private final int jjMoveStringLiteralDfa9_1(long old0, long active0) {
-               if (((active0 &= old0)) == 0L)
-                       return jjStartNfa_1(7, old0);
-               try {
-                       curChar = input_stream.readChar();
-               } catch (java.io.IOException e) {
-                       jjStopStringLiteralDfa_1(8, active0);
-                       return 9;
-               }
-               switch (curChar) {
-               case 102:
-                       if ((active0 & 0x100000000000L) != 0L)
-                               return jjStartNfaWithStates_1(9, 44, 42);
-                       break;
-               default:
-                       break;
-               }
-               return jjStartNfa_1(8, active0);
-       }
-
-       static final long[] jjbitVec3 = { 0x1ff00000fffffffeL, 0xffffffffffffc000L,
-                       0xffffffffL, 0x600000000000000L };
-
-       static final long[] jjbitVec4 = { 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL };
-
-       static final long[] jjbitVec5 = { 0x0L, 0xffffffffffffffffL,
-                       0xffffffffffffffffL, 0xffffffffffffffffL };
-
-       static final long[] jjbitVec6 = { 0xffffffffffffffffL, 0xffffffffffffffffL,
-                       0xffffL, 0x0L };
-
-       static final long[] jjbitVec7 = { 0xffffffffffffffffL, 0xffffffffffffffffL,
-                       0x0L, 0x0L };
-
-       static final long[] jjbitVec8 = { 0x3fffffffffffL, 0x0L, 0x0L, 0x0L };
-
-       private final int jjMoveNfa_1(int startState, int curPos) {
-               int[] nextStates;
-               int startsAt = 0;
-               jjnewStateCnt = 41;
-               int i = 1;
-               jjstateSet[0] = startState;
-               int j, kind = 0x7fffffff;
-               for (;;) {
-                       if (++jjround == 0x7fffffff)
-                               ReInitRounds();
-                       if (curChar < 64) {
-                               long l = 1L << curChar;
-                               MatchLoop: do {
-                                       switch (jjstateSet[--i]) {
-                                       case 41:
-                                               if ((0x3ff001000000000L & l) != 0L) {
-                                                       if (kind > 55)
-                                                               kind = 55;
-                                                       jjCheckNAdd(40);
-                                               } else if ((0x600000000000L & l) != 0L)
-                                                       jjCheckNAddStates(4, 6);
-                                               else if (curChar == 58) {
-                                                       if (kind > 54)
-                                                               kind = 54;
-                                               }
-                                               if ((0x3ff001000000000L & l) != 0L)
-                                                       jjCheckNAddStates(7, 10);
-                                               if ((0x3ff001000000000L & l) != 0L) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAdd(34);
-                                               }
-                                               if ((0x1800000000L & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 0:
-                                               if ((0x3ff000000000000L & l) != 0L) {
-                                                       if (kind > 9)
-                                                               kind = 9;
-                                                       jjCheckNAddStates(15, 19);
-                                               } else if ((0x1800000000L & l) != 0L) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAddStates(20, 25);
-                                               } else if (curChar == 39)
-                                                       jjCheckNAddStates(26, 30);
-                                               else if (curChar == 34)
-                                                       jjCheckNAddStates(31, 35);
-                                               else if (curChar == 46)
-                                                       jjCheckNAdd(1);
-                                               break;
-                                       case 42:
-                                               if ((0x3ff001000000000L & l) != 0L) {
-                                                       if (kind > 55)
-                                                               kind = 55;
-                                                       jjCheckNAdd(40);
-                                               } else if ((0x600000000000L & l) != 0L)
-                                                       jjCheckNAddStates(4, 6);
-                                               else if (curChar == 58) {
-                                                       if (kind > 54)
-                                                               kind = 54;
-                                               }
-                                               if ((0x3ff001000000000L & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               if ((0x3ff001000000000L & l) != 0L)
-                                                       jjCheckNAddStates(7, 10);
-                                               if ((0x3ff001000000000L & l) != 0L) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAdd(34);
-                                               }
-                                               if ((0x1800000000L & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 1:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 10)
-                                                       kind = 10;
-                                               jjCheckNAddTwoStates(1, 2);
-                                               break;
-                                       case 3:
-                                               if ((0x280000000000L & l) != 0L)
-                                                       jjCheckNAdd(4);
-                                               break;
-                                       case 4:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 10)
-                                                       kind = 10;
-                                               jjCheckNAdd(4);
-                                               break;
-                                       case 5:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 9)
-                                                       kind = 9;
-                                               jjCheckNAddStates(15, 19);
-                                               break;
-                                       case 6:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 9)
-                                                       kind = 9;
-                                               jjCheckNAdd(6);
-                                               break;
-                                       case 7:
-                                               if ((0x3ff000000000000L & l) != 0L)
-                                                       jjCheckNAddTwoStates(7, 8);
-                                               break;
-                                       case 8:
-                                               if (curChar != 46)
-                                                       break;
-                                               if (kind > 10)
-                                                       kind = 10;
-                                               jjCheckNAddTwoStates(9, 10);
-                                               break;
-                                       case 9:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 10)
-                                                       kind = 10;
-                                               jjCheckNAddTwoStates(9, 10);
-                                               break;
-                                       case 11:
-                                               if ((0x280000000000L & l) != 0L)
-                                                       jjCheckNAdd(12);
-                                               break;
-                                       case 12:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 10)
-                                                       kind = 10;
-                                               jjCheckNAdd(12);
-                                               break;
-                                       case 13:
-                                               if ((0x3ff000000000000L & l) != 0L)
-                                                       jjCheckNAddTwoStates(13, 14);
-                                               break;
-                                       case 15:
-                                               if ((0x280000000000L & l) != 0L)
-                                                       jjCheckNAdd(16);
-                                               break;
-                                       case 16:
-                                               if ((0x3ff000000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 10)
-                                                       kind = 10;
-                                               jjCheckNAdd(16);
-                                               break;
-                                       case 17:
-                                               if (curChar == 34)
-                                                       jjCheckNAddStates(31, 35);
-                                               break;
-                                       case 18:
-                                               if ((0xfffffffbffffffffL & l) != 0L)
-                                                       jjCheckNAddStates(36, 38);
-                                               break;
-                                       case 20:
-                                               if (curChar == 34)
-                                                       jjCheckNAddStates(36, 38);
-                                               break;
-                                       case 21:
-                                               if (curChar == 34 && kind > 12)
-                                                       kind = 12;
-                                               break;
-                                       case 22:
-                                               if ((0xfffffffbffffffffL & l) != 0L)
-                                                       jjCheckNAddTwoStates(22, 23);
-                                               break;
-                                       case 24:
-                                               if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
-                                                       kind = 13;
-                                               break;
-                                       case 25:
-                                               if (curChar == 39)
-                                                       jjCheckNAddStates(26, 30);
-                                               break;
-                                       case 26:
-                                               if ((0xffffff7fffffffffL & l) != 0L)
-                                                       jjCheckNAddStates(39, 41);
-                                               break;
-                                       case 28:
-                                               if (curChar == 39)
-                                                       jjCheckNAddStates(39, 41);
-                                               break;
-                                       case 29:
-                                               if (curChar == 39 && kind > 12)
-                                                       kind = 12;
-                                               break;
-                                       case 30:
-                                               if ((0xffffff7fffffffffL & l) != 0L)
-                                                       jjCheckNAddTwoStates(30, 31);
-                                               break;
-                                       case 32:
-                                               if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
-                                                       kind = 13;
-                                               break;
-                                       case 33:
-                                               if ((0x1800000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 53)
-                                                       kind = 53;
-                                               jjCheckNAddStates(20, 25);
-                                               break;
-                                       case 34:
-                                               if ((0x3ff001000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 53)
-                                                       kind = 53;
-                                               jjCheckNAdd(34);
-                                               break;
-                                       case 35:
-                                               if ((0x3ff001000000000L & l) != 0L)
-                                                       jjCheckNAddStates(7, 10);
-                                               break;
-                                       case 36:
-                                               if ((0x1800000000L & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 37:
-                                               if ((0x3ff001000000000L & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 38:
-                                               if ((0x600000000000L & l) != 0L)
-                                                       jjCheckNAddStates(4, 6);
-                                               break;
-                                       case 39:
-                                               if (curChar == 58 && kind > 54)
-                                                       kind = 54;
-                                               break;
-                                       case 40:
-                                               if ((0x3ff001000000000L & l) == 0L)
-                                                       break;
-                                               if (kind > 55)
-                                                       kind = 55;
-                                               jjCheckNAdd(40);
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } while (i != startsAt);
-                       } else if (curChar < 128) {
-                               long l = 1L << (curChar & 077);
-                               MatchLoop: do {
-                                       switch (jjstateSet[--i]) {
-                                       case 41:
-                                               if ((0x7fffffe87fffffeL & l) != 0L) {
-                                                       if (kind > 55)
-                                                               kind = 55;
-                                                       jjCheckNAdd(40);
-                                               }
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(7, 10);
-                                               if ((0x7fffffe87fffffeL & l) != 0L) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAdd(34);
-                                               }
-                                               break;
-                                       case 0:
-                                               if ((0x7fffffe87fffffeL & l) == 0L)
-                                                       break;
-                                               if (kind > 53)
-                                                       kind = 53;
-                                               jjCheckNAddStates(20, 25);
-                                               break;
-                                       case 42:
-                                               if ((0x7fffffe87fffffeL & l) != 0L) {
-                                                       if (kind > 55)
-                                                               kind = 55;
-                                                       jjCheckNAdd(40);
-                                               }
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(7, 10);
-                                               if ((0x7fffffe87fffffeL & l) != 0L) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAdd(34);
-                                               }
-                                               break;
-                                       case 2:
-                                               if ((0x2000000020L & l) != 0L)
-                                                       jjAddStates(42, 43);
-                                               break;
-                                       case 10:
-                                               if ((0x2000000020L & l) != 0L)
-                                                       jjAddStates(44, 45);
-                                               break;
-                                       case 14:
-                                               if ((0x2000000020L & l) != 0L)
-                                                       jjAddStates(46, 47);
-                                               break;
-                                       case 18:
-                                               if ((0xffffffffefffffffL & l) != 0L)
-                                                       jjCheckNAddStates(36, 38);
-                                               break;
-                                       case 19:
-                                               if (curChar == 92)
-                                                       jjstateSet[jjnewStateCnt++] = 20;
-                                               break;
-                                       case 20:
-                                               if (curChar == 92)
-                                                       jjCheckNAddStates(36, 38);
-                                               break;
-                                       case 22:
-                                               if ((0xffffffffefffffffL & l) != 0L)
-                                                       jjAddStates(48, 49);
-                                               break;
-                                       case 23:
-                                               if (curChar == 92)
-                                                       jjstateSet[jjnewStateCnt++] = 24;
-                                               break;
-                                       case 24:
-                                       case 32:
-                                               if ((0xffffffffefffffffL & l) != 0L && kind > 13)
-                                                       kind = 13;
-                                               break;
-                                       case 26:
-                                               if ((0xffffffffefffffffL & l) != 0L)
-                                                       jjCheckNAddStates(39, 41);
-                                               break;
-                                       case 27:
-                                               if (curChar == 92)
-                                                       jjstateSet[jjnewStateCnt++] = 28;
-                                               break;
-                                       case 28:
-                                               if (curChar == 92)
-                                                       jjCheckNAddStates(39, 41);
-                                               break;
-                                       case 30:
-                                               if ((0xffffffffefffffffL & l) != 0L)
-                                                       jjAddStates(50, 51);
-                                               break;
-                                       case 31:
-                                               if (curChar == 92)
-                                                       jjstateSet[jjnewStateCnt++] = 32;
-                                               break;
-                                       case 34:
-                                               if ((0x7fffffe87fffffeL & l) == 0L)
-                                                       break;
-                                               if (kind > 53)
-                                                       kind = 53;
-                                               jjCheckNAdd(34);
-                                               break;
-                                       case 35:
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(7, 10);
-                                               break;
-                                       case 36:
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 37:
-                                               if ((0x7fffffe87fffffeL & l) != 0L)
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 40:
-                                               if ((0x7fffffe87fffffeL & l) == 0L)
-                                                       break;
-                                               if (kind > 55)
-                                                       kind = 55;
-                                               jjCheckNAdd(40);
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } while (i != startsAt);
-                       } else {
-                               int hiByte = (int) (curChar >> 8);
-                               int i1 = hiByte >> 6;
-                               long l1 = 1L << (hiByte & 077);
-                               int i2 = (curChar & 0xff) >> 6;
-                               long l2 = 1L << (curChar & 077);
-                               MatchLoop: do {
-                                       switch (jjstateSet[--i]) {
-                                       case 41:
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAdd(34);
-                                               }
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(7, 10);
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(11, 14);
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
-                                                       if (kind > 55)
-                                                               kind = 55;
-                                                       jjCheckNAdd(40);
-                                               }
-                                               break;
-                                       case 0:
-                                               if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       break;
-                                               if (kind > 53)
-                                                       kind = 53;
-                                               jjCheckNAddStates(20, 25);
-                                               break;
-                                       case 42:
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
-                                                       if (kind > 53)
-                                                               kind = 53;
-                                                       jjCheckNAdd(34);
-                                               }
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(7, 10);
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(11, 14);
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(11, 14);
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
-                                                       if (kind > 55)
-                                                               kind = 55;
-                                                       jjCheckNAdd(40);
-                                               }
-                                               break;
-                                       case 18:
-                                               if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                                                       jjAddStates(36, 38);
-                                               break;
-                                       case 22:
-                                               if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                                                       jjAddStates(48, 49);
-                                               break;
-                                       case 24:
-                                       case 32:
-                                               if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
-                                                       kind = 13;
-                                               break;
-                                       case 26:
-                                               if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                                                       jjAddStates(39, 41);
-                                               break;
-                                       case 30:
-                                               if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                                                       jjAddStates(50, 51);
-                                               break;
-                                       case 34:
-                                               if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       break;
-                                               if (kind > 53)
-                                                       kind = 53;
-                                               jjCheckNAdd(34);
-                                               break;
-                                       case 35:
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(7, 10);
-                                               break;
-                                       case 36:
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 37:
-                                               if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       jjCheckNAddStates(11, 14);
-                                               break;
-                                       case 40:
-                                               if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                                                       break;
-                                               if (kind > 55)
-                                                       kind = 55;
-                                               jjCheckNAdd(40);
-                                               break;
-                                       default:
-                                               break;
-                                       }
-                               } while (i != startsAt);
-                       }
-                       if (kind != 0x7fffffff) {
-                               jjmatchedKind = kind;
-                               jjmatchedPos = curPos;
-                               kind = 0x7fffffff;
-                       }
-                       ++curPos;
-                       if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt)))
-                               return curPos;
-                       try {
-                               curChar = input_stream.readChar();
-                       } catch (java.io.IOException e) {
-                               return curPos;
-                       }
-               }
-       }
-
-       static final int[] jjnextStates = { 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39,
-                       36, 37, 38, 39, 6, 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27,
-                       29, 30, 31, 18, 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11,
-                       12, 15, 16, 22, 23, 30, 31, };
-
-       private static final boolean jjCanMove_0(int hiByte, int i1, int i2,
-                       long l1, long l2) {
-               switch (hiByte) {
-               case 0:
-                       return ((jjbitVec2[i2] & l2) != 0L);
-               default:
-                       if ((jjbitVec0[i1] & l1) != 0L)
-                               return true;
-                       return false;
-               }
-       }
-
-       private static final boolean jjCanMove_1(int hiByte, int i1, int i2,
-                       long l1, long l2) {
-               switch (hiByte) {
-               case 0:
-                       return ((jjbitVec4[i2] & l2) != 0L);
-               case 48:
-                       return ((jjbitVec5[i2] & l2) != 0L);
-               case 49:
-                       return ((jjbitVec6[i2] & l2) != 0L);
-               case 51:
-                       return ((jjbitVec7[i2] & l2) != 0L);
-               case 61:
-                       return ((jjbitVec8[i2] & l2) != 0L);
-               default:
-                       if ((jjbitVec3[i1] & l1) != 0L)
-                               return true;
-                       return false;
-               }
-       }
-
-       public static final String[] jjstrLiteralImages = { "", null, "\44\173",
-                       "\43\173", null, null, null, null, null, null, null, null, null,
-                       null, "\164\162\165\145", "\146\141\154\163\145",
-                       "\156\165\154\154", "\175", "\56", "\50", "\51", "\133", "\135",
-                       "\72", "\54", "\76", "\147\164", "\74", "\154\164", "\76\75",
-                       "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75",
-                       "\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144",
-                       "\174\174", "\157\162", "\145\155\160\164\171",
-                       "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55",
-                       "\77", "\57", "\144\151\166", "\45", "\155\157\144", null, null,
-                       null, null, null, null, null, };
-
-       public static final String[] lexStateNames = { "DEFAULT", "IN_EXPRESSION", };
-
-       public static final int[] jjnewLexState = { -1, -1, 1, 1, -1, -1, -1, -1,
-                       -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
-                       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-                       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-                       -1, };
-
-       static final long[] jjtoToken = { 0x8fffffffffff60fL, };
-
-       static final long[] jjtoSkip = { 0x1f0L, };
-
-       protected SimpleCharStream input_stream;
-
-       private final int[] jjrounds = new int[41];
-
-       private final int[] jjstateSet = new int[82];
-
-       protected char curChar;
-
-       public ELParserTokenManager(SimpleCharStream stream) {
-               if (SimpleCharStream.staticFlag)
-                       throw new Error(
-                                       "ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
-               input_stream = stream;
-       }
-
-       public ELParserTokenManager(SimpleCharStream stream, int lexState) {
-               this(stream);
-               SwitchTo(lexState);
-       }
-
-       public void ReInit(SimpleCharStream stream) {
-               jjmatchedPos = jjnewStateCnt = 0;
-               curLexState = defaultLexState;
-               input_stream = stream;
-               ReInitRounds();
-       }
-
-       private final void ReInitRounds() {
-               int i;
-               jjround = 0x80000001;
-               for (i = 41; i-- > 0;)
-                       jjrounds[i] = 0x80000000;
-       }
-
-       public void ReInit(SimpleCharStream stream, int lexState) {
-               ReInit(stream);
-               SwitchTo(lexState);
-       }
-
-       public void SwitchTo(int lexState) {
-               if (lexState >= 2 || lexState < 0)
-                       throw new TokenMgrError("Error: Ignoring invalid lexical state : "
-                                       + lexState + ". State unchanged.",
-                                       TokenMgrError.INVALID_LEXICAL_STATE);
-               else
-                       curLexState = lexState;
-       }
-
-       protected Token jjFillToken() {
-               Token t = Token.newToken(jjmatchedKind);
-               t.kind = jjmatchedKind;
-               String im = jjstrLiteralImages[jjmatchedKind];
-               t.image = (im == null) ? input_stream.GetImage() : im;
-               t.beginLine = input_stream.getBeginLine();
-               t.beginColumn = input_stream.getBeginColumn();
-               t.endLine = input_stream.getEndLine();
-               t.endColumn = input_stream.getEndColumn();
-               return t;
-       }
-
-       int curLexState = 0;
-
-       int defaultLexState = 0;
-
-       int jjnewStateCnt;
-
-       int jjround;
-
-       int jjmatchedPos;
-
-       int jjmatchedKind;
-
-       public Token getNextToken() {
-               int kind;
-               Token specialToken = null;
-               Token matchedToken;
-               int curPos = 0;
-
-               EOFLoop: for (;;) {
-                       try {
-                               curChar = input_stream.BeginToken();
-                       } catch (java.io.IOException e) {
-                               jjmatchedKind = 0;
-                               matchedToken = jjFillToken();
-                               return matchedToken;
-                       }
+protected Token jjFillToken()
+{
+   Token t = Token.newToken(jjmatchedKind);
+   t.kind = jjmatchedKind;
+   String im = jjstrLiteralImages[jjmatchedKind];
+   t.image = (im == null) ? input_stream.GetImage() : im;
+   t.beginLine = input_stream.getBeginLine();
+   t.beginColumn = input_stream.getBeginColumn();
+   t.endLine = input_stream.getEndLine();
+   t.endColumn = input_stream.getEndColumn();
+   return t;
+}
 
-                       switch (curLexState) {
-                       case 0:
-                               jjmatchedKind = 0x7fffffff;
-                               jjmatchedPos = 0;
-                               curPos = jjMoveStringLiteralDfa0_0();
-                               break;
-                       case 1:
-                               try {
-                                       input_stream.backup(0);
-                                       while (curChar <= 32
-                                                       && (0x100002600L & (1L << curChar)) != 0L)
-                                               curChar = input_stream.BeginToken();
-                               } catch (java.io.IOException e1) {
-                                       continue EOFLoop;
-                               }
-                               jjmatchedKind = 0x7fffffff;
-                               jjmatchedPos = 0;
-                               curPos = jjMoveStringLiteralDfa0_1();
-                               if (jjmatchedPos == 0 && jjmatchedKind > 59) {
-                                       jjmatchedKind = 59;
-                               }
-                               break;
-                       }
-                       if (jjmatchedKind != 0x7fffffff) {
-                               if (jjmatchedPos + 1 < curPos)
-                                       input_stream.backup(curPos - jjmatchedPos - 1);
-                               if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
-                                       matchedToken = jjFillToken();
-                                       if (jjnewLexState[jjmatchedKind] != -1)
-                                               curLexState = jjnewLexState[jjmatchedKind];
-                                       return matchedToken;
-                               } else {
-                                       if (jjnewLexState[jjmatchedKind] != -1)
-                                               curLexState = jjnewLexState[jjmatchedKind];
-                                       continue EOFLoop;
-                               }
-                       }
-                       int error_line = input_stream.getEndLine();
-                       int error_column = input_stream.getEndColumn();
-                       String error_after = null;
-                       boolean EOFSeen = false;
-                       try {
-                               input_stream.readChar();
-                               input_stream.backup(1);
-                       } catch (java.io.IOException e1) {
-                               EOFSeen = true;
-                               error_after = curPos <= 1 ? "" : input_stream.GetImage();
-                               if (curChar == '\n' || curChar == '\r') {
-                                       error_line++;
-                                       error_column = 0;
-                               } else
-                                       error_column++;
-                       }
-                       if (!EOFSeen) {
-                               input_stream.backup(1);
-                               error_after = curPos <= 1 ? "" : input_stream.GetImage();
-                       }
-                       throw new TokenMgrError(EOFSeen, curLexState, error_line,
-                                       error_column, error_after, curChar,
-                                       TokenMgrError.LEXICAL_ERROR);
-               }
-       }
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+public Token getNextToken() 
+{
+  int kind;
+  Token specialToken = null;
+  Token matchedToken;
+  int curPos = 0;
+
+  EOFLoop :
+  for (;;)
+  {   
+   try   
+   {     
+      curChar = input_stream.BeginToken();
+   }     
+   catch(java.io.IOException e)
+   {        
+      jjmatchedKind = 0;
+      matchedToken = jjFillToken();
+      return matchedToken;
+   }
+
+   switch(curLexState)
+   {
+     case 0:
+       jjmatchedKind = 0x7fffffff;
+       jjmatchedPos = 0;
+       curPos = jjMoveStringLiteralDfa0_0();
+       break;
+     case 1:
+       try { input_stream.backup(0);
+          while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
+             curChar = input_stream.BeginToken();
+       }
+       catch (java.io.IOException e1) { continue EOFLoop; }
+       jjmatchedKind = 0x7fffffff;
+       jjmatchedPos = 0;
+       curPos = jjMoveStringLiteralDfa0_1();
+       if (jjmatchedPos == 0 && jjmatchedKind > 59)
+       {
+          jjmatchedKind = 59;
+       }
+       break;
+   }
+     if (jjmatchedKind != 0x7fffffff)
+     {
+        if (jjmatchedPos + 1 < curPos)
+           input_stream.backup(curPos - jjmatchedPos - 1);
+        if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+        {
+           matchedToken = jjFillToken();
+       if (jjnewLexState[jjmatchedKind] != -1)
+         curLexState = jjnewLexState[jjmatchedKind];
+           return matchedToken;
+        }
+        else
+        {
+         if (jjnewLexState[jjmatchedKind] != -1)
+           curLexState = jjnewLexState[jjmatchedKind];
+           continue EOFLoop;
+        }
+     }
+     int error_line = input_stream.getEndLine();
+     int error_column = input_stream.getEndColumn();
+     String error_after = null;
+     boolean EOFSeen = false;
+     try { input_stream.readChar(); input_stream.backup(1); }
+     catch (java.io.IOException e1) {
+        EOFSeen = true;
+        error_after = curPos <= 1 ? "" : input_stream.GetImage();
+        if (curChar == '\n' || curChar == '\r') {
+           error_line++;
+           error_column = 0;
+        }
+        else
+           error_column++;
+     }
+     if (!EOFSeen) {
+        input_stream.backup(1);
+        error_after = curPos <= 1 ? "" : input_stream.GetImage();
+     }
+     throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+  }
+}
 
 }
index 59c9c89..278b327 100644 (file)
@@ -114,19 +114,19 @@ public class ParseException extends Exception {
     if (!specialConstructor) {
       return super.getMessage();
     }
-    String expected = "";
+    StringBuffer expected = new StringBuffer();
     int maxSize = 0;
     for (int i = 0; i < expectedTokenSequences.length; i++) {
       if (maxSize < expectedTokenSequences[i].length) {
         maxSize = expectedTokenSequences[i].length;
       }
       for (int j = 0; j < expectedTokenSequences[i].length; j++) {
-        expected += tokenImage[expectedTokenSequences[i][j]] + " ";
+        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(" ");
       }
       if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
-        expected += "...";
+        expected.append("...");
       }
-      expected += eol + "    ";
+      expected.append(eol).append("    ");
     }
     String retval = "Encountered \"";
     Token tok = currentToken.next;
@@ -146,7 +146,7 @@ public class ParseException extends Exception {
     } else {
       retval += "Was expecting one of:" + eol + "    ";
     }
-    retval += expected;
+    retval += expected.toString();
     return retval;
   }