You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/11/25 19:56:43 UTC

svn commit: r1206281 - in /incubator/jena/Jena2/ARQ/trunk: ./ Grammar/ src/main/java/com/hp/hpl/jena/sparql/lang/ src/main/java/com/hp/hpl/jena/sparql/lang/arq/

Author: andy
Date: Fri Nov 25 18:56:42 2011
New Revision: 1206281

URL: http://svn.apache.org/viewvc?rev=1206281&view=rev
Log:
Allow %xx and provide \escapes [Chars: ~.-!$&'()*+,;=:/?#@%] in the local part of prefix names (ARQ language extension).

Modified:
    incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt
    incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj
    incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserConstants.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserTokenManager.java

Modified: incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt (original)
+++ incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt Fri Nov 25 18:56:42 2011
@@ -4,6 +4,8 @@ ChangeLog for ARQ
 ==== ARQ 2.8.9
 ** Java 6 is now required for running ARQ.
 
++ ARQ: Provides \-escapes for characters ~.-!$&'()*+,;=:/?#@% in local part of prefix names 
++ ARQ: Allow %xx in the local part of prefix names
 + SPARQL 1.1 / RDF 1.1 : DATATYPE(literal-with-lang) is now rdf:langString, not an error.
 + DatasetFactory: perferred methods for an in-memory dataset are:
      create() -- will automatically add in-memory named graphs  

Modified: incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj (original)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/arq.jj Fri Nov 25 18:56:42 2011
@@ -1802,6 +1802,16 @@ TOKEN :
 // See XML chars.txt for notes
 TOKEN:
 {
+  < #HEX: ["0"-"9"] | ["A"-"F"] | ["a"-"f"] >
+|
+  < #PERCENT: "%" <HEX> <HEX> >
+|
+  // Prefixed Name, Local Par, Escape
+  < #PLNE: "\\"
+          ("~" | "." | "-" | "!" | "$" | "&" | "'" |
+           "(" | ")" | "*" | "+" | "," | ";" | "=" |
+           ":" | "/" | "?" | "#" | "@" | "%" ) >
+|
   // XML 1.1 NCNameStartChar without "_"
   <#PN_CHARS_BASE:
           ["A"-"Z"] | ["a"-"z"] |
@@ -1821,8 +1831,12 @@ TOKEN:
   // No leading "_", no trailing ".", can have dot inside prefix name.
   <#PN_PREFIX: <PN_CHARS_BASE> ((<PN_CHARS>|".")* <PN_CHARS>)? >
 |
-  // With a leading "_", no dot at end of local name.
-  <#PN_LOCAL: (<PN_CHARS_U> | ["0"-"9"]) ((<PN_CHARS>|".")* <PN_CHARS>)? >
+  <#PLX: <PERCENT> | <PLNE> >
+|
+  // If goes ahead, consolidate
+  <#PN_LOCAL: (<PN_CHARS_U> | ["0"-"9"] | <PLX> )
+              ( (<PN_CHARS>|"."| <PLX> )*
+                (<PN_CHARS>|<PLX>) ) ? >
 |
   // NCNAME without "-" and ".", allowing leading digits.
   <#VARNAME: ( <PN_CHARS_U> | ["0"-"9"] )

Modified: incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj (original)
+++ incubator/jena/Jena2/ARQ/trunk/Grammar/master.jj Fri Nov 25 18:56:42 2011
@@ -48,7 +48,6 @@
 #define ARQ_UPDATE
 #endif
 
-
 options
 {
    JAVA_UNICODE_ESCAPE   = true ;
@@ -2291,8 +2290,26 @@ TOKEN :
 
 // See XML chars.txt for notes
 
+#ifdef ARQ
+#define PNL_EXTRA    1
+#endif
+
 TOKEN:
 {
+  // ARQ extensions to the PN_LOCAL token.
+#ifdef PNL_EXTRA
+  < #HEX: ["0"-"9"] | ["A"-"F"] | ["a"-"f"] >
+|
+  < #PERCENT: "%" <HEX> <HEX> >
+|
+  // Prefixed Name, Local Par, Escape
+  / Align with QueryParseBase unescapePName.
+  < #PLNE: "\\" 
+          ("~" | "." | "-" | "!" | "$" | "&" | "'" | 
+           "(" | ")" | "*" | "+" | "," | ";" | "=" | 
+           ":" | "/" | "?" | "#" | "@" | "%" ) >
+|
+#endif
   // XML 1.1 NCNameStartChar without "_"
   <#PN_CHARS_BASE:
           ["A"-"Z"] | ["a"-"z"] |
@@ -2312,8 +2329,19 @@ TOKEN:
   // No leading "_", no trailing ".", can have dot inside prefix name.
   <#PN_PREFIX: <PN_CHARS_BASE> ((<PN_CHARS>|".")* <PN_CHARS>)?  >
 |
+#ifdef SPARQL_11
   // With a leading "_", no dot at end of local name.
   <#PN_LOCAL: (<PN_CHARS_U> | ["0"-"9"]) ((<PN_CHARS>|".")* <PN_CHARS>)?  >
+#endif
+#ifdef ARQ
+  //<#PLX:  <PERCENT> | <PLNE> >
+  <#PLX:  <PERCENT> >
+|
+  // If goes ahead, consolidate
+  <#PN_LOCAL: (<PN_CHARS_U> | ["0"-"9"] | <PLX> ) 
+              ( (<PN_CHARS>|"."| <PLX> )* 
+                (<PN_CHARS>|<PLX>) ) ?  >
+#endif
 |
   // NCNAME without "-" and ".", allowing leading digits.
   <#VARNAME: ( <PN_CHARS_U> | ["0"-"9"] )

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java Fri Nov 25 18:56:42 2011
@@ -249,6 +249,16 @@ public class ParserBase
     
     protected String resolvePName(String qname, int line, int column)
     {
+        // It's legal.
+        int idx = qname.indexOf(':') ;
+        
+        // -- Escapes in local name
+        String prefix = qname.substring(0, idx) ;
+        String local = qname.substring(idx+1) ;
+        local = unescapePName(local, line, column) ;
+        qname = prefix+":"+local ;
+        // --
+        
         String s = getPrologue().expandPrefixedName(qname) ;
         if ( s == null )
             throwParseException("Unresolved prefixed name: "+qname, line, column) ;
@@ -397,7 +407,7 @@ public class ParserBase
         return ExprUtils.nodeToExpr(n) ;
     }
 
-    // Utilities to remove escapes
+    // Utilities to remove escapes in strings.
     
     public static String unescapeStr(String s)
     { return unescape(s, '\\', false, 1, 1) ; }
@@ -549,6 +559,78 @@ public class ParserBase
         return x ;
     }
     
+    public static String  unescapePName(String s, int line, int column)
+    {
+        char escape = '\\' ;
+        int idx = s.indexOf(escape) ;
+        
+        if ( idx == -1 )
+            return s ;
+        
+        int len = s.length() ;
+        StringBuilder sb = new StringBuilder() ;
+        
+        for ( int i = 0 ; i < len ; i++ )
+        {
+            // Copied form unescape abobve - share!
+            char ch = s.charAt(i) ;
+            // Keep line and column numbers.
+            switch (ch)
+            {
+                case '\n': 
+                case '\r':
+                    line++ ;
+                    column = 1 ;
+                    break ;
+                default:
+                    column++ ;
+                    break ;
+            }
+
+            if ( ch != escape )
+            {
+                sb.append(ch) ;
+                continue ;
+            }
+
+            // Escape
+            if ( i >= s.length()-1 )
+                throwParseException("Illegal escape at end of string", line, column) ;
+            char ch2 = s.charAt(i+1) ;
+            column = column+1 ;
+            i = i + 1 ;
+
+           switch (ch2)
+           {
+               case '~' :
+               case '.' : 
+               case '-' : 
+               case '!' : 
+               case '$' : 
+               case '&' : 
+               case '\'' : 
+               case '(' :
+               case ')' : 
+               case '*' : 
+               case '+' : 
+               case ',' : 
+               case ';' : 
+               case '=' : 
+               case ':' :
+               case '/' : 
+               case '?' : 
+               case '#' : 
+               case '@' : 
+               case '%' :
+                   sb.append(ch2) ;
+                   break ;
+               default:
+                   throwParseException("Illegal prefix name escape: "+ch2, line, column) ;
+           }
+        }
+        return sb.toString() ;
+    }
+    
     public static void throwParseException(String msg, int line, int column)
     {
         throw new QueryParseException("Line " + line + ", column " + column + ": " + msg,

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParser.java Fri Nov 25 18:56:42 2011
@@ -5892,7 +5892,7 @@ public class ARQParser extends ARQParser
   /** Generate ParseException. */
   public ParseException generateParseException() {
     jj_expentries.clear();
-    boolean[] la1tokens = new boolean[202];
+    boolean[] la1tokens = new boolean[206];
     if (jj_kind >= 0) {
       la1tokens[jj_kind] = true;
       jj_kind = -1;
@@ -5924,7 +5924,7 @@ public class ARQParser extends ARQParser
         }
       }
     }
-    for (int i = 0; i < 202; i++) {
+    for (int i = 0; i < 206; i++) {
       if (la1tokens[i]) {
         jj_expentry = new int[1];
         jj_expentry[0] = i;

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserConstants.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserConstants.java?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserConstants.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserConstants.java Fri Nov 25 18:56:42 2011
@@ -406,19 +406,27 @@ public interface ARQParserConstants {
   /** RegularExpression Id. */
   int QMARK = 194;
   /** RegularExpression Id. */
-  int PN_CHARS_BASE = 195;
+  int HEX = 195;
   /** RegularExpression Id. */
-  int PN_CHARS_U = 196;
+  int PERCENT = 196;
   /** RegularExpression Id. */
-  int PN_CHARS = 197;
+  int PLNE = 197;
   /** RegularExpression Id. */
-  int PN_PREFIX = 198;
+  int PN_CHARS_BASE = 198;
   /** RegularExpression Id. */
-  int PN_LOCAL = 199;
+  int PN_CHARS_U = 199;
   /** RegularExpression Id. */
-  int VARNAME = 200;
+  int PN_CHARS = 200;
   /** RegularExpression Id. */
-  int UNKNOWN = 201;
+  int PN_PREFIX = 201;
+  /** RegularExpression Id. */
+  int PLX = 202;
+  /** RegularExpression Id. */
+  int PN_LOCAL = 203;
+  /** RegularExpression Id. */
+  int VARNAME = 204;
+  /** RegularExpression Id. */
+  int UNKNOWN = 205;
 
   /** Lexical state. */
   int DEFAULT = 0;
@@ -620,10 +628,14 @@ public interface ARQParserConstants {
     "\"->\"",
     "\"<-\"",
     "\"?\"",
+    "<HEX>",
+    "<PERCENT>",
+    "<PLNE>",
     "<PN_CHARS_BASE>",
     "<PN_CHARS_U>",
     "<PN_CHARS>",
     "<PN_PREFIX>",
+    "<PLX>",
     "<PN_LOCAL>",
     "<VARNAME>",
     "<UNKNOWN>",

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserTokenManager.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserTokenManager.java?rev=1206281&r1=1206280&r2=1206281&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserTokenManager.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserTokenManager.java Fri Nov 25 18:56:42 2011
@@ -2280,7 +2280,7 @@ private int jjMoveNfa_0(int startState, 
    catch(java.io.IOException e) { throw new Error("Internal Error"); }
    curPos = 0;
    int startsAt = 0;
-   jjnewStateCnt = 194;
+   jjnewStateCnt = 220;
    int i = 1;
    jjstateSet[0] = startState;
    int kind = 0x7fffffff;
@@ -2307,42 +2307,42 @@ private int jjMoveNfa_0(int startState, 
                   else if (curChar == 43)
                      jjCheckNAddStates(12, 16);
                   else if (curChar == 46)
-                     jjCheckNAddTwoStates(136, 148);
+                     jjCheckNAddTwoStates(162, 174);
                   else if (curChar == 58)
                   {
                      if (kind > 10)
                         kind = 10;
-                     jjCheckNAdd(96);
+                     jjCheckNAddStates(17, 19);
                   }
                   else if (curChar == 40)
-                     jjCheckNAddStates(17, 19);
+                     jjCheckNAddStates(20, 22);
                   else if (curChar == 34)
-                     jjstateSet[jjnewStateCnt++] = 71;
+                     jjstateSet[jjnewStateCnt++] = 84;
                   else if (curChar == 39)
-                     jjstateSet[jjnewStateCnt++] = 60;
+                     jjstateSet[jjnewStateCnt++] = 73;
                   else if (curChar == 36)
-                     jjstateSet[jjnewStateCnt++] = 17;
+                     jjstateSet[jjnewStateCnt++] = 30;
                   else if (curChar == 60)
                      jjCheckNAddTwoStates(6, 7);
                   else if (curChar == 35)
                   {
                      if (kind > 6)
                         kind = 6;
-                     jjCheckNAddStates(20, 22);
+                     jjCheckNAddStates(23, 25);
                   }
                   else if (curChar == 63)
-                     jjstateSet[jjnewStateCnt++] = 14;
+                     jjstateSet[jjnewStateCnt++] = 27;
                   if (curChar == 34)
-                     jjCheckNAddStates(23, 25);
-                  else if (curChar == 39)
                      jjCheckNAddStates(26, 28);
+                  else if (curChar == 39)
+                     jjCheckNAddStates(29, 31);
                   break;
                case 1:
                   if ((0xffffffffffffdbffL & l) == 0L)
                      break;
                   if (kind > 6)
                      kind = 6;
-                  jjCheckNAddStates(20, 22);
+                  jjCheckNAddStates(23, 25);
                   break;
                case 2:
                   if ((0x2400L & l) != 0L && kind > 6)
@@ -2370,601 +2370,689 @@ private int jjMoveNfa_0(int startState, 
                   break;
                case 8:
                   if (curChar == 58)
-                     jjstateSet[jjnewStateCnt++] = 9;
+                     jjAddStates(32, 34);
                   break;
                case 9:
+               case 24:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 12)
                      kind = 12;
-                  jjCheckNAddTwoStates(10, 11);
+                  jjCheckNAddStates(35, 38);
                   break;
                case 10:
                   if ((0x3ff600000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(10, 11);
+                     jjCheckNAddStates(35, 38);
                   break;
                case 11:
                   if ((0x3ff200000000000L & l) != 0L && kind > 12)
                      kind = 12;
                   break;
                case 13:
-                  if (curChar == 63)
-                     jjstateSet[jjnewStateCnt++] = 14;
+                  if ((0xac00fffa00000000L & l) != 0L)
+                     jjCheckNAddStates(35, 38);
                   break;
                case 14:
+                  if (curChar == 37)
+                     jjAddStates(39, 40);
+                  break;
                case 15:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 16;
+                  break;
+               case 16:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(35, 38);
+                  break;
+               case 17:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 18;
+                  break;
+               case 18:
+                  if ((0x3ff000000000000L & l) != 0L && kind > 12)
+                     kind = 12;
+                  break;
+               case 19:
+                  if ((0xac00fffa00000000L & l) != 0L && kind > 12)
+                     kind = 12;
+                  break;
+               case 21:
+                  if ((0xac00fffa00000000L & l) == 0L)
+                     break;
+                  if (kind > 12)
+                     kind = 12;
+                  jjCheckNAddStates(35, 38);
+                  break;
+               case 22:
+                  if (curChar == 37)
+                     jjstateSet[jjnewStateCnt++] = 23;
+                  break;
+               case 23:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 24;
+                  break;
+               case 26:
+                  if (curChar == 63)
+                     jjstateSet[jjnewStateCnt++] = 27;
+                  break;
+               case 27:
+               case 28:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 13)
                      kind = 13;
-                  jjCheckNAdd(15);
+                  jjCheckNAdd(28);
                   break;
-               case 16:
+               case 29:
                   if (curChar == 36)
-                     jjstateSet[jjnewStateCnt++] = 17;
+                     jjstateSet[jjnewStateCnt++] = 30;
                   break;
-               case 17:
-               case 18:
+               case 30:
+               case 31:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 14)
                      kind = 14;
-                  jjCheckNAdd(18);
+                  jjCheckNAdd(31);
                   break;
-               case 21:
+               case 34:
                   if (curChar == 45)
-                     jjCheckNAdd(22);
+                     jjCheckNAdd(35);
                   break;
-               case 22:
+               case 35:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 15)
                      kind = 15;
-                  jjCheckNAddTwoStates(21, 22);
+                  jjCheckNAddTwoStates(34, 35);
                   break;
-               case 24:
+               case 37:
                   if (curChar == 35)
-                     jjCheckNAddStates(29, 34);
+                     jjCheckNAddStates(41, 46);
                   break;
-               case 25:
+               case 38:
                   if ((0xffffffffffffdbffL & l) != 0L)
-                     jjCheckNAddStates(29, 34);
+                     jjCheckNAddStates(41, 46);
                   break;
-               case 26:
+               case 39:
                   if ((0x2400L & l) != 0L)
-                     jjCheckNAddStates(35, 37);
+                     jjCheckNAddStates(47, 49);
                   break;
-               case 27:
+               case 40:
                   if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(35, 37);
+                     jjCheckNAddStates(47, 49);
                   break;
-               case 32:
+               case 45:
                   if (curChar == 10)
-                     jjCheckNAddStates(35, 37);
+                     jjCheckNAddStates(47, 49);
                   break;
-               case 33:
+               case 46:
                   if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 32;
+                     jjstateSet[jjnewStateCnt++] = 45;
                   break;
-               case 40:
+               case 53:
                   if ((0x8400000000L & l) != 0L && kind > 156)
                      kind = 156;
                   break;
-               case 41:
+               case 54:
                   if (curChar == 39)
-                     jjCheckNAddStates(26, 28);
+                     jjCheckNAddStates(29, 31);
                   break;
-               case 42:
+               case 55:
                   if ((0xffffff7fffffdbffL & l) != 0L)
-                     jjCheckNAddStates(26, 28);
+                     jjCheckNAddStates(29, 31);
                   break;
-               case 44:
+               case 57:
                   if ((0x8400000000L & l) != 0L)
-                     jjCheckNAddStates(26, 28);
+                     jjCheckNAddStates(29, 31);
                   break;
-               case 45:
+               case 58:
                   if (curChar == 39 && kind > 157)
                      kind = 157;
                   break;
-               case 46:
+               case 59:
                   if (curChar == 34)
-                     jjCheckNAddStates(23, 25);
+                     jjCheckNAddStates(26, 28);
                   break;
-               case 47:
+               case 60:
                   if ((0xfffffffbffffdbffL & l) != 0L)
-                     jjCheckNAddStates(23, 25);
+                     jjCheckNAddStates(26, 28);
                   break;
-               case 49:
+               case 62:
                   if ((0x8400000000L & l) != 0L)
-                     jjCheckNAddStates(23, 25);
+                     jjCheckNAddStates(26, 28);
                   break;
-               case 50:
+               case 63:
                   if (curChar == 34 && kind > 158)
                      kind = 158;
                   break;
-               case 51:
+               case 64:
                   if (curChar == 39)
-                     jjCheckNAddStates(38, 41);
+                     jjCheckNAddStates(50, 53);
                   break;
-               case 52:
-               case 57:
+               case 65:
+               case 70:
                   if (curChar == 39)
-                     jjCheckNAddTwoStates(53, 54);
+                     jjCheckNAddTwoStates(66, 67);
                   break;
-               case 53:
+               case 66:
                   if ((0xffffff7fffffffffL & l) != 0L)
-                     jjCheckNAddStates(38, 41);
+                     jjCheckNAddStates(50, 53);
                   break;
-               case 55:
+               case 68:
                   if ((0x8400000000L & l) != 0L)
-                     jjCheckNAddStates(38, 41);
+                     jjCheckNAddStates(50, 53);
                   break;
-               case 56:
+               case 69:
                   if (curChar == 39)
-                     jjAddStates(42, 43);
+                     jjAddStates(54, 55);
                   break;
-               case 58:
+               case 71:
                   if (curChar == 39 && kind > 159)
                      kind = 159;
                   break;
-               case 59:
+               case 72:
                   if (curChar == 39)
-                     jjstateSet[jjnewStateCnt++] = 58;
+                     jjstateSet[jjnewStateCnt++] = 71;
                   break;
-               case 60:
+               case 73:
                   if (curChar == 39)
-                     jjstateSet[jjnewStateCnt++] = 51;
+                     jjstateSet[jjnewStateCnt++] = 64;
                   break;
-               case 61:
+               case 74:
                   if (curChar == 39)
-                     jjstateSet[jjnewStateCnt++] = 60;
+                     jjstateSet[jjnewStateCnt++] = 73;
                   break;
-               case 62:
+               case 75:
                   if (curChar == 34)
-                     jjCheckNAddStates(44, 47);
+                     jjCheckNAddStates(56, 59);
                   break;
-               case 63:
-               case 68:
+               case 76:
+               case 81:
                   if (curChar == 34)
-                     jjCheckNAddTwoStates(64, 65);
+                     jjCheckNAddTwoStates(77, 78);
                   break;
-               case 64:
+               case 77:
                   if ((0xfffffffbffffffffL & l) != 0L)
-                     jjCheckNAddStates(44, 47);
+                     jjCheckNAddStates(56, 59);
                   break;
-               case 66:
+               case 79:
                   if ((0x8400000000L & l) != 0L)
-                     jjCheckNAddStates(44, 47);
+                     jjCheckNAddStates(56, 59);
                   break;
-               case 67:
+               case 80:
                   if (curChar == 34)
-                     jjAddStates(48, 49);
+                     jjAddStates(60, 61);
                   break;
-               case 69:
+               case 82:
                   if (curChar == 34 && kind > 160)
                      kind = 160;
                   break;
-               case 70:
+               case 83:
                   if (curChar == 34)
-                     jjstateSet[jjnewStateCnt++] = 69;
+                     jjstateSet[jjnewStateCnt++] = 82;
                   break;
-               case 71:
+               case 84:
                   if (curChar == 34)
-                     jjstateSet[jjnewStateCnt++] = 62;
+                     jjstateSet[jjnewStateCnt++] = 75;
                   break;
-               case 72:
+               case 85:
                   if (curChar == 34)
-                     jjstateSet[jjnewStateCnt++] = 71;
+                     jjstateSet[jjnewStateCnt++] = 84;
                   break;
-               case 73:
+               case 86:
                   if (curChar == 40)
-                     jjCheckNAddStates(17, 19);
+                     jjCheckNAddStates(20, 22);
                   break;
-               case 74:
+               case 87:
                   if (curChar == 35)
-                     jjCheckNAddStates(50, 55);
+                     jjCheckNAddStates(62, 67);
                   break;
-               case 75:
+               case 88:
                   if ((0xffffffffffffdbffL & l) != 0L)
-                     jjCheckNAddStates(50, 55);
+                     jjCheckNAddStates(62, 67);
                   break;
-               case 76:
+               case 89:
                   if ((0x2400L & l) != 0L)
-                     jjCheckNAddStates(17, 19);
+                     jjCheckNAddStates(20, 22);
                   break;
-               case 77:
+               case 90:
                   if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(17, 19);
+                     jjCheckNAddStates(20, 22);
                   break;
-               case 78:
+               case 91:
                   if (curChar == 41 && kind > 163)
                      kind = 163;
                   break;
-               case 79:
+               case 92:
                   if (curChar == 10)
-                     jjCheckNAddStates(17, 19);
+                     jjCheckNAddStates(20, 22);
                   break;
-               case 80:
+               case 93:
                   if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 79;
+                     jjstateSet[jjnewStateCnt++] = 92;
                   break;
-               case 82:
+               case 95:
                   if (curChar == 35)
-                     jjCheckNAddStates(56, 61);
+                     jjCheckNAddStates(68, 73);
                   break;
-               case 83:
+               case 96:
                   if ((0xffffffffffffdbffL & l) != 0L)
-                     jjCheckNAddStates(56, 61);
+                     jjCheckNAddStates(68, 73);
                   break;
-               case 84:
+               case 97:
                   if ((0x2400L & l) != 0L)
-                     jjCheckNAddStates(62, 64);
+                     jjCheckNAddStates(74, 76);
                   break;
-               case 85:
+               case 98:
                   if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(62, 64);
+                     jjCheckNAddStates(74, 76);
                   break;
-               case 87:
+               case 100:
                   if (curChar == 10)
-                     jjCheckNAddStates(62, 64);
+                     jjCheckNAddStates(74, 76);
                   break;
-               case 88:
+               case 101:
                   if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 87;
+                     jjstateSet[jjnewStateCnt++] = 100;
                   break;
-               case 90:
+               case 103:
                   if ((0x3ff600000000000L & l) != 0L)
-                     jjAddStates(65, 66);
+                     jjAddStates(77, 78);
                   break;
-               case 91:
+               case 104:
                   if ((0x3ff200000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 92;
+                     jjstateSet[jjnewStateCnt++] = 105;
                   break;
-               case 92:
+               case 105:
                   if (curChar == 58 && kind > 10)
                      kind = 10;
                   break;
-               case 93:
+               case 106:
                   if ((0x3ff600000000000L & l) != 0L)
-                     jjAddStates(67, 68);
+                     jjAddStates(79, 80);
                   break;
-               case 94:
+               case 107:
                   if ((0x3ff200000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 95;
+                     jjstateSet[jjnewStateCnt++] = 108;
                   break;
-               case 95:
+               case 108:
                   if (curChar == 58)
-                     jjCheckNAdd(96);
+                     jjCheckNAddStates(17, 19);
                   break;
-               case 96:
+               case 109:
+               case 124:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 11)
                      kind = 11;
-                  jjCheckNAddTwoStates(97, 98);
+                  jjCheckNAddStates(81, 84);
                   break;
-               case 97:
+               case 110:
                   if ((0x3ff600000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(97, 98);
+                     jjCheckNAddStates(81, 84);
                   break;
-               case 98:
+               case 111:
                   if ((0x3ff200000000000L & l) != 0L && kind > 11)
                      kind = 11;
                   break;
-               case 99:
+               case 113:
+                  if ((0xac00fffa00000000L & l) != 0L)
+                     jjCheckNAddStates(81, 84);
+                  break;
+               case 114:
+                  if (curChar == 37)
+                     jjAddStates(85, 86);
+                  break;
+               case 115:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 116;
+                  break;
+               case 116:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(81, 84);
+                  break;
+               case 117:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 118;
+                  break;
+               case 118:
+                  if ((0x3ff000000000000L & l) != 0L && kind > 11)
+                     kind = 11;
+                  break;
+               case 119:
+                  if ((0xac00fffa00000000L & l) != 0L && kind > 11)
+                     kind = 11;
+                  break;
+               case 121:
+                  if ((0xac00fffa00000000L & l) == 0L)
+                     break;
+                  if (kind > 11)
+                     kind = 11;
+                  jjCheckNAddStates(81, 84);
+                  break;
+               case 122:
+                  if (curChar == 37)
+                     jjstateSet[jjnewStateCnt++] = 123;
+                  break;
+               case 123:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 124;
+                  break;
+               case 125:
                   if (curChar != 58)
                      break;
                   if (kind > 10)
                      kind = 10;
-                  jjCheckNAdd(96);
+                  jjCheckNAddStates(17, 19);
                   break;
-               case 102:
+               case 128:
                   if (curChar == 35)
-                     jjCheckNAddStates(69, 74);
+                     jjCheckNAddStates(87, 92);
                   break;
-               case 103:
+               case 129:
                   if ((0xffffffffffffdbffL & l) != 0L)
-                     jjCheckNAddStates(69, 74);
+                     jjCheckNAddStates(87, 92);
                   break;
-               case 104:
+               case 130:
                   if ((0x2400L & l) != 0L)
-                     jjCheckNAddStates(75, 77);
+                     jjCheckNAddStates(93, 95);
                   break;
-               case 105:
+               case 131:
                   if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(75, 77);
+                     jjCheckNAddStates(93, 95);
                   break;
-               case 110:
+               case 136:
                   if (curChar == 10)
-                     jjCheckNAddStates(75, 77);
+                     jjCheckNAddStates(93, 95);
                   break;
-               case 111:
+               case 137:
                   if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 110;
+                     jjstateSet[jjnewStateCnt++] = 136;
                   break;
-               case 117:
+               case 143:
                   if (curChar == 35)
-                     jjCheckNAddStates(78, 83);
+                     jjCheckNAddStates(96, 101);
                   break;
-               case 118:
+               case 144:
                   if ((0xffffffffffffdbffL & l) != 0L)
-                     jjCheckNAddStates(78, 83);
+                     jjCheckNAddStates(96, 101);
                   break;
-               case 119:
+               case 145:
                   if ((0x2400L & l) != 0L)
-                     jjCheckNAddStates(84, 86);
+                     jjCheckNAddStates(102, 104);
                   break;
-               case 120:
+               case 146:
                   if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(84, 86);
+                     jjCheckNAddStates(102, 104);
                   break;
-               case 126:
+               case 152:
                   if (curChar == 10)
-                     jjCheckNAddStates(84, 86);
+                     jjCheckNAddStates(102, 104);
                   break;
-               case 127:
+               case 153:
                   if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 126;
+                     jjstateSet[jjnewStateCnt++] = 152;
                   break;
-               case 132:
+               case 158:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 144)
                      kind = 144;
                   jjCheckNAddStates(0, 6);
                   break;
-               case 133:
+               case 159:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 144)
                      kind = 144;
-                  jjCheckNAdd(133);
+                  jjCheckNAdd(159);
                   break;
-               case 134:
+               case 160:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(134, 135);
+                     jjCheckNAddTwoStates(160, 161);
                   break;
-               case 135:
+               case 161:
                   if (curChar == 46)
-                     jjCheckNAdd(136);
+                     jjCheckNAdd(162);
                   break;
-               case 136:
+               case 162:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 145)
                      kind = 145;
-                  jjCheckNAdd(136);
+                  jjCheckNAdd(162);
                   break;
-               case 137:
+               case 163:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(137, 138);
+                     jjCheckNAddTwoStates(163, 164);
                   break;
-               case 138:
+               case 164:
                   if (curChar == 46)
-                     jjCheckNAddTwoStates(139, 140);
+                     jjCheckNAddTwoStates(165, 166);
                   break;
-               case 139:
+               case 165:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(139, 140);
+                     jjCheckNAddTwoStates(165, 166);
                   break;
-               case 141:
+               case 167:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(142);
+                     jjCheckNAdd(168);
                   break;
-               case 142:
+               case 168:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 146)
                      kind = 146;
-                  jjCheckNAdd(142);
+                  jjCheckNAdd(168);
                   break;
-               case 143:
+               case 169:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(143, 144);
+                     jjCheckNAddTwoStates(169, 170);
                   break;
-               case 145:
+               case 171:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(146);
+                     jjCheckNAdd(172);
                   break;
-               case 146:
+               case 172:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 146)
                      kind = 146;
-                  jjCheckNAdd(146);
+                  jjCheckNAdd(172);
                   break;
-               case 147:
+               case 173:
                   if (curChar == 46)
-                     jjCheckNAddTwoStates(136, 148);
+                     jjCheckNAddTwoStates(162, 174);
                   break;
-               case 148:
+               case 174:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(148, 149);
+                     jjCheckNAddTwoStates(174, 175);
                   break;
-               case 150:
+               case 176:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(151);
+                     jjCheckNAdd(177);
                   break;
-               case 151:
+               case 177:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 146)
                      kind = 146;
-                  jjCheckNAdd(151);
+                  jjCheckNAdd(177);
                   break;
-               case 152:
+               case 178:
                   if (curChar == 43)
                      jjCheckNAddStates(12, 16);
                   break;
-               case 153:
+               case 179:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 147)
                      kind = 147;
-                  jjCheckNAdd(153);
+                  jjCheckNAdd(179);
                   break;
-               case 154:
+               case 180:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(154, 155);
+                     jjCheckNAddTwoStates(180, 181);
                   break;
-               case 155:
+               case 181:
                   if (curChar == 46)
-                     jjCheckNAdd(156);
+                     jjCheckNAdd(182);
                   break;
-               case 156:
+               case 182:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 148)
                      kind = 148;
-                  jjCheckNAdd(156);
+                  jjCheckNAdd(182);
                   break;
-               case 157:
+               case 183:
                   if (curChar == 46)
-                     jjCheckNAdd(158);
+                     jjCheckNAdd(184);
                   break;
-               case 158:
+               case 184:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(158, 159);
+                     jjCheckNAddTwoStates(184, 185);
                   break;
-               case 160:
+               case 186:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(161);
+                     jjCheckNAdd(187);
                   break;
-               case 161:
+               case 187:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 149)
                      kind = 149;
-                  jjCheckNAdd(161);
+                  jjCheckNAdd(187);
                   break;
-               case 162:
+               case 188:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(87, 90);
+                     jjCheckNAddStates(105, 108);
                   break;
-               case 163:
+               case 189:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(163, 164);
+                     jjCheckNAddTwoStates(189, 190);
                   break;
-               case 164:
+               case 190:
                   if (curChar == 46)
-                     jjCheckNAddTwoStates(165, 166);
+                     jjCheckNAddTwoStates(191, 192);
                   break;
-               case 165:
+               case 191:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(165, 166);
+                     jjCheckNAddTwoStates(191, 192);
                   break;
-               case 167:
+               case 193:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(168);
+                     jjCheckNAdd(194);
                   break;
-               case 168:
+               case 194:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 149)
                      kind = 149;
-                  jjCheckNAdd(168);
+                  jjCheckNAdd(194);
                   break;
-               case 169:
+               case 195:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(169, 170);
+                     jjCheckNAddTwoStates(195, 196);
                   break;
-               case 171:
+               case 197:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(172);
+                     jjCheckNAdd(198);
                   break;
-               case 172:
+               case 198:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 149)
                      kind = 149;
-                  jjCheckNAdd(172);
+                  jjCheckNAdd(198);
                   break;
-               case 173:
+               case 199:
                   if (curChar == 45)
                      jjCheckNAddStates(7, 11);
                   break;
-               case 174:
+               case 200:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 150)
                      kind = 150;
-                  jjCheckNAdd(174);
+                  jjCheckNAdd(200);
                   break;
-               case 175:
+               case 201:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(175, 176);
+                     jjCheckNAddTwoStates(201, 202);
                   break;
-               case 176:
+               case 202:
                   if (curChar == 46)
-                     jjCheckNAdd(177);
+                     jjCheckNAdd(203);
                   break;
-               case 177:
+               case 203:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 151)
                      kind = 151;
-                  jjCheckNAdd(177);
+                  jjCheckNAdd(203);
                   break;
-               case 178:
+               case 204:
                   if (curChar == 46)
-                     jjCheckNAdd(179);
+                     jjCheckNAdd(205);
                   break;
-               case 179:
+               case 205:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(179, 180);
+                     jjCheckNAddTwoStates(205, 206);
                   break;
-               case 181:
+               case 207:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(182);
+                     jjCheckNAdd(208);
                   break;
-               case 182:
+               case 208:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 152)
                      kind = 152;
-                  jjCheckNAdd(182);
+                  jjCheckNAdd(208);
                   break;
-               case 183:
+               case 209:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(91, 94);
+                     jjCheckNAddStates(109, 112);
                   break;
-               case 184:
+               case 210:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(184, 185);
+                     jjCheckNAddTwoStates(210, 211);
                   break;
-               case 185:
+               case 211:
                   if (curChar == 46)
-                     jjCheckNAddTwoStates(186, 187);
+                     jjCheckNAddTwoStates(212, 213);
                   break;
-               case 186:
+               case 212:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(186, 187);
+                     jjCheckNAddTwoStates(212, 213);
                   break;
-               case 188:
+               case 214:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(189);
+                     jjCheckNAdd(215);
                   break;
-               case 189:
+               case 215:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 152)
                      kind = 152;
-                  jjCheckNAdd(189);
+                  jjCheckNAdd(215);
                   break;
-               case 190:
+               case 216:
                   if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(190, 191);
+                     jjCheckNAddTwoStates(216, 217);
                   break;
-               case 192:
+               case 218:
                   if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(193);
+                     jjCheckNAdd(219);
                   break;
-               case 193:
+               case 219:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
                   if (kind > 152)
                      kind = 152;
-                  jjCheckNAdd(193);
+                  jjCheckNAdd(219);
                   break;
                default : break;
             }
@@ -2979,351 +3067,451 @@ private int jjMoveNfa_0(int startState, 
             {
                case 0:
                   if ((0x7fffffe07fffffeL & l) != 0L)
-                     jjCheckNAddStates(95, 100);
+                     jjCheckNAddStates(113, 118);
                   else if (curChar == 91)
-                     jjCheckNAddStates(62, 64);
+                     jjCheckNAddStates(74, 76);
                   else if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 40;
+                     jjstateSet[jjnewStateCnt++] = 53;
                   else if (curChar == 64)
-                     jjCheckNAdd(20);
+                     jjCheckNAdd(33);
                   else if (curChar == 95)
                      jjstateSet[jjnewStateCnt++] = 8;
                   if ((0x1000000010L & l) != 0L)
-                     jjAddStates(101, 102);
+                     jjAddStates(119, 120);
                   else if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 37;
+                     jjstateSet[jjnewStateCnt++] = 50;
                   break;
                case 1:
                   if (kind > 6)
                      kind = 6;
-                  jjAddStates(20, 22);
+                  jjAddStates(23, 25);
                   break;
                case 6:
                   if ((0xc7fffffeafffffffL & l) != 0L)
-                     jjAddStates(103, 104);
+                     jjAddStates(121, 122);
                   break;
                case 9:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
                   if (kind > 12)
                      kind = 12;
-                  jjCheckNAddTwoStates(10, 11);
+                  jjCheckNAddStates(35, 38);
+                  break;
+               case 10:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     jjCheckNAddStates(35, 38);
+                  break;
+               case 11:
+                  if ((0x7fffffe87fffffeL & l) != 0L && kind > 12)
+                     kind = 12;
+                  break;
+               case 12:
+                  if (curChar == 92)
+                     jjAddStates(123, 124);
+                  break;
+               case 13:
+                  if ((0x4000000000000001L & l) != 0L)
+                     jjCheckNAddStates(35, 38);
+                  break;
+               case 15:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 16;
+                  break;
+               case 16:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjCheckNAddStates(35, 38);
+                  break;
+               case 17:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 18;
+                  break;
+               case 18:
+                  if ((0x7e0000007eL & l) != 0L && kind > 12)
+                     kind = 12;
+                  break;
+               case 19:
+                  if ((0x4000000000000001L & l) != 0L && kind > 12)
+                     kind = 12;
+                  break;
+               case 20:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 21;
+                  break;
+               case 21:
+                  if ((0x4000000000000001L & l) == 0L)
+                     break;
+                  if (kind > 12)
+                     kind = 12;
+                  jjCheckNAddStates(35, 38);
                   break;
-               case 10:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddTwoStates(10, 11);
+               case 23:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 24;
                   break;
-               case 11:
-                  if ((0x7fffffe87fffffeL & l) != 0L && kind > 12)
+               case 24:
+                  if ((0x7e0000007eL & l) == 0L)
+                     break;
+                  if (kind > 12)
                      kind = 12;
+                  jjCheckNAddStates(35, 38);
                   break;
-               case 12:
+               case 25:
                   if (curChar == 95)
                      jjstateSet[jjnewStateCnt++] = 8;
                   break;
-               case 14:
-               case 15:
+               case 27:
+               case 28:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
                   if (kind > 13)
                      kind = 13;
-                  jjCheckNAdd(15);
+                  jjCheckNAdd(28);
                   break;
-               case 17:
-               case 18:
+               case 30:
+               case 31:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
                   if (kind > 14)
                      kind = 14;
-                  jjCheckNAdd(18);
+                  jjCheckNAdd(31);
                   break;
-               case 19:
+               case 32:
                   if (curChar == 64)
-                     jjCheckNAdd(20);
+                     jjCheckNAdd(33);
                   break;
-               case 20:
+               case 33:
                   if ((0x7fffffe07fffffeL & l) == 0L)
                      break;
                   if (kind > 15)
                      kind = 15;
-                  jjCheckNAddTwoStates(20, 21);
+                  jjCheckNAddTwoStates(33, 34);
                   break;
-               case 22:
+               case 35:
                   if ((0x7fffffe07fffffeL & l) == 0L)
                      break;
                   if (kind > 15)
                      kind = 15;
-                  jjCheckNAddTwoStates(21, 22);
+                  jjCheckNAddTwoStates(34, 35);
                   break;
-               case 23:
+               case 36:
                   if ((0x10000000100000L & l) != 0L)
-                     jjCheckNAddStates(35, 37);
+                     jjCheckNAddStates(47, 49);
                   break;
-               case 25:
-                  jjCheckNAddStates(29, 34);
+               case 38:
+                  jjCheckNAddStates(41, 46);
                   break;
-               case 28:
+               case 41:
                   if ((0x200000002L & l) != 0L && kind > 124)
                      kind = 124;
                   break;
-               case 29:
+               case 42:
                   if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 28;
+                     jjstateSet[jjnewStateCnt++] = 41;
                   break;
-               case 30:
+               case 43:
                   if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 29;
+                     jjstateSet[jjnewStateCnt++] = 42;
                   break;
-               case 31:
+               case 44:
                   if ((0x1000000010L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 30;
+                     jjstateSet[jjnewStateCnt++] = 43;
                   break;
-               case 34:
+               case 47:
                   if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 23;
+                     jjstateSet[jjnewStateCnt++] = 36;
                   break;
-               case 35:
+               case 48:
                   if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 34;
+                     jjstateSet[jjnewStateCnt++] = 47;
                   break;
-               case 36:
+               case 49:
                   if ((0x8000000080000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 35;
+                     jjstateSet[jjnewStateCnt++] = 48;
                   break;
-               case 37:
+               case 50:
                   if ((0x400000004000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 36;
+                     jjstateSet[jjnewStateCnt++] = 49;
                   break;
-               case 38:
+               case 51:
                   if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 37;
+                     jjstateSet[jjnewStateCnt++] = 50;
                   break;
-               case 39:
+               case 52:
                   if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 40;
+                     jjstateSet[jjnewStateCnt++] = 53;
                   break;
-               case 40:
+               case 53:
                   if ((0x14404410000000L & l) != 0L && kind > 156)
                      kind = 156;
                   break;
-               case 42:
+               case 55:
                   if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(26, 28);
+                     jjCheckNAddStates(29, 31);
                   break;
-               case 43:
+               case 56:
                   if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 44;
+                     jjstateSet[jjnewStateCnt++] = 57;
                   break;
-               case 44:
+               case 57:
                   if ((0x14404410000000L & l) != 0L)
-                     jjCheckNAddStates(26, 28);
+                     jjCheckNAddStates(29, 31);
                   break;
-               case 47:
+               case 60:
                   if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(23, 25);
+                     jjCheckNAddStates(26, 28);
                   break;
-               case 48:
+               case 61:
                   if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 49;
+                     jjstateSet[jjnewStateCnt++] = 62;
                   break;
-               case 49:
+               case 62:
                   if ((0x14404410000000L & l) != 0L)
-                     jjCheckNAddStates(23, 25);
+                     jjCheckNAddStates(26, 28);
                   break;
-               case 53:
+               case 66:
                   if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(38, 41);
+                     jjCheckNAddStates(50, 53);
                   break;
-               case 54:
+               case 67:
                   if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 55;
+                     jjstateSet[jjnewStateCnt++] = 68;
                   break;
-               case 55:
+               case 68:
                   if ((0x14404410000000L & l) != 0L)
-                     jjCheckNAddStates(38, 41);
+                     jjCheckNAddStates(50, 53);
                   break;
-               case 64:
+               case 77:
                   if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(44, 47);
+                     jjCheckNAddStates(56, 59);
                   break;
-               case 65:
+               case 78:
                   if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 66;
+                     jjstateSet[jjnewStateCnt++] = 79;
                   break;
-               case 66:
+               case 79:
                   if ((0x14404410000000L & l) != 0L)
-                     jjCheckNAddStates(44, 47);
+                     jjCheckNAddStates(56, 59);
                   break;
-               case 75:
-                  jjAddStates(50, 55);
+               case 88:
+                  jjAddStates(62, 67);
                   break;
-               case 81:
+               case 94:
                   if (curChar == 91)
-                     jjCheckNAddStates(62, 64);
+                     jjCheckNAddStates(74, 76);
                   break;
-               case 83:
-                  jjCheckNAddStates(56, 61);
+               case 96:
+                  jjCheckNAddStates(68, 73);
                   break;
-               case 86:
+               case 99:
                   if (curChar == 93 && kind > 168)
                      kind = 168;
                   break;
-               case 89:
+               case 102:
                   if ((0x7fffffe07fffffeL & l) != 0L)
-                     jjCheckNAddStates(95, 100);
+                     jjCheckNAddStates(113, 118);
                   break;
-               case 90:
+               case 103:
                   if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddTwoStates(90, 91);
+                     jjCheckNAddTwoStates(103, 104);
                   break;
-               case 91:
+               case 104:
                   if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAdd(92);
+                     jjCheckNAdd(105);
                   break;
-               case 93:
+               case 106:
                   if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddTwoStates(93, 94);
+                     jjCheckNAddTwoStates(106, 107);
                   break;
-               case 94:
+               case 107:
                   if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAdd(95);
+                     jjCheckNAdd(108);
                   break;
-               case 96:
+               case 109:
                   if ((0x7fffffe87fffffeL & l) == 0L)
                      break;
                   if (kind > 11)
                      kind = 11;
-                  jjCheckNAddTwoStates(97, 98);
+                  jjCheckNAddStates(81, 84);
                   break;
-               case 97:
+               case 110:
                   if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddTwoStates(97, 98);
+                     jjCheckNAddStates(81, 84);
                   break;
-               case 98:
+               case 111:
                   if ((0x7fffffe87fffffeL & l) != 0L && kind > 11)
                      kind = 11;
                   break;
-               case 100:
+               case 112:
+                  if (curChar == 92)
+                     jjAddStates(125, 126);
+                  break;
+               case 113:
+                  if ((0x4000000000000001L & l) != 0L)
+                     jjCheckNAddStates(81, 84);
+                  break;
+               case 115:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 116;
+                  break;
+               case 116:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjCheckNAddStates(81, 84);
+                  break;
+               case 117:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 118;
+                  break;
+               case 118:
+                  if ((0x7e0000007eL & l) != 0L && kind > 11)
+                     kind = 11;
+                  break;
+               case 119:
+                  if ((0x4000000000000001L & l) != 0L && kind > 11)
+                     kind = 11;
+                  break;
+               case 120:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 121;
+                  break;
+               case 121:
+                  if ((0x4000000000000001L & l) == 0L)
+                     break;
+                  if (kind > 11)
+                     kind = 11;
+                  jjCheckNAddStates(81, 84);
+                  break;
+               case 123:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 124;
+                  break;
+               case 124:
+                  if ((0x7e0000007eL & l) == 0L)
+                     break;
+                  if (kind > 11)
+                     kind = 11;
+                  jjCheckNAddStates(81, 84);
+                  break;
+               case 126:
                   if ((0x1000000010L & l) != 0L)
-                     jjAddStates(101, 102);
+                     jjAddStates(119, 120);
                   break;
-               case 101:
+               case 127:
                   if ((0x2000000020L & l) != 0L)
-                     jjCheckNAddStates(75, 77);
+                     jjCheckNAddStates(93, 95);
                   break;
-               case 103:
-                  jjCheckNAddStates(69, 74);
+               case 129:
+                  jjCheckNAddStates(87, 92);
                   break;
-               case 106:
+               case 132:
                   if ((0x200000002L & l) != 0L && kind > 125)
                      kind = 125;
                   break;
-               case 107:
+               case 133:
                   if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 106;
+                     jjstateSet[jjnewStateCnt++] = 132;
                   break;
-               case 108:
+               case 134:
                   if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 107;
+                     jjstateSet[jjnewStateCnt++] = 133;
                   break;
-               case 109:
+               case 135:
                   if ((0x1000000010L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 108;
+                     jjstateSet[jjnewStateCnt++] = 134;
                   break;
-               case 112:
+               case 138:
                   if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 101;
+                     jjstateSet[jjnewStateCnt++] = 127;
                   break;
-               case 113:
+               case 139:
                   if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 112;
+                     jjstateSet[jjnewStateCnt++] = 138;
                   break;
-               case 114:
+               case 140:
                   if ((0x100000001000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 113;
+                     jjstateSet[jjnewStateCnt++] = 139;
                   break;
-               case 115:
+               case 141:
                   if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 114;
+                     jjstateSet[jjnewStateCnt++] = 140;
                   break;
-               case 116:
+               case 142:
                   if ((0x2000000020L & l) != 0L)
-                     jjCheckNAddStates(84, 86);
+                     jjCheckNAddStates(102, 104);
                   break;
-               case 118:
-                  jjCheckNAddStates(78, 83);
+               case 144:
+                  jjCheckNAddStates(96, 101);
                   break;
-               case 121:
+               case 147:
                   if ((0x2000000020L & l) != 0L && kind > 126)
                      kind = 126;
                   break;
-               case 122:
+               case 148:
                   if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 121;
+                     jjstateSet[jjnewStateCnt++] = 147;
                   break;
-               case 123:
+               case 149:
                   if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 122;
+                     jjstateSet[jjnewStateCnt++] = 148;
                   break;
-               case 124:
+               case 150:
                   if ((0x10000000100L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 123;
+                     jjstateSet[jjnewStateCnt++] = 149;
                   break;
-               case 125:
+               case 151:
                   if ((0x80000000800000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 124;
+                     jjstateSet[jjnewStateCnt++] = 150;
                   break;
-               case 128:
+               case 154:
                   if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 116;
+                     jjstateSet[jjnewStateCnt++] = 142;
                   break;
-               case 129:
+               case 155:
                   if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 128;
+                     jjstateSet[jjnewStateCnt++] = 154;
                   break;
-               case 130:
+               case 156:
                   if ((0x100000001000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 129;
+                     jjstateSet[jjnewStateCnt++] = 155;
                   break;
-               case 131:
+               case 157:
                   if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 130;
+                     jjstateSet[jjnewStateCnt++] = 156;
                   break;
-               case 140:
+               case 166:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(105, 106);
+                     jjAddStates(127, 128);
                   break;
-               case 144:
+               case 170:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(107, 108);
+                     jjAddStates(129, 130);
                   break;
-               case 149:
+               case 175:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(109, 110);
+                     jjAddStates(131, 132);
                   break;
-               case 159:
+               case 185:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(111, 112);
+                     jjAddStates(133, 134);
                   break;
-               case 166:
+               case 192:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(113, 114);
+                     jjAddStates(135, 136);
                   break;
-               case 170:
+               case 196:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(115, 116);
+                     jjAddStates(137, 138);
                   break;
-               case 180:
+               case 206:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(117, 118);
+                     jjAddStates(139, 140);
                   break;
-               case 187:
+               case 213:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(119, 120);
+                     jjAddStates(141, 142);
                   break;
-               case 191:
+               case 217:
                   if ((0x2000000020L & l) != 0L)
-                     jjAddStates(121, 122);
+                     jjAddStates(143, 144);
                   break;
                default : break;
             }
@@ -3342,128 +3530,128 @@ private int jjMoveNfa_0(int startState, 
             {
                case 0:
                   if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                     jjCheckNAddStates(95, 100);
+                     jjCheckNAddStates(113, 118);
                   break;
                case 1:
                   if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 6)
                      kind = 6;
-                  jjAddStates(20, 22);
+                  jjAddStates(23, 25);
                   break;
                case 6:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(103, 104);
+                     jjAddStates(121, 122);
                   break;
                case 9:
                   if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 12)
                      kind = 12;
-                  jjCheckNAddTwoStates(10, 11);
+                  jjCheckNAddStates(35, 38);
                   break;
                case 10:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2))
-                     jjCheckNAddTwoStates(10, 11);
+                     jjCheckNAddStates(35, 38);
                   break;
                case 11:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 12)
                      kind = 12;
                   break;
-               case 14:
+               case 27:
                   if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 13)
                      kind = 13;
-                  jjCheckNAdd(15);
+                  jjCheckNAdd(28);
                   break;
-               case 15:
+               case 28:
                   if (!jjCanMove_2(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 13)
                      kind = 13;
-                  jjCheckNAdd(15);
+                  jjCheckNAdd(28);
                   break;
-               case 17:
+               case 30:
                   if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 14)
                      kind = 14;
-                  jjCheckNAdd(18);
+                  jjCheckNAdd(31);
                   break;
-               case 18:
+               case 31:
                   if (!jjCanMove_2(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 14)
                      kind = 14;
-                  jjCheckNAdd(18);
+                  jjCheckNAdd(31);
                   break;
-               case 25:
+               case 38:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(29, 34);
+                     jjAddStates(41, 46);
                   break;
-               case 42:
+               case 55:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(26, 28);
+                     jjAddStates(29, 31);
                   break;
-               case 47:
+               case 60:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(23, 25);
+                     jjAddStates(26, 28);
                   break;
-               case 53:
+               case 66:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(38, 41);
+                     jjAddStates(50, 53);
                   break;
-               case 64:
+               case 77:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(44, 47);
+                     jjAddStates(56, 59);
                   break;
-               case 75:
+               case 88:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(50, 55);
+                     jjAddStates(62, 67);
                   break;
-               case 83:
+               case 96:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(56, 61);
+                     jjAddStates(68, 73);
                   break;
-               case 90:
+               case 103:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2))
-                     jjCheckNAddTwoStates(90, 91);
+                     jjCheckNAddTwoStates(103, 104);
                   break;
-               case 91:
+               case 104:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2))
-                     jjCheckNAdd(92);
+                     jjCheckNAdd(105);
                   break;
-               case 93:
+               case 106:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2))
-                     jjCheckNAddTwoStates(93, 94);
+                     jjCheckNAddTwoStates(106, 107);
                   break;
-               case 94:
+               case 107:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2))
-                     jjCheckNAdd(95);
+                     jjCheckNAdd(108);
                   break;
-               case 96:
+               case 109:
                   if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
                      break;
                   if (kind > 11)
                      kind = 11;
-                  jjCheckNAddTwoStates(97, 98);
+                  jjCheckNAddStates(81, 84);
                   break;
-               case 97:
+               case 110:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2))
-                     jjCheckNAddTwoStates(97, 98);
+                     jjCheckNAddStates(81, 84);
                   break;
-               case 98:
+               case 111:
                   if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 11)
                      kind = 11;
                   break;
-               case 103:
+               case 129:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(69, 74);
+                     jjAddStates(87, 92);
                   break;
-               case 118:
+               case 144:
                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(78, 83);
+                     jjAddStates(96, 101);
                   break;
                default : break;
             }
@@ -3476,7 +3664,7 @@ private int jjMoveNfa_0(int startState, 
          kind = 0x7fffffff;
       }
       ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 194 - (jjnewStateCnt = startsAt)))
+      if ((i = jjnewStateCnt) == (startsAt = 220 - (jjnewStateCnt = startsAt)))
          break;
       try { curChar = input_stream.readChar(); }
       catch(java.io.IOException e) { break; }
@@ -3502,14 +3690,16 @@ private int jjMoveNfa_0(int startState, 
    return toRet;
 }
 static final int[] jjnextStates = {
-   133, 134, 135, 137, 138, 143, 144, 174, 175, 176, 178, 183, 153, 154, 155, 157, 
-   162, 74, 77, 78, 1, 2, 4, 47, 48, 50, 42, 43, 45, 24, 25, 26, 
-   33, 27, 31, 24, 27, 31, 52, 53, 54, 56, 57, 59, 63, 64, 65, 67, 
-   68, 70, 74, 75, 76, 80, 77, 78, 82, 83, 84, 88, 85, 86, 82, 85, 
-   86, 90, 91, 93, 94, 102, 103, 104, 111, 105, 109, 102, 105, 109, 117, 118, 
-   119, 127, 120, 125, 117, 120, 125, 163, 164, 169, 170, 184, 185, 190, 191, 90, 
-   91, 92, 93, 94, 95, 115, 131, 6, 7, 141, 142, 145, 146, 150, 151, 160, 
-   161, 167, 168, 171, 172, 181, 182, 188, 189, 192, 193, 
+   159, 160, 161, 163, 164, 169, 170, 200, 201, 202, 204, 209, 179, 180, 181, 183, 
+   188, 109, 120, 122, 87, 90, 91, 1, 2, 4, 60, 61, 63, 55, 56, 58, 
+   9, 20, 22, 10, 11, 12, 14, 15, 17, 37, 38, 39, 46, 40, 44, 37, 
+   40, 44, 65, 66, 67, 69, 70, 72, 76, 77, 78, 80, 81, 83, 87, 88, 
+   89, 93, 90, 91, 95, 96, 97, 101, 98, 99, 95, 98, 99, 103, 104, 106, 
+   107, 110, 111, 112, 114, 115, 117, 128, 129, 130, 137, 131, 135, 128, 131, 135, 
+   143, 144, 145, 153, 146, 151, 143, 146, 151, 189, 190, 195, 196, 210, 211, 216, 
+   217, 103, 104, 105, 106, 107, 108, 141, 157, 6, 7, 13, 19, 113, 119, 167, 
+   168, 171, 172, 176, 177, 186, 187, 193, 194, 197, 198, 207, 208, 214, 215, 218, 
+   219, 
 };
 private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
 {
@@ -3589,7 +3779,7 @@ null, null, null, null, null, null, null
 "\133", "\135", null, "\73", "\54", "\56", "\75", "\41\75", "\76", "\74", "\74\75", 
 "\76\75", "\41", "\176", "\72", "\174\174", "\46\46", "\53", "\55", "\52", "\57", 
 "\136\136", "\100", "\72\75", "\174", "\136", "\55\76", "\74\55", "\77", null, null, null, 
-null, null, null, null, };
+null, null, null, null, null, null, null, null, };
 
 /** Lexer state names. */
 public static final String[] lexStateNames = {
@@ -3605,8 +3795,8 @@ static final long[] jjtoSpecial = {
    0x40L, 0x0L, 0x0L, 0x0L, 
 };
 protected JavaCharStream input_stream;
-private final int[] jjrounds = new int[194];
-private final int[] jjstateSet = new int[388];
+private final int[] jjrounds = new int[220];
+private final int[] jjstateSet = new int[440];
 protected char curChar;
 /** Constructor. */
 public ARQParserTokenManager(JavaCharStream stream){
@@ -3633,7 +3823,7 @@ private void ReInitRounds()
 {
    int i;
    jjround = 0x80000001;
-   for (i = 194; i-- > 0;)
+   for (i = 220; i-- > 0;)
       jjrounds[i] = 0x80000000;
 }