The usual gang. (See previous Parser.jjt fix : separate REFMOD2 and DIRECTIVE RPAREN)
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/velocity/trunk@73493 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/velocity/runtime/parser/Parser.java b/src/java/org/apache/velocity/runtime/parser/Parser.java
index 45d7217..368b12b 100644
--- a/src/java/org/apache/velocity/runtime/parser/Parser.java
+++ b/src/java/org/apache/velocity/runtime/parser/Parser.java
@@ -18,7 +18,7 @@
  *
  * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
  * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
- * @version $Id: Parser.java,v 1.11 2000/10/31 16:02:59 geirm Exp $ 
+ * @version $Id: Parser.java,v 1.12 2000/11/01 01:11:20 geirm Exp $ 
 */
 public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants {/*@bgen(jjtree)*/
   protected JJTParserState jjtree = new JJTParserState();
@@ -571,7 +571,7 @@
         jj_la1[10] = jj_gen;
         ;
       }
-      jj_consume_token(RPAREN);
+      jj_consume_token(REFMOD2_RPAREN);
     } catch (Throwable jjte000) {
       if (jjtc000) {
         jjtree.clearNodeScope(jjtn000);
@@ -1738,45 +1738,6 @@
     return retval;
   }
 
-  final private boolean jj_3R_71() {
-    if (jj_scan_token(MINUS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_62()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  final private boolean jj_3R_62() {
-    if (jj_3R_68()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_69()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
-  final private boolean jj_3R_70() {
-    if (jj_scan_token(PLUS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_62()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  final private boolean jj_3R_63() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_70()) {
-    jj_scanpos = xsp;
-    if (jj_3R_71()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   final private boolean jj_3R_67() {
     if (jj_scan_token(LOGICAL_GE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -2095,7 +2056,7 @@
     xsp = jj_scanpos;
     if (jj_3R_21()) jj_scanpos = xsp;
     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RPAREN)) return true;
+    if (jj_scan_token(REFMOD2_RPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -2315,6 +2276,45 @@
     return false;
   }
 
+  final private boolean jj_3R_71() {
+    if (jj_scan_token(MINUS)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_62()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  final private boolean jj_3R_62() {
+    if (jj_3R_68()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_69()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_70() {
+    if (jj_scan_token(PLUS)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_62()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  final private boolean jj_3R_63() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_70()) {
+    jj_scanpos = xsp;
+    if (jj_3R_71()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   public ParserTokenManager token_source;
   ASCII_CharStream jj_input_stream;
   public Token token, jj_nt;
@@ -2325,8 +2325,8 @@
   private boolean jj_semLA;
   private int jj_gen;
   final private int[] jj_la1 = new int[36];
-  final private int[] jj_la1_0 = {0x91f030,0x91f030,0x1c000,0x100002,0x100002,0x91f030,0x8,0x700002,0x700002,0x8,0x700002,0x0,0x0,0x0,0x0,0x903030,0x91f030,0x0,0x0,0x0,0x91f030,0x91f030,0x800000,0x700012,0x40000000,0x20000000,0x0,0x0,0x80000000,0x80000000,0x3000000,0x3000000,0x1c000000,0x1c000000,0x700012,0x700012,};
-  final private int[] jj_la1_1 = {0xe2b300,0xe2b300,0x0,0xa28000,0xa28000,0xe2b300,0x0,0xa00000,0xa00000,0x0,0xa00000,0x800000,0x1000000,0x200000,0x1000000,0x408000,0xe2b300,0x400,0x400,0x800,0xe2b300,0xe2b300,0x0,0xa08020,0x0,0x0,0x18,0x18,0x7,0x7,0x0,0x0,0x0,0x0,0xa08020,0xa08000,};
+  final private int[] jj_la1_0 = {0x123e030,0x123e030,0x38000,0x200002,0x200002,0x123e030,0x8,0xe00002,0xe00002,0x8,0xe00002,0x0,0x0,0x0,0x0,0x1206030,0x123e030,0x0,0x0,0x0,0x123e030,0x123e030,0x1000000,0xe00012,0x80000000,0x40000000,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x38000000,0x38000000,0xe00012,0xe00012,};
+  final private int[] jj_la1_1 = {0x1c56600,0x1c56600,0x0,0x1450000,0x1450000,0x1c56600,0x0,0x1400000,0x1400000,0x0,0x1400000,0x1000000,0x2000000,0x400000,0x2000000,0x810000,0x1c56600,0x800,0x800,0x1000,0x1c56600,0x1c56600,0x0,0x1410040,0x0,0x0,0x30,0x30,0xf,0xf,0x0,0x0,0x0,0x0,0x1410040,0x1410000,};
   final private JJCalls[] jj_2_rtns = new JJCalls[3];
   private boolean jj_rescan = false;
   private int jj_gc = 0;
@@ -2495,8 +2495,8 @@
 
   final public ParseException generateParseException() {
     jj_expentries.removeAllElements();
-    boolean[] la1tokens = new boolean[58];
-    for (int i = 0; i < 58; i++) {
+    boolean[] la1tokens = new boolean[59];
+    for (int i = 0; i < 59; i++) {
       la1tokens[i] = false;
     }
     if (jj_kind >= 0) {
@@ -2515,7 +2515,7 @@
         }
       }
     }
-    for (int i = 0; i < 58; i++) {
+    for (int i = 0; i < 59; i++) {
       if (la1tokens[i]) {
         jj_expentry = new int[1];
         jj_expentry[0] = i;
diff --git a/src/java/org/apache/velocity/runtime/parser/Parser.jj b/src/java/org/apache/velocity/runtime/parser/Parser.jj
index ee3bd57..1a33d9b 100644
--- a/src/java/org/apache/velocity/runtime/parser/Parser.jj
+++ b/src/java/org/apache/velocity/runtime/parser/Parser.jj
@@ -98,7 +98,7 @@
  *
  * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
  * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
- * @version $Id: Parser.jj,v 1.11 2000/10/31 16:03:00 geirm Exp $ 
+ * @version $Id: Parser.jj,v 1.12 2000/11/01 01:11:21 geirm Exp $ 
 */
 public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
 {/*@bgen(jjtree)*/
@@ -429,7 +429,7 @@
     <COMMA:",">
 }
 
-<DIRECTIVE,REFMODIFIER,REFMOD2>
+<DIRECTIVE,REFMODIFIER>
 TOKEN:
 {
     <LPAREN: "(">
@@ -452,6 +452,18 @@
     }    
 }
 
+/*
+ *  in REFMOD2, we don't want to bind the whitespace and \n like we do when closing a directive.
+ */
+<REFMOD2>
+TOKEN:
+{
+    <REFMOD2_RPAREN: ")">
+    {
+       RPARENHandler();
+    }    
+}
+
 <*>
 MORE :
 {
@@ -1116,7 +1128,7 @@
 {/*@bgen(jjtree) Method */
     try {
 /*@egen*/
-    Identifier() <LPAREN> [ Parameter() ( <COMMA> Parameter() )* ] <RPAREN>/*@bgen(jjtree)*/
+    Identifier() <LPAREN> [ Parameter() ( <COMMA> Parameter() )* ] <REFMOD2_RPAREN>/*@bgen(jjtree)*/
     } catch (Throwable jjte000) {
       if (jjtc000) {
         jjtree.clearNodeScope(jjtn000);
diff --git a/src/java/org/apache/velocity/runtime/parser/ParserConstants.java b/src/java/org/apache/velocity/runtime/parser/ParserConstants.java
index 4d9878c..417b114 100644
--- a/src/java/org/apache/velocity/runtime/parser/ParserConstants.java
+++ b/src/java/org/apache/velocity/runtime/parser/ParserConstants.java
@@ -9,52 +9,53 @@
   int COMMA = 3;
   int LPAREN = 4;
   int RPAREN = 5;
-  int DOLLAR = 6;
-  int DOLLARBANG = 7;
-  int HASH = 11;
-  int ESCAPE_SEQUENCE = 12;
-  int TEXT = 13;
-  int SINGLE_LINE_COMMENT = 14;
-  int FORMAL_COMMENT = 15;
-  int MULTI_LINE_COMMENT = 16;
-  int STRING_LITERAL = 20;
-  int TRUE = 21;
-  int FALSE = 22;
-  int NEWLINE = 23;
-  int MINUS = 24;
-  int PLUS = 25;
-  int MULTIPLY = 26;
-  int DIVIDE = 27;
-  int MODULUS = 28;
-  int LOGICAL_AND = 29;
-  int LOGICAL_OR = 30;
-  int LOGICAL_LT = 31;
-  int LOGICAL_LE = 32;
-  int LOGICAL_GT = 33;
-  int LOGICAL_GE = 34;
-  int LOGICAL_EQUALS = 35;
-  int LOGICAL_NOT_EQUALS = 36;
-  int LOGICAL_NOT = 37;
-  int EQUALS = 38;
-  int END = 39;
-  int INCLUDE_DIRECTIVE = 40;
-  int IF_DIRECTIVE = 41;
-  int ELSEIF_DIRECTIVE = 42;
-  int ELSE_DIRECTIVE = 43;
-  int SET_DIRECTIVE = 44;
-  int STOP_DIRECTIVE = 45;
-  int DIGIT = 46;
-  int NUMBER_LITERAL = 47;
-  int LETTER = 48;
-  int WORD = 49;
-  int ALPHA_CHAR = 50;
-  int ALPHANUM_CHAR = 51;
-  int IDENTIFIER_CHAR = 52;
-  int IDENTIFIER = 53;
-  int DOT = 54;
-  int LCURLY = 55;
-  int RCURLY = 56;
-  int REFERENCE_TERMINATOR = 57;
+  int REFMOD2_RPAREN = 6;
+  int DOLLAR = 7;
+  int DOLLARBANG = 8;
+  int HASH = 12;
+  int ESCAPE_SEQUENCE = 13;
+  int TEXT = 14;
+  int SINGLE_LINE_COMMENT = 15;
+  int FORMAL_COMMENT = 16;
+  int MULTI_LINE_COMMENT = 17;
+  int STRING_LITERAL = 21;
+  int TRUE = 22;
+  int FALSE = 23;
+  int NEWLINE = 24;
+  int MINUS = 25;
+  int PLUS = 26;
+  int MULTIPLY = 27;
+  int DIVIDE = 28;
+  int MODULUS = 29;
+  int LOGICAL_AND = 30;
+  int LOGICAL_OR = 31;
+  int LOGICAL_LT = 32;
+  int LOGICAL_LE = 33;
+  int LOGICAL_GT = 34;
+  int LOGICAL_GE = 35;
+  int LOGICAL_EQUALS = 36;
+  int LOGICAL_NOT_EQUALS = 37;
+  int LOGICAL_NOT = 38;
+  int EQUALS = 39;
+  int END = 40;
+  int INCLUDE_DIRECTIVE = 41;
+  int IF_DIRECTIVE = 42;
+  int ELSEIF_DIRECTIVE = 43;
+  int ELSE_DIRECTIVE = 44;
+  int SET_DIRECTIVE = 45;
+  int STOP_DIRECTIVE = 46;
+  int DIGIT = 47;
+  int NUMBER_LITERAL = 48;
+  int LETTER = 49;
+  int WORD = 50;
+  int ALPHA_CHAR = 51;
+  int ALPHANUM_CHAR = 52;
+  int IDENTIFIER_CHAR = 53;
+  int IDENTIFIER = 54;
+  int DOT = 55;
+  int LCURLY = 56;
+  int RCURLY = 57;
+  int REFERENCE_TERMINATOR = 58;
 
   int DIRECTIVE = 0;
   int REFMODIFIER = 1;
@@ -72,10 +73,11 @@
     "\",\"",
     "\"(\"",
     "<RPAREN>",
+    "\")\"",
     "\"$\"",
     "\"$!\"",
     "\"##\"",
-    "<token of kind 9>",
+    "<token of kind 10>",
     "\"#*\"",
     "\"#\"",
     "<ESCAPE_SEQUENCE>",
@@ -83,7 +85,7 @@
     "<SINGLE_LINE_COMMENT>",
     "\"*#\"",
     "\"*#\"",
-    "<token of kind 17>",
+    "<token of kind 18>",
     "\" \"",
     "\"\\t\"",
     "<STRING_LITERAL>",
diff --git a/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java b/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java
index d44c3d1..74a2f7a 100644
--- a/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java
+++ b/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java
@@ -225,72 +225,72 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
-            return 5;
-         if ((active0 & 0xc0000000000L) != 0L)
+         if ((active0 & 0x180000000000L) != 0L)
          {
-            jjmatchedKind = 49;
+            jjmatchedKind = 50;
             return 15;
          }
-         if ((active0 & 0x330000600000L) != 0L)
+         if ((active0 & 0x1a00L) != 0L)
+            return 5;
+         if ((active0 & 0x660000c00000L) != 0L)
          {
-            jjmatchedKind = 49;
+            jjmatchedKind = 50;
             return 18;
          }
          return -1;
       case 1:
-         if ((active0 & 0x400L) != 0L)
+         if ((active0 & 0x800L) != 0L)
             return 3;
-         if ((active0 & 0x20000000000L) != 0L)
+         if ((active0 & 0x40000000000L) != 0L)
             return 18;
-         if ((active0 & 0x3d0000600000L) != 0L)
+         if ((active0 & 0x7a0000c00000L) != 0L)
          {
-            jjmatchedKind = 49;
+            jjmatchedKind = 50;
             jjmatchedPos = 1;
             return 18;
          }
          return -1;
       case 2:
-         if ((active0 & 0x2d0000600000L) != 0L)
+         if ((active0 & 0x5a0000c00000L) != 0L)
          {
-            jjmatchedKind = 49;
+            jjmatchedKind = 50;
             jjmatchedPos = 2;
             return 18;
          }
-         if ((active0 & 0x100000000000L) != 0L)
+         if ((active0 & 0x200000000000L) != 0L)
             return 18;
          return -1;
       case 3:
-         if ((active0 & 0x10000400000L) != 0L)
+         if ((active0 & 0x20000800000L) != 0L)
          {
             if (jjmatchedPos != 3)
             {
-               jjmatchedKind = 49;
+               jjmatchedKind = 50;
                jjmatchedPos = 3;
             }
             return 18;
          }
-         if ((active0 & 0x2c0000200000L) != 0L)
+         if ((active0 & 0x580000400000L) != 0L)
             return 18;
          return -1;
       case 4:
-         if ((active0 & 0x50000000000L) != 0L)
+         if ((active0 & 0xa0000000000L) != 0L)
          {
-            jjmatchedKind = 49;
+            jjmatchedKind = 50;
             jjmatchedPos = 4;
             return 18;
          }
-         if ((active0 & 0x400000L) != 0L)
+         if ((active0 & 0x800000L) != 0L)
             return 18;
          return -1;
       case 5:
-         if ((active0 & 0x10000000000L) != 0L)
+         if ((active0 & 0x20000000000L) != 0L)
          {
-            jjmatchedKind = 49;
+            jjmatchedKind = 50;
             jjmatchedPos = 5;
             return 18;
          }
-         if ((active0 & 0x40000000000L) != 0L)
+         if ((active0 & 0x80000000000L) != 0L)
             return 18;
          return -1;
       default :
@@ -320,55 +320,55 @@
    switch(curChar)
    {
       case 33:
-         jjmatchedKind = 37;
-         return jjMoveStringLiteralDfa1_0(0x1000000000L);
+         jjmatchedKind = 38;
+         return jjMoveStringLiteralDfa1_0(0x2000000000L);
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_0(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_0(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_0(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_0(0x100L);
       case 37:
-         return jjStopAtPos(0, 28);
+         return jjStopAtPos(0, 29);
       case 38:
-         return jjMoveStringLiteralDfa1_0(0x20000000L);
+         return jjMoveStringLiteralDfa1_0(0x40000000L);
       case 40:
          return jjStopAtPos(0, 4);
       case 42:
-         return jjStopAtPos(0, 26);
+         return jjStopAtPos(0, 27);
       case 43:
-         return jjStopAtPos(0, 25);
+         return jjStopAtPos(0, 26);
       case 44:
          return jjStopAtPos(0, 3);
       case 45:
-         return jjStopAtPos(0, 24);
+         return jjStopAtPos(0, 25);
       case 47:
-         return jjStopAtPos(0, 27);
+         return jjStopAtPos(0, 28);
       case 60:
-         jjmatchedKind = 31;
-         return jjMoveStringLiteralDfa1_0(0x100000000L);
+         jjmatchedKind = 32;
+         return jjMoveStringLiteralDfa1_0(0x200000000L);
       case 61:
-         jjmatchedKind = 38;
-         return jjMoveStringLiteralDfa1_0(0x800000000L);
+         jjmatchedKind = 39;
+         return jjMoveStringLiteralDfa1_0(0x1000000000L);
       case 62:
-         jjmatchedKind = 33;
-         return jjMoveStringLiteralDfa1_0(0x400000000L);
+         jjmatchedKind = 34;
+         return jjMoveStringLiteralDfa1_0(0x800000000L);
       case 91:
          return jjStopAtPos(0, 1);
       case 93:
          return jjStopAtPos(0, 2);
       case 101:
-         return jjMoveStringLiteralDfa1_0(0xc0000000000L);
+         return jjMoveStringLiteralDfa1_0(0x180000000000L);
       case 102:
-         return jjMoveStringLiteralDfa1_0(0x400000L);
+         return jjMoveStringLiteralDfa1_0(0x800000L);
       case 105:
-         return jjMoveStringLiteralDfa1_0(0x30000000000L);
+         return jjMoveStringLiteralDfa1_0(0x60000000000L);
       case 115:
-         return jjMoveStringLiteralDfa1_0(0x300000000000L);
+         return jjMoveStringLiteralDfa1_0(0x600000000000L);
       case 116:
-         return jjMoveStringLiteralDfa1_0(0x200000L);
+         return jjMoveStringLiteralDfa1_0(0x400000L);
       case 124:
-         return jjMoveStringLiteralDfa1_0(0x40000000L);
+         return jjMoveStringLiteralDfa1_0(0x80000000L);
       default :
          return jjMoveNfa_0(0, 0);
    }
@@ -383,50 +383,50 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
          break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
       case 38:
-         if ((active0 & 0x20000000L) != 0L)
-            return jjStopAtPos(1, 29);
+         if ((active0 & 0x40000000L) != 0L)
+            return jjStopAtPos(1, 30);
          break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_0(1, 10, 3);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_0(1, 11, 3);
          break;
       case 61:
-         if ((active0 & 0x100000000L) != 0L)
-            return jjStopAtPos(1, 32);
-         else if ((active0 & 0x400000000L) != 0L)
-            return jjStopAtPos(1, 34);
+         if ((active0 & 0x200000000L) != 0L)
+            return jjStopAtPos(1, 33);
          else if ((active0 & 0x800000000L) != 0L)
             return jjStopAtPos(1, 35);
          else if ((active0 & 0x1000000000L) != 0L)
             return jjStopAtPos(1, 36);
+         else if ((active0 & 0x2000000000L) != 0L)
+            return jjStopAtPos(1, 37);
          break;
       case 97:
-         return jjMoveStringLiteralDfa2_0(active0, 0x400000L);
+         return jjMoveStringLiteralDfa2_0(active0, 0x800000L);
       case 101:
-         return jjMoveStringLiteralDfa2_0(active0, 0x100000000000L);
+         return jjMoveStringLiteralDfa2_0(active0, 0x200000000000L);
       case 102:
-         if ((active0 & 0x20000000000L) != 0L)
-            return jjStartNfaWithStates_0(1, 41, 18);
+         if ((active0 & 0x40000000000L) != 0L)
+            return jjStartNfaWithStates_0(1, 42, 18);
          break;
       case 108:
-         return jjMoveStringLiteralDfa2_0(active0, 0xc0000000000L);
+         return jjMoveStringLiteralDfa2_0(active0, 0x180000000000L);
       case 110:
-         return jjMoveStringLiteralDfa2_0(active0, 0x10000000000L);
+         return jjMoveStringLiteralDfa2_0(active0, 0x20000000000L);
       case 114:
-         return jjMoveStringLiteralDfa2_0(active0, 0x200000L);
+         return jjMoveStringLiteralDfa2_0(active0, 0x400000L);
       case 116:
-         return jjMoveStringLiteralDfa2_0(active0, 0x200000000000L);
+         return jjMoveStringLiteralDfa2_0(active0, 0x400000000000L);
       case 124:
-         if ((active0 & 0x40000000L) != 0L)
-            return jjStopAtPos(1, 30);
+         if ((active0 & 0x80000000L) != 0L)
+            return jjStopAtPos(1, 31);
          break;
       default :
          break;
@@ -445,19 +445,19 @@
    switch(curChar)
    {
       case 99:
-         return jjMoveStringLiteralDfa3_0(active0, 0x10000000000L);
+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L);
       case 108:
-         return jjMoveStringLiteralDfa3_0(active0, 0x400000L);
+         return jjMoveStringLiteralDfa3_0(active0, 0x800000L);
       case 111:
-         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000L);
+         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000L);
       case 115:
-         return jjMoveStringLiteralDfa3_0(active0, 0xc0000000000L);
+         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000L);
       case 116:
-         if ((active0 & 0x100000000000L) != 0L)
-            return jjStartNfaWithStates_0(2, 44, 18);
+         if ((active0 & 0x200000000000L) != 0L)
+            return jjStartNfaWithStates_0(2, 45, 18);
          break;
       case 117:
-         return jjMoveStringLiteralDfa3_0(active0, 0x200000L);
+         return jjMoveStringLiteralDfa3_0(active0, 0x400000L);
       default :
          break;
    }
@@ -475,22 +475,22 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x200000L) != 0L)
-            return jjStartNfaWithStates_0(3, 21, 18);
-         else if ((active0 & 0x80000000000L) != 0L)
+         if ((active0 & 0x400000L) != 0L)
+            return jjStartNfaWithStates_0(3, 22, 18);
+         else if ((active0 & 0x100000000000L) != 0L)
          {
-            jjmatchedKind = 43;
+            jjmatchedKind = 44;
             jjmatchedPos = 3;
          }
-         return jjMoveStringLiteralDfa4_0(active0, 0x40000000000L);
+         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000L);
       case 108:
-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L);
+         return jjMoveStringLiteralDfa4_0(active0, 0x20000000000L);
       case 112:
-         if ((active0 & 0x200000000000L) != 0L)
-            return jjStartNfaWithStates_0(3, 45, 18);
+         if ((active0 & 0x400000000000L) != 0L)
+            return jjStartNfaWithStates_0(3, 46, 18);
          break;
       case 115:
-         return jjMoveStringLiteralDfa4_0(active0, 0x400000L);
+         return jjMoveStringLiteralDfa4_0(active0, 0x800000L);
       default :
          break;
    }
@@ -508,13 +508,13 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x400000L) != 0L)
-            return jjStartNfaWithStates_0(4, 22, 18);
+         if ((active0 & 0x800000L) != 0L)
+            return jjStartNfaWithStates_0(4, 23, 18);
          break;
       case 105:
-         return jjMoveStringLiteralDfa5_0(active0, 0x40000000000L);
+         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000L);
       case 117:
-         return jjMoveStringLiteralDfa5_0(active0, 0x10000000000L);
+         return jjMoveStringLiteralDfa5_0(active0, 0x20000000000L);
       default :
          break;
    }
@@ -532,10 +532,10 @@
    switch(curChar)
    {
       case 100:
-         return jjMoveStringLiteralDfa6_0(active0, 0x10000000000L);
+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L);
       case 102:
-         if ((active0 & 0x40000000000L) != 0L)
-            return jjStartNfaWithStates_0(5, 42, 18);
+         if ((active0 & 0x80000000000L) != 0L)
+            return jjStartNfaWithStates_0(5, 43, 18);
          break;
       default :
          break;
@@ -554,8 +554,8 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x10000000000L) != 0L)
-            return jjStartNfaWithStates_0(6, 40, 18);
+         if ((active0 & 0x20000000000L) != 0L)
+            return jjStartNfaWithStates_0(6, 41, 18);
          break;
       default :
          break;
@@ -617,14 +617,14 @@
                case 0:
                   if ((0x3ff000000000000L & l) != 0L)
                   {
-                     if (kind > 47)
-                        kind = 47;
+                     if (kind > 48)
+                        kind = 48;
                      jjCheckNAdd(17);
                   }
                   else if ((0x2400L & l) != 0L)
                   {
-                     if (kind > 23)
-                        kind = 23;
+                     if (kind > 24)
+                        kind = 24;
                   }
                   else if (curChar == 34)
                      jjCheckNAddTwoStates(8, 9);
@@ -655,8 +655,8 @@
                      jjstateSet[jjnewStateCnt++] = 4;
                   break;
                case 4:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 5:
                   if (curChar == 42)
@@ -675,30 +675,30 @@
                      jjCheckNAddTwoStates(8, 9);
                   break;
                case 9:
-                  if (curChar == 34 && kind > 20)
-                     kind = 20;
+                  if (curChar == 34 && kind > 21)
+                     kind = 21;
                   break;
                case 10:
-                  if ((0x2400L & l) != 0L && kind > 23)
-                     kind = 23;
+                  if ((0x2400L & l) != 0L && kind > 24)
+                     kind = 24;
                   break;
                case 11:
-                  if (curChar == 10 && kind > 23)
-                     kind = 23;
+                  if (curChar == 10 && kind > 24)
+                     kind = 24;
                   break;
                case 12:
                   if (curChar == 13)
                      jjstateSet[jjnewStateCnt++] = 11;
                   break;
                case 14:
-                  if (curChar == 10 && kind > 39)
-                     kind = 39;
+                  if (curChar == 10 && kind > 40)
+                     kind = 40;
                   break;
                case 17:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 47)
-                     kind = 47;
+                  if (kind > 48)
+                     kind = 48;
                   jjCheckNAdd(17);
                   break;
                default : break;
@@ -715,8 +715,8 @@
                case 15:
                   if ((0x7fffffe07fffffeL & l) != 0L)
                   {
-                     if (kind > 49)
-                        kind = 49;
+                     if (kind > 50)
+                        kind = 50;
                      jjCheckNAdd(18);
                   }
                   if (curChar == 110)
@@ -725,16 +725,16 @@
                case 0:
                   if ((0x7fffffe07fffffeL & l) != 0L)
                   {
-                     if (kind > 49)
-                        kind = 49;
+                     if (kind > 50)
+                        kind = 50;
                      jjCheckNAdd(18);
                   }
                   if (curChar == 101)
                      jjstateSet[jjnewStateCnt++] = 15;
                   break;
                case 4:
-                  if (kind > 9)
-                     kind = 9;
+                  if (kind > 10)
+                     kind = 10;
                   break;
                case 8:
                   jjAddStates(0, 1);
@@ -742,8 +742,8 @@
                case 13:
                   if (curChar != 100)
                      break;
-                  if (kind > 39)
-                     kind = 39;
+                  if (kind > 40)
+                     kind = 40;
                   jjstateSet[jjnewStateCnt++] = 14;
                   break;
                case 16:
@@ -753,8 +753,8 @@
                case 18:
                   if ((0x7fffffe07fffffeL & l) == 0L)
                      break;
-                  if (kind > 49)
-                     kind = 49;
+                  if (kind > 50)
+                     kind = 50;
                   jjCheckNAdd(18);
                   break;
                default : break;
@@ -770,8 +770,8 @@
             switch(jjstateSet[--i])
             {
                case 4:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 8:
                   if ((jjbitVec0[i2] & l2) != 0L)
@@ -799,7 +799,7 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
+         if ((active0 & 0x1a00L) != 0L)
             return 2;
          return -1;
       default :
@@ -823,13 +823,13 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_4(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_4(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_4(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_4(0x100L);
       case 42:
-         return jjMoveStringLiteralDfa1_4(0x10000L);
+         return jjMoveStringLiteralDfa1_4(0x20000L);
       default :
          return jjMoveNfa_4(3, 0);
    }
@@ -844,18 +844,18 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
-         else if ((active0 & 0x10000L) != 0L)
-            return jjStopAtPos(1, 16);
+         break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         else if ((active0 & 0x20000L) != 0L)
+            return jjStopAtPos(1, 17);
          break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_4(1, 10, 0);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_4(1, 11, 0);
          break;
       default :
          break;
@@ -886,8 +886,8 @@
                      jjstateSet[jjnewStateCnt++] = 1;
                   break;
                case 1:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 2:
                   if (curChar == 42)
@@ -909,7 +909,7 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  kind = 9;
+                  kind = 10;
                   break;
                default : break;
             }
@@ -924,8 +924,8 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                default : break;
             }
@@ -949,40 +949,40 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
-            return 2;
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             return 8;
          }
+         if ((active0 & 0x1a00L) != 0L)
+            return 2;
          return -1;
       case 1:
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0x800L) != 0L)
+            return 0;
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 1;
             return 8;
          }
-         if ((active0 & 0x400L) != 0L)
-            return 0;
          return -1;
       case 2:
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 2;
             return 8;
          }
          return -1;
       case 3:
-         if ((active0 & 0x400000L) != 0L)
+         if ((active0 & 0x800000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 3;
             return 8;
          }
-         if ((active0 & 0x200000L) != 0L)
+         if ((active0 & 0x400000L) != 0L)
             return 8;
          return -1;
       default :
@@ -1006,19 +1006,19 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_3(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_3(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_3(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_3(0x100L);
       case 102:
-         return jjMoveStringLiteralDfa1_3(0x400000L);
+         return jjMoveStringLiteralDfa1_3(0x800000L);
       case 116:
-         return jjMoveStringLiteralDfa1_3(0x200000L);
+         return jjMoveStringLiteralDfa1_3(0x400000L);
       case 123:
-         return jjStopAtPos(0, 55);
-      case 125:
          return jjStopAtPos(0, 56);
+      case 125:
+         return jjStopAtPos(0, 57);
       default :
          return jjMoveNfa_3(3, 0);
    }
@@ -1033,21 +1033,21 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
          break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_3(1, 10, 0);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_3(1, 11, 0);
          break;
       case 97:
-         return jjMoveStringLiteralDfa2_3(active0, 0x400000L);
+         return jjMoveStringLiteralDfa2_3(active0, 0x800000L);
       case 114:
-         return jjMoveStringLiteralDfa2_3(active0, 0x200000L);
+         return jjMoveStringLiteralDfa2_3(active0, 0x400000L);
       default :
          break;
    }
@@ -1065,9 +1065,9 @@
    switch(curChar)
    {
       case 108:
-         return jjMoveStringLiteralDfa3_3(active0, 0x400000L);
+         return jjMoveStringLiteralDfa3_3(active0, 0x800000L);
       case 117:
-         return jjMoveStringLiteralDfa3_3(active0, 0x200000L);
+         return jjMoveStringLiteralDfa3_3(active0, 0x400000L);
       default :
          break;
    }
@@ -1085,11 +1085,11 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x200000L) != 0L)
-            return jjStartNfaWithStates_3(3, 21, 8);
+         if ((active0 & 0x400000L) != 0L)
+            return jjStartNfaWithStates_3(3, 22, 8);
          break;
       case 115:
-         return jjMoveStringLiteralDfa4_3(active0, 0x400000L);
+         return jjMoveStringLiteralDfa4_3(active0, 0x800000L);
       default :
          break;
    }
@@ -1107,8 +1107,8 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x400000L) != 0L)
-            return jjStartNfaWithStates_3(4, 22, 8);
+         if ((active0 & 0x800000L) != 0L)
+            return jjStartNfaWithStates_3(4, 23, 8);
          break;
       default :
          break;
@@ -1147,8 +1147,8 @@
                      jjstateSet[jjnewStateCnt++] = 1;
                   break;
                case 1:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 2:
                   if (curChar == 42)
@@ -1163,14 +1163,14 @@
                      jjCheckNAddTwoStates(5, 6);
                   break;
                case 6:
-                  if (curChar == 34 && kind > 20)
-                     kind = 20;
+                  if (curChar == 34 && kind > 21)
+                     kind = 21;
                   break;
                case 8:
                   if ((0x3ff200000000000L & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
+                  if (kind > 54)
+                     kind = 54;
                   jjstateSet[jjnewStateCnt++] = 8;
                   break;
                case 9:
@@ -1191,13 +1191,13 @@
                case 3:
                   if ((0x7fffffe07fffffeL & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
+                  if (kind > 54)
+                     kind = 54;
                   jjCheckNAdd(8);
                   break;
                case 1:
-                  if (kind > 9)
-                     kind = 9;
+                  if (kind > 10)
+                     kind = 10;
                   break;
                case 5:
                   jjAddStates(2, 3);
@@ -1205,13 +1205,13 @@
                case 8:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
+                  if (kind > 54)
+                     kind = 54;
                   jjCheckNAdd(8);
                   break;
                case 10:
-                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 54)
-                     kind = 54;
+                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 55)
+                     kind = 55;
                   break;
                default : break;
             }
@@ -1226,8 +1226,8 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 5:
                   if ((jjbitVec0[i2] & l2) != 0L)
@@ -1255,38 +1255,38 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
+         if ((active0 & 0x1a00L) != 0L)
             return 5;
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             return 11;
          }
          return -1;
       case 1:
-         if ((active0 & 0x400L) != 0L)
-            return 3;
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 1;
             return 11;
          }
+         if ((active0 & 0x800L) != 0L)
+            return 3;
          return -1;
       case 2:
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 2;
             return 11;
          }
          return -1;
       case 3:
-         if ((active0 & 0x200000L) != 0L)
-            return 11;
          if ((active0 & 0x400000L) != 0L)
+            return 11;
+         if ((active0 & 0x800000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 3;
             return 11;
          }
@@ -1312,11 +1312,11 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_1(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_1(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_1(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_1(0x100L);
       case 40:
          return jjStopAtPos(0, 4);
       case 91:
@@ -1324,13 +1324,13 @@
       case 93:
          return jjStopAtPos(0, 2);
       case 102:
-         return jjMoveStringLiteralDfa1_1(0x400000L);
+         return jjMoveStringLiteralDfa1_1(0x800000L);
       case 116:
-         return jjMoveStringLiteralDfa1_1(0x200000L);
+         return jjMoveStringLiteralDfa1_1(0x400000L);
       case 123:
-         return jjStopAtPos(0, 55);
-      case 125:
          return jjStopAtPos(0, 56);
+      case 125:
+         return jjStopAtPos(0, 57);
       default :
          return jjMoveNfa_1(0, 0);
    }
@@ -1345,21 +1345,21 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
          break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_1(1, 10, 3);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_1(1, 11, 3);
          break;
       case 97:
-         return jjMoveStringLiteralDfa2_1(active0, 0x400000L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x800000L);
       case 114:
-         return jjMoveStringLiteralDfa2_1(active0, 0x200000L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x400000L);
       default :
          break;
    }
@@ -1377,9 +1377,9 @@
    switch(curChar)
    {
       case 108:
-         return jjMoveStringLiteralDfa3_1(active0, 0x400000L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x800000L);
       case 117:
-         return jjMoveStringLiteralDfa3_1(active0, 0x200000L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x400000L);
       default :
          break;
    }
@@ -1397,11 +1397,11 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x200000L) != 0L)
-            return jjStartNfaWithStates_1(3, 21, 11);
+         if ((active0 & 0x400000L) != 0L)
+            return jjStartNfaWithStates_1(3, 22, 11);
          break;
       case 115:
-         return jjMoveStringLiteralDfa4_1(active0, 0x400000L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x800000L);
       default :
          break;
    }
@@ -1419,8 +1419,8 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x400000L) != 0L)
-            return jjStartNfaWithStates_1(4, 22, 11);
+         if ((active0 & 0x800000L) != 0L)
+            return jjStartNfaWithStates_1(4, 23, 11);
          break;
       default :
          break;
@@ -1476,8 +1476,8 @@
                      jjstateSet[jjnewStateCnt++] = 4;
                   break;
                case 4:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 5:
                   if (curChar == 42)
@@ -1496,14 +1496,14 @@
                      jjCheckNAddTwoStates(8, 9);
                   break;
                case 9:
-                  if (curChar == 34 && kind > 20)
-                     kind = 20;
+                  if (curChar == 34 && kind > 21)
+                     kind = 21;
                   break;
                case 11:
                   if ((0x3ff200000000000L & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
+                  if (kind > 54)
+                     kind = 54;
                   jjstateSet[jjnewStateCnt++] = 11;
                   break;
                case 12:
@@ -1524,13 +1524,13 @@
                case 0:
                   if ((0x7fffffe07fffffeL & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
+                  if (kind > 54)
+                     kind = 54;
                   jjCheckNAdd(11);
                   break;
                case 4:
-                  if (kind > 9)
-                     kind = 9;
+                  if (kind > 10)
+                     kind = 10;
                   break;
                case 8:
                   jjAddStates(0, 1);
@@ -1538,13 +1538,13 @@
                case 11:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
+                  if (kind > 54)
+                     kind = 54;
                   jjCheckNAdd(11);
                   break;
                case 13:
-                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 54)
-                     kind = 54;
+                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 55)
+                     kind = 55;
                   break;
                default : break;
             }
@@ -1559,8 +1559,8 @@
             switch(jjstateSet[--i])
             {
                case 4:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 8:
                   if ((jjbitVec0[i2] & l2) != 0L)
@@ -1588,7 +1588,7 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
+         if ((active0 & 0x1a00L) != 0L)
             return 2;
          return -1;
       default :
@@ -1612,13 +1612,13 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_5(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_5(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_5(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_5(0x100L);
       case 42:
-         return jjMoveStringLiteralDfa1_5(0x8000L);
+         return jjMoveStringLiteralDfa1_5(0x10000L);
       default :
          return jjMoveNfa_5(3, 0);
    }
@@ -1633,18 +1633,18 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
-         else if ((active0 & 0x8000L) != 0L)
-            return jjStopAtPos(1, 15);
+         break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         else if ((active0 & 0x10000L) != 0L)
+            return jjStopAtPos(1, 16);
          break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_5(1, 10, 0);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_5(1, 11, 0);
          break;
       default :
          break;
@@ -1675,8 +1675,8 @@
                      jjstateSet[jjnewStateCnt++] = 1;
                   break;
                case 1:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 2:
                   if (curChar == 42)
@@ -1698,7 +1698,7 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  kind = 9;
+                  kind = 10;
                   break;
                default : break;
             }
@@ -1713,8 +1713,8 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                default : break;
             }
@@ -1738,41 +1738,41 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
-            return 5;
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
-            return 11;
+            jjmatchedKind = 54;
+            return 8;
          }
+         if ((active0 & 0x1a00L) != 0L)
+            return 2;
          return -1;
       case 1:
-         if ((active0 & 0x400L) != 0L)
-            return 3;
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0x800L) != 0L)
+            return 0;
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 1;
-            return 11;
+            return 8;
          }
          return -1;
       case 2:
-         if ((active0 & 0x600000L) != 0L)
+         if ((active0 & 0xc00000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 2;
-            return 11;
+            return 8;
          }
          return -1;
       case 3:
-         if ((active0 & 0x200000L) != 0L)
-            return 11;
-         if ((active0 & 0x400000L) != 0L)
+         if ((active0 & 0x800000L) != 0L)
          {
-            jjmatchedKind = 53;
+            jjmatchedKind = 54;
             jjmatchedPos = 3;
-            return 11;
+            return 8;
          }
+         if ((active0 & 0x400000L) != 0L)
+            return 8;
          return -1;
       default :
          return -1;
@@ -1795,13 +1795,13 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_2(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_2(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_2(0x80L);
-      case 40:
-         return jjStopAtPos(0, 4);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_2(0x100L);
+      case 41:
+         return jjStopAtPos(0, 6);
       case 44:
          return jjStopAtPos(0, 3);
       case 91:
@@ -1809,15 +1809,15 @@
       case 93:
          return jjStopAtPos(0, 2);
       case 102:
-         return jjMoveStringLiteralDfa1_2(0x400000L);
+         return jjMoveStringLiteralDfa1_2(0x800000L);
       case 116:
-         return jjMoveStringLiteralDfa1_2(0x200000L);
+         return jjMoveStringLiteralDfa1_2(0x400000L);
       case 123:
-         return jjStopAtPos(0, 55);
-      case 125:
          return jjStopAtPos(0, 56);
+      case 125:
+         return jjStopAtPos(0, 57);
       default :
-         return jjMoveNfa_2(0, 0);
+         return jjMoveNfa_2(3, 0);
    }
 }
 private final int jjMoveStringLiteralDfa1_2(long active0)
@@ -1830,21 +1830,21 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
          break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_2(1, 10, 3);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_2(1, 11, 0);
          break;
       case 97:
-         return jjMoveStringLiteralDfa2_2(active0, 0x400000L);
+         return jjMoveStringLiteralDfa2_2(active0, 0x800000L);
       case 114:
-         return jjMoveStringLiteralDfa2_2(active0, 0x200000L);
+         return jjMoveStringLiteralDfa2_2(active0, 0x400000L);
       default :
          break;
    }
@@ -1862,9 +1862,9 @@
    switch(curChar)
    {
       case 108:
-         return jjMoveStringLiteralDfa3_2(active0, 0x400000L);
+         return jjMoveStringLiteralDfa3_2(active0, 0x800000L);
       case 117:
-         return jjMoveStringLiteralDfa3_2(active0, 0x200000L);
+         return jjMoveStringLiteralDfa3_2(active0, 0x400000L);
       default :
          break;
    }
@@ -1882,11 +1882,11 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x200000L) != 0L)
-            return jjStartNfaWithStates_2(3, 21, 11);
+         if ((active0 & 0x400000L) != 0L)
+            return jjStartNfaWithStates_2(3, 22, 8);
          break;
       case 115:
-         return jjMoveStringLiteralDfa4_2(active0, 0x400000L);
+         return jjMoveStringLiteralDfa4_2(active0, 0x800000L);
       default :
          break;
    }
@@ -1904,8 +1904,8 @@
    switch(curChar)
    {
       case 101:
-         if ((active0 & 0x400000L) != 0L)
-            return jjStartNfaWithStates_2(4, 22, 11);
+         if ((active0 & 0x800000L) != 0L)
+            return jjStartNfaWithStates_2(4, 23, 8);
          break;
       default :
          break;
@@ -1916,7 +1916,7 @@
 {
    int[] nextStates;
    int startsAt = 0;
-   jjnewStateCnt = 14;
+   jjnewStateCnt = 11;
    int i = 1;
    jjstateSet[0] = startState;
    int j, kind = 0x7fffffff;
@@ -1931,69 +1931,48 @@
          {
             switch(jjstateSet[--i])
             {
-               case 0:
+               case 3:
                   if (curChar == 46)
-                     jjstateSet[jjnewStateCnt++] = 13;
+                     jjstateSet[jjnewStateCnt++] = 10;
                   else if (curChar == 34)
-                     jjCheckNAddTwoStates(8, 9);
+                     jjCheckNAddTwoStates(5, 6);
                   else if (curChar == 35)
-                     jjstateSet[jjnewStateCnt++] = 5;
-                  else if (curChar == 41)
-                  {
-                     if (kind > 5)
-                        kind = 5;
-                     jjCheckNAddTwoStates(1, 2);
-                  }
+                     jjstateSet[jjnewStateCnt++] = 2;
+                  break;
+               case 0:
+                  if (curChar == 42)
+                     jjstateSet[jjnewStateCnt++] = 1;
                   break;
                case 1:
-                  if (curChar != 32)
-                     break;
-                  if (kind > 5)
-                     kind = 5;
-                  jjCheckNAddTwoStates(1, 2);
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 2:
-                  if (curChar == 10 && kind > 5)
-                     kind = 5;
-                  break;
-               case 3:
                   if (curChar == 42)
-                     jjstateSet[jjnewStateCnt++] = 4;
+                     jjstateSet[jjnewStateCnt++] = 0;
                   break;
                case 4:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if (curChar == 34)
+                     jjCheckNAddTwoStates(5, 6);
                   break;
                case 5:
-                  if (curChar == 42)
-                     jjstateSet[jjnewStateCnt++] = 3;
+                  if ((0xfffffffbffffdbffL & l) != 0L)
+                     jjCheckNAddTwoStates(5, 6);
                   break;
                case 6:
-                  if (curChar == 35)
-                     jjstateSet[jjnewStateCnt++] = 5;
-                  break;
-               case 7:
-                  if (curChar == 34)
-                     jjCheckNAddTwoStates(8, 9);
+                  if (curChar == 34 && kind > 21)
+                     kind = 21;
                   break;
                case 8:
-                  if ((0xfffffffbffffdbffL & l) != 0L)
-                     jjCheckNAddTwoStates(8, 9);
-                  break;
-               case 9:
-                  if (curChar == 34 && kind > 20)
-                     kind = 20;
-                  break;
-               case 11:
                   if ((0x3ff200000000000L & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjstateSet[jjnewStateCnt++] = 11;
+                  if (kind > 54)
+                     kind = 54;
+                  jjstateSet[jjnewStateCnt++] = 8;
                   break;
-               case 12:
+               case 9:
                   if (curChar == 46)
-                     jjstateSet[jjnewStateCnt++] = 13;
+                     jjstateSet[jjnewStateCnt++] = 10;
                   break;
                default : break;
             }
@@ -2006,30 +1985,30 @@
          {
             switch(jjstateSet[--i])
             {
-               case 0:
+               case 3:
                   if ((0x7fffffe07fffffeL & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(11);
+                  if (kind > 54)
+                     kind = 54;
+                  jjCheckNAdd(8);
                   break;
-               case 4:
-                  if (kind > 9)
-                     kind = 9;
+               case 1:
+                  if (kind > 10)
+                     kind = 10;
+                  break;
+               case 5:
+                  jjAddStates(2, 3);
                   break;
                case 8:
-                  jjAddStates(0, 1);
-                  break;
-               case 11:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(11);
-                  break;
-               case 13:
-                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 54)
+                  if (kind > 54)
                      kind = 54;
+                  jjCheckNAdd(8);
+                  break;
+               case 10:
+                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 55)
+                     kind = 55;
                   break;
                default : break;
             }
@@ -2043,13 +2022,13 @@
          {
             switch(jjstateSet[--i])
             {
-               case 4:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+               case 1:
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
-               case 8:
+               case 5:
                   if ((jjbitVec0[i2] & l2) != 0L)
-                     jjAddStates(0, 1);
+                     jjAddStates(2, 3);
                   break;
                default : break;
             }
@@ -2062,7 +2041,7 @@
          kind = 0x7fffffff;
       }
       ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 14 - (jjnewStateCnt = startsAt)))
+      if ((i = jjnewStateCnt) == (startsAt = 11 - (jjnewStateCnt = startsAt)))
          return curPos;
       try { curChar = input_stream.readChar(); }
       catch(java.io.IOException e) { return curPos; }
@@ -2073,7 +2052,7 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
+         if ((active0 & 0x1a00L) != 0L)
             return 2;
          return -1;
       default :
@@ -2097,11 +2076,11 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_6(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_6(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_6(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_6(0x100L);
       default :
          return jjMoveNfa_6(3, 0);
    }
@@ -2116,16 +2095,16 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
          break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_6(1, 10, 0);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_6(1, 11, 0);
          break;
       default :
          break;
@@ -2154,8 +2133,8 @@
                case 3:
                   if ((0x2400L & l) != 0L)
                   {
-                     if (kind > 14)
-                        kind = 14;
+                     if (kind > 15)
+                        kind = 15;
                   }
                   else if (curChar == 35)
                      jjstateSet[jjnewStateCnt++] = 2;
@@ -2167,20 +2146,20 @@
                      jjstateSet[jjnewStateCnt++] = 1;
                   break;
                case 1:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 2:
                   if (curChar == 42)
                      jjstateSet[jjnewStateCnt++] = 0;
                   break;
                case 4:
-                  if ((0x2400L & l) != 0L && kind > 14)
-                     kind = 14;
+                  if ((0x2400L & l) != 0L && kind > 15)
+                     kind = 15;
                   break;
                case 5:
-                  if (curChar == 10 && kind > 14)
-                     kind = 14;
+                  if (curChar == 10 && kind > 15)
+                     kind = 15;
                   break;
                case 6:
                   if (curChar == 13)
@@ -2198,7 +2177,7 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  kind = 9;
+                  kind = 10;
                   break;
                default : break;
             }
@@ -2213,8 +2192,8 @@
             switch(jjstateSet[--i])
             {
                case 1:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                default : break;
             }
@@ -2238,7 +2217,7 @@
    switch (pos)
    {
       case 0:
-         if ((active0 & 0xd00L) != 0L)
+         if ((active0 & 0x1a00L) != 0L)
             return 2;
          return -1;
       default :
@@ -2262,11 +2241,11 @@
    switch(curChar)
    {
       case 35:
-         jjmatchedKind = 11;
-         return jjMoveStringLiteralDfa1_7(0x500L);
+         jjmatchedKind = 12;
+         return jjMoveStringLiteralDfa1_7(0xa00L);
       case 36:
-         jjmatchedKind = 6;
-         return jjMoveStringLiteralDfa1_7(0x80L);
+         jjmatchedKind = 7;
+         return jjMoveStringLiteralDfa1_7(0x100L);
       default :
          return jjMoveNfa_7(3, 0);
    }
@@ -2281,16 +2260,16 @@
    switch(curChar)
    {
       case 33:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      case 35:
          if ((active0 & 0x100L) != 0L)
             return jjStopAtPos(1, 8);
          break;
+      case 35:
+         if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
       case 42:
-         if ((active0 & 0x400L) != 0L)
-            return jjStartNfaWithStates_7(1, 10, 0);
+         if ((active0 & 0x800L) != 0L)
+            return jjStartNfaWithStates_7(1, 11, 0);
          break;
       default :
          break;
@@ -2319,8 +2298,8 @@
                case 3:
                   if ((0xffffffe7ffffffffL & l) != 0L)
                   {
-                     if (kind > 13)
-                        kind = 13;
+                     if (kind > 14)
+                        kind = 14;
                      jjCheckNAdd(6);
                   }
                   else if (curChar == 35)
@@ -2331,22 +2310,22 @@
                      jjstateSet[jjnewStateCnt++] = 1;
                   break;
                case 1:
-                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 9)
-                     kind = 9;
+                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 2:
                   if (curChar == 42)
                      jjstateSet[jjnewStateCnt++] = 0;
                   break;
                case 5:
-                  if (kind > 12)
-                     kind = 12;
+                  if (kind > 13)
+                     kind = 13;
                   break;
                case 6:
                   if ((0xffffffe7ffffffffL & l) == 0L)
                      break;
-                  if (kind > 13)
-                     kind = 13;
+                  if (kind > 14)
+                     kind = 14;
                   jjCheckNAdd(6);
                   break;
                default : break;
@@ -2363,30 +2342,30 @@
                case 3:
                   if ((0xffffffffefffffffL & l) != 0L)
                   {
-                     if (kind > 13)
-                        kind = 13;
+                     if (kind > 14)
+                        kind = 14;
                      jjCheckNAdd(6);
                   }
                   else if (curChar == 92)
                      jjstateSet[jjnewStateCnt++] = 5;
                   break;
                case 1:
-                  if (kind > 9)
-                     kind = 9;
+                  if (kind > 10)
+                     kind = 10;
                   break;
                case 4:
                   if (curChar == 92)
                      jjstateSet[jjnewStateCnt++] = 5;
                   break;
                case 5:
-                  if (kind > 12)
-                     kind = 12;
+                  if (kind > 13)
+                     kind = 13;
                   break;
                case 6:
                   if ((0xffffffffefffffffL & l) == 0L)
                      break;
-                  if (kind > 13)
-                     kind = 13;
+                  if (kind > 14)
+                     kind = 14;
                   jjCheckNAdd(6);
                   break;
                default : break;
@@ -2405,17 +2384,17 @@
                case 6:
                   if ((jjbitVec0[i2] & l2) == 0L)
                      break;
-                  if (kind > 13)
-                     kind = 13;
+                  if (kind > 14)
+                     kind = 14;
                   jjCheckNAdd(6);
                   break;
                case 1:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 9)
-                     kind = 9;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
+                     kind = 10;
                   break;
                case 5:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
-                     kind = 12;
+                  if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
+                     kind = 13;
                   break;
                default : break;
             }
@@ -2442,7 +2421,7 @@
 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, };
+null, null, null, null, };
 public static final String[] lexStateNames = {
    "DIRECTIVE", 
    "REFMODIFIER", 
@@ -2456,19 +2435,19 @@
 public static final int[] jjnewLexState = {
    -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, -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 = {
-   0x1e2bffffff1f03fL, 
+   0x3c57fffffe3e07fL, 
 };
 static final long[] jjtoSkip = {
-   0x2000000000c0000L, 
+   0x400000000180000L, 
 };
 static final long[] jjtoSpecial = {
-   0x200000000000000L, 
+   0x400000000000000L, 
 };
 static final long[] jjtoMore = {
-   0x20fc0L, 
+   0x41f80L, 
 };
 private ASCII_CharStream input_stream;
 private final int[] jjrounds = new int[19];
@@ -2578,9 +2557,9 @@
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_1();
-         if (jjmatchedPos == 0 && jjmatchedKind > 57)
+         if (jjmatchedPos == 0 && jjmatchedKind > 58)
          {
-            jjmatchedKind = 57;
+            jjmatchedKind = 58;
          }
          break;
        case 2:
@@ -2592,45 +2571,45 @@
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_2();
-         if (jjmatchedPos == 0 && jjmatchedKind > 57)
+         if (jjmatchedPos == 0 && jjmatchedKind > 58)
          {
-            jjmatchedKind = 57;
+            jjmatchedKind = 58;
          }
          break;
        case 3:
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_3();
-         if (jjmatchedPos == 0 && jjmatchedKind > 57)
+         if (jjmatchedPos == 0 && jjmatchedKind > 58)
          {
-            jjmatchedKind = 57;
+            jjmatchedKind = 58;
          }
          break;
        case 4:
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_4();
-         if (jjmatchedPos == 0 && jjmatchedKind > 17)
+         if (jjmatchedPos == 0 && jjmatchedKind > 18)
          {
-            jjmatchedKind = 17;
+            jjmatchedKind = 18;
          }
          break;
        case 5:
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_5();
-         if (jjmatchedPos == 0 && jjmatchedKind > 17)
+         if (jjmatchedPos == 0 && jjmatchedKind > 18)
          {
-            jjmatchedKind = 17;
+            jjmatchedKind = 18;
          }
          break;
        case 6:
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_6();
-         if (jjmatchedPos == 0 && jjmatchedKind > 17)
+         if (jjmatchedPos == 0 && jjmatchedKind > 18)
          {
-            jjmatchedKind = 17;
+            jjmatchedKind = 18;
          }
          break;
        case 7:
@@ -2712,7 +2691,7 @@
 {
    switch(jjmatchedKind)
    {
-      case 57 :
+      case 58 :
          if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2755,7 +2734,7 @@
    jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
    switch(jjmatchedKind)
    {
-      case 6 :
+      case 7 :
          if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen)));
          else
@@ -2772,7 +2751,7 @@
             SwitchTo(REFERENCE);
         }
          break;
-      case 7 :
+      case 8 :
          if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen)));
          else
@@ -2789,7 +2768,7 @@
             SwitchTo(REFERENCE);
         }
          break;
-      case 8 :
+      case 9 :
          if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen)));
          else
@@ -2799,7 +2778,7 @@
         stateStackPush();
         SwitchTo(IN_SINGLE_LINE_COMMENT);
          break;
-      case 9 :
+      case 10 :
          if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen)));
          else
@@ -2810,7 +2789,7 @@
         stateStackPush();
         SwitchTo( IN_FORMAL_COMMENT);
          break;
-      case 10 :
+      case 11 :
          if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen)));
          else
@@ -2820,7 +2799,7 @@
         stateStackPush();
         SwitchTo( IN_MULTI_LINE_COMMENT );
          break;
-      case 11 :
+      case 12 :
          if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen)));
          else
@@ -2867,21 +2846,20 @@
             image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
        RPARENHandler();
          break;
-      case 14 :
+      case 6 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
             image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
-     inComment = false;
-     stateStackPop();
+       RPARENHandler();
          break;
       case 15 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
             image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
-    inComment = false;
-    stateStackPop();
+     inComment = false;
+     stateStackPop();
          break;
       case 16 :
         if (image == null)
@@ -2891,7 +2869,15 @@
     inComment = false;
     stateStackPop();
          break;
-      case 20 :
+      case 17 :
+        if (image == null)
+            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
+         else
+            image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
+    inComment = false;
+    stateStackPop();
+         break;
+      case 21 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2919,7 +2905,7 @@
         else if( curLexState == DIRECTIVE && !inSet && lparen == 0)
             stateStackPop();
          break;
-      case 23 :
+      case 24 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2935,7 +2921,7 @@
         if (inDirective)
             inDirective = false;
          break;
-      case 39 :
+      case 40 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2943,14 +2929,14 @@
         inDirective = false;
         stateStackPop();
          break;
-      case 40 :
+      case 41 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
             image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
       incMode = true;
          break;
-      case 43 :
+      case 44 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2958,14 +2944,14 @@
         inDirective = false;
         stateStackPop();
          break;
-      case 44 :
+      case 45 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
             image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
       inSet = true;
          break;
-      case 45 :
+      case 46 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2973,7 +2959,7 @@
         matchedToken.kind = EOF;
         fileDepth = 0;
          break;
-      case 54 :
+      case 55 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else
@@ -2994,7 +2980,7 @@
             System.out.print("DOT : switching to " + REFMODIFIER);
         SwitchTo(REFMODIFIER);
          break;
-      case 56 :
+      case 57 :
         if (image == null)
             image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
          else