Fix for Bug 393903 (DDL Parser: need support for Oracle Object Types that contain a CONSTRUCTOR declaration)
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ScalarDatabaseTypeEnum.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ScalarDatabaseTypeEnum.java
index 3a4a2cd..27da1db 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ScalarDatabaseTypeEnum.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ScalarDatabaseTypeEnum.java
@@ -42,6 +42,7 @@
     SMALLINT_TYPE("SMALLINT"),

     TIME_TYPE("TIME"), //not a native Oracle datatype (only used for JDBC conversion)

     NULL_TYPE("NULL"),

+    XMLTYPE_TYPE("XMLTYPE"),

     ;

 

     private final String typeName;

@@ -235,6 +236,10 @@
         return false;

     }

 

+    public boolean isXMLTYPEType() {

+        return false;

+    }

+

     @Override

     public String toString() {

         return typeName;

diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
index 39da470..76d2d72 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
@@ -155,6 +155,9 @@
     case K_CONSTANT:

       t = jj_consume_token(K_CONSTANT);

       break;

+    case K_CONSTRUCTOR:

+      t = jj_consume_token(K_CONSTRUCTOR);

+      break;

     case K_CURRENT_USER:

       t = jj_consume_token(K_CURRENT_USER);

       break;

@@ -308,6 +311,9 @@
     case K_REPLACE:

       t = jj_consume_token(K_REPLACE);

       break;

+    case K_RESULT:

+      t = jj_consume_token(K_RESULT);

+      break;

     case K_RESULT_CACHE:

       t = jj_consume_token(K_RESULT_CACHE);

       break;

@@ -323,6 +329,9 @@
     case K_SECOND:

       t = jj_consume_token(K_SECOND);

       break;

+    case K_SELF:

+      t = jj_consume_token(K_SELF);

+      break;

     case K_SET:

       t = jj_consume_token(K_SET);

       break;

@@ -443,6 +452,7 @@
       case K_CLOB:

       case K_COMMIT:

       case K_CONSTANT:

+      case K_CONSTRUCTOR:

       case K_CURRENT_USER:

       case K_DATE:

       case K_DAY:

@@ -494,11 +504,13 @@
       case K_RECORD:

       case K_REF:

       case K_REPLACE:

+      case K_RESULT:

       case K_RESULT_CACHE:

       case K_RETURN:

       case K_ROWID:

       case K_ROWS:

       case K_SECOND:

+      case K_SELF:

       case K_SET:

       case K_SIGNTYPE:

       case K_SIMPLE_DOUBLE:

@@ -758,6 +770,7 @@
                     ((ObjectType)databaseType).setSchema(schema);

                 }

         columnDeclarations(databaseType);

+        constructorDeclaration();

         jj_consume_token(O_CLOSEPAREN);

         break;

       case K_VARRAY:

@@ -837,13 +850,9 @@
 

   final public void columnDeclarations(CompositeDatabaseType enclosingType) throws ParseException {

     if (jj_2_1(2)) {

-      columnDeclaration(enclosingType);

+      constructor();

     } else {

       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-      case R_CHECK:

-      case R_CONSTRAINT:

-      case R_PRIMARY:

-      case R_UNIQUE:

       case K_ARRAY:

       case K_AUTHID:

       case K_BFILE:

@@ -858,6 +867,7 @@
       case K_CLOB:

       case K_COMMIT:

       case K_CONSTANT:

+      case K_CONSTRUCTOR:

       case K_CURRENT_USER:

       case K_DATE:

       case K_DAY:

@@ -909,11 +919,13 @@
       case K_RECORD:

       case K_REF:

       case K_REPLACE:

+      case K_RESULT:

       case K_RESULT_CACHE:

       case K_RETURN:

       case K_ROWID:

       case K_ROWS:

       case K_SECOND:

+      case K_SELF:

       case K_SET:

       case K_SIGNTYPE:

       case K_SIMPLE_DOUBLE:

@@ -934,6 +946,12 @@
       case K_ZONE:

       case S_IDENTIFIER:

       case S_QUOTED_IDENTIFIER:

+        columnDeclaration(enclosingType);

+        break;

+      case R_CHECK:

+      case R_CONSTRAINT:

+      case R_PRIMARY:

+      case R_UNIQUE:

         constraintDeclaration(enclosingType);

         break;

       default:

@@ -1012,6 +1030,7 @@
     case K_CLOB:

     case K_COMMIT:

     case K_CONSTANT:

+    case K_CONSTRUCTOR:

     case K_CURRENT_USER:

     case K_DATE:

     case K_DAY:

@@ -1063,11 +1082,13 @@
     case K_RECORD:

     case K_REF:

     case K_REPLACE:

+    case K_RESULT:

     case K_RESULT_CACHE:

     case K_RETURN:

     case K_ROWID:

     case K_ROWS:

     case K_SECOND:

+    case K_SELF:

     case K_SET:

     case K_SIGNTYPE:

     case K_SIMPLE_DOUBLE:

@@ -1148,6 +1169,7 @@
       case K_CLOB:

       case K_COMMIT:

       case K_CONSTANT:

+      case K_CONSTRUCTOR:

       case K_CURRENT_USER:

       case K_DATE:

       case K_DAY:

@@ -1199,11 +1221,13 @@
       case K_RECORD:

       case K_REF:

       case K_REPLACE:

+      case K_RESULT:

       case K_RESULT_CACHE:

       case K_RETURN:

       case K_ROWID:

       case K_ROWS:

       case K_SECOND:

+      case K_SELF:

       case K_SET:

       case K_SIGNTYPE:

       case K_SIMPLE_DOUBLE:

@@ -1290,6 +1314,20 @@
     throw new Error("Missing return statement in function");

   }

 

+  final public void constructorDeclaration() throws ParseException {

+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

+    case K_CONSTRUCTOR:

+      jj_consume_token(K_CONSTRUCTOR);

+      skipToReturn();

+      jj_consume_token(K_SELF);

+      jj_consume_token(R_AS);

+      jj_consume_token(K_RESULT);

+      break;

+    default:

+      ;

+    }

+  }

+

   final public void uniqList() throws ParseException {

     OracleObjectName();

     label_2:

@@ -1387,6 +1425,7 @@
       case K_CLOB:

       case K_COMMIT:

       case K_CONSTANT:

+      case K_CONSTRUCTOR:

       case K_CURRENT_USER:

       case K_DATE:

       case K_DAY:

@@ -1438,11 +1477,13 @@
       case K_RECORD:

       case K_REF:

       case K_REPLACE:

+      case K_RESULT:

       case K_RESULT_CACHE:

       case K_RETURN:

       case K_ROWID:

       case K_ROWS:

       case K_SECOND:

+      case K_SELF:

       case K_SET:

       case K_SIGNTYPE:

       case K_SIMPLE_DOUBLE:

@@ -2340,6 +2381,7 @@
       case K_CLOB:

       case K_COMMIT:

       case K_CONSTANT:

+      case K_CONSTRUCTOR:

       case K_CURRENT_USER:

       case K_DATE:

       case K_DAY:

@@ -2391,11 +2433,13 @@
       case K_RECORD:

       case K_REF:

       case K_REPLACE:

+      case K_RESULT:

       case K_RESULT_CACHE:

       case K_RETURN:

       case K_ROWID:

       case K_ROWS:

       case K_SECOND:

+      case K_SELF:

       case K_SET:

       case K_SIGNTYPE:

       case K_SIMPLE_DOUBLE:

@@ -3377,6 +3421,19 @@
       }

   }

 

+  final public void skipToReturn() throws ParseException {

+        Token t = getNextToken();

+        while (t.kind != K_RETURN) {

+                t = getNextToken();

+        }

+  }

+

+  final public void constructor() throws ParseException {

+     Token t = token;

+    jj_consume_token(K_CONSTRUCTOR);

+    token = t;

+  }

+

   private boolean jj_2_1(int xla) {

     jj_la = xla; jj_lastpos = jj_scanpos = token;

     try { return !jj_3_1(); }

@@ -3467,50 +3524,19 @@
     catch(LookaheadSuccess ls) { return true; }

   }

 

-  private boolean jj_3_11() {

-    if (jj_3R_15()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_90() {

-    if (jj_scan_token(O_COMMA)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_27() {

-    if (jj_scan_token(K_RAW)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_68()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_55() {

-    if (jj_scan_token(K_NVARCHAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_83()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_65() {

-    if (jj_3R_12()) return true;

-    return false;

-  }

-

   private boolean jj_3R_14() {

     if (jj_scan_token(R_ANCHORED_ROWTYPE)) return true;

     return false;

   }

 

-  private boolean jj_3_2() {

-    if (jj_3R_7()) return true;

+  private boolean jj_3R_77() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_81() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

+  private boolean jj_3R_6() {

+    if (jj_scan_token(K_CONSTRUCTOR)) return true;

     return false;

   }

 

@@ -3519,34 +3545,29 @@
     return false;

   }

 

-  private boolean jj_3R_18() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_2()) {

-    jj_scanpos = xsp;

-    if (jj_3R_65()) return true;

-    }

-    return false;

-  }

-

   private boolean jj_3R_13() {

     if (jj_scan_token(R_ANCHORED_TYPE)) return true;

     return false;

   }

 

-  private boolean jj_3R_60() {

+  private boolean jj_3_2() {

+    if (jj_3R_7()) return true;

+    return false;

+  }

+

+  private boolean jj_3R_59() {

     if (jj_scan_token(K_VARYING)) return true;

     if (jj_scan_token(K_ARRAY)) return true;

     return false;

   }

 

-  private boolean jj_3R_26() {

+  private boolean jj_3R_24() {

     if (jj_scan_token(K_LONG)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(188)) jj_scanpos = xsp;

+    if (jj_scan_token(189)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_67()) jj_scanpos = xsp;

+    if (jj_3R_63()) jj_scanpos = xsp;

     return false;

   }

 

@@ -3571,17 +3592,17 @@
     return false;

   }

 

-  private boolean jj_3R_54() {

+  private boolean jj_3R_52() {

     if (jj_scan_token(K_NCHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(213)) jj_scanpos = xsp;

+    if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_82()) jj_scanpos = xsp;

+    if (jj_3R_78()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_79() {

+  private boolean jj_3R_75() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

@@ -3601,31 +3622,31 @@
   private boolean jj_3R_10() {

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(212)) {

+    if (jj_scan_token(215)) {

     jj_scanpos = xsp;

-    if (jj_3R_60()) return true;

+    if (jj_3R_59()) return true;

     }

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_77() {

+  private boolean jj_3R_73() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_53() {

+  private boolean jj_3R_51() {

     if (jj_scan_token(K_CHARACTER)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(213)) jj_scanpos = xsp;

+    if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_81()) jj_scanpos = xsp;

+    if (jj_3R_77()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_89() {

+  private boolean jj_3R_87() {

     Token xsp;

     xsp = jj_scanpos;

     if (jj_scan_token(9)) {

@@ -3635,69 +3656,81 @@
     return false;

   }

 

-  private boolean jj_3R_80() {

+  private boolean jj_3R_76() {

     if (jj_scan_token(K_CHARACTER)) return true;

     if (jj_scan_token(K_SET)) return true;

     return false;

   }

 

-  private boolean jj_3R_61() {

+  private boolean jj_3R_60() {

     if (jj_scan_token(O_DOT)) return true;

     return false;

   }

 

-  private boolean jj_3R_52() {

+  private boolean jj_3R_50() {

     if (jj_scan_token(K_VARCHAR2)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(213)) jj_scanpos = xsp;

+    if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_79()) jj_scanpos = xsp;

+    if (jj_3R_75()) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_80()) jj_scanpos = xsp;

+    if (jj_3R_76()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_6() {

-    if (jj_3R_17()) return true;

-    if (jj_3R_18()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_75() {

+  private boolean jj_3R_71() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_78() {

+  private boolean jj_3R_74() {

     if (jj_scan_token(K_CHARACTER)) return true;

     if (jj_scan_token(K_SET)) return true;

     return false;

   }

 

-  private boolean jj_3R_66() {

+  private boolean jj_3R_62() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_89()) jj_scanpos = xsp;

+    if (jj_3R_87()) jj_scanpos = xsp;

     while (true) {

       xsp = jj_scanpos;

-      if (jj_3R_90()) { jj_scanpos = xsp; break; }

+      if (jj_3R_88()) { jj_scanpos = xsp; break; }

     }

     if (jj_scan_token(O_CLOSEPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_51() {

+  private boolean jj_3R_49() {

     if (jj_scan_token(K_VARCHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(213)) jj_scanpos = xsp;

+    if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_77()) jj_scanpos = xsp;

+    if (jj_3R_73()) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_78()) jj_scanpos = xsp;

+    if (jj_3R_74()) jj_scanpos = xsp;

+    return false;

+  }

+

+  private boolean jj_3R_23() {

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_scan_token(171)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(172)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(147)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(146)) return true;

+    }

+    }

+    }

+    xsp = jj_scanpos;

+    if (jj_3R_62()) jj_scanpos = xsp;

     return false;

   }

 

@@ -3706,53 +3739,35 @@
     return false;

   }

 

-  private boolean jj_3R_25() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_scan_token(170)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(171)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(146)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(145)) return true;

-    }

-    }

-    }

-    xsp = jj_scanpos;

-    if (jj_3R_66()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_24() {

+  private boolean jj_3R_22() {

     if (jj_scan_token(K_SIGNTYPE)) return true;

     return false;

   }

 

-  private boolean jj_3R_23() {

+  private boolean jj_3R_21() {

     if (jj_scan_token(K_POSITIVE)) return true;

     return false;

   }

 

-  private boolean jj_3R_22() {

+  private boolean jj_3R_20() {

     if (jj_scan_token(K_NATURAL)) return true;

     return false;

   }

 

   private boolean jj_3R_12() {

-    if (jj_3R_17()) return true;

+    if (jj_3R_57()) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_61()) jj_scanpos = xsp;

+    if (jj_3R_60()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_21() {

+  private boolean jj_3R_19() {

     if (jj_scan_token(K_BINARY_DOUBLE)) return true;

     return false;

   }

 

-  private boolean jj_3R_20() {

+  private boolean jj_3R_18() {

     if (jj_scan_token(K_BINARY_FLOAT)) return true;

     return false;

   }

@@ -3762,7 +3777,7 @@
     return false;

   }

 

-  private boolean jj_3R_19() {

+  private boolean jj_3R_17() {

     if (jj_scan_token(K_BINARY_INTEGER)) return true;

     return false;

   }

@@ -3770,6 +3785,10 @@
   private boolean jj_3R_7() {

     Token xsp;

     xsp = jj_scanpos;

+    if (jj_3R_17()) {

+    jj_scanpos = xsp;

+    if (jj_3R_18()) {

+    jj_scanpos = xsp;

     if (jj_3R_19()) {

     jj_scanpos = xsp;

     if (jj_3R_20()) {

@@ -3844,11 +3863,7 @@
     jj_scanpos = xsp;

     if (jj_3R_55()) {

     jj_scanpos = xsp;

-    if (jj_3R_56()) {

-    jj_scanpos = xsp;

-    if (jj_3R_57()) {

-    jj_scanpos = xsp;

-    if (jj_3R_58()) return true;

+    if (jj_3R_56()) return true;

     }

     }

     }

@@ -3891,78 +3906,78 @@
     return false;

   }

 

-  private boolean jj_3R_76() {

+  private boolean jj_3R_72() {

     if (jj_scan_token(K_CHARACTER)) return true;

     if (jj_scan_token(K_SET)) return true;

     return false;

   }

 

-  private boolean jj_3R_74() {

+  private boolean jj_3R_70() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_64() {

+  private boolean jj_3R_83() {

     if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;

     return false;

   }

 

-  private boolean jj_3R_63() {

+  private boolean jj_3R_82() {

     if (jj_scan_token(S_IDENTIFIER)) return true;

     return false;

   }

 

-  private boolean jj_3R_50() {

+  private boolean jj_3R_48() {

     if (jj_scan_token(K_CHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(213)) jj_scanpos = xsp;

+    if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_75()) jj_scanpos = xsp;

+    if (jj_3R_71()) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_76()) jj_scanpos = xsp;

+    if (jj_3R_72()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_49() {

+  private boolean jj_3R_47() {

     if (jj_scan_token(K_DOUBLE)) return true;

     if (jj_scan_token(K_PRECISION)) return true;

     return false;

   }

 

-  private boolean jj_3R_17() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_15()) {

-    jj_scanpos = xsp;

-    if (jj_3R_63()) {

-    jj_scanpos = xsp;

-    if (jj_3R_64()) return true;

-    }

-    }

-    return false;

-  }

-

   private boolean jj_3_15() {

     if (jj_3R_16()) return true;

     return false;

   }

 

-  private boolean jj_3R_62() {

+  private boolean jj_3R_57() {

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3_15()) {

+    jj_scanpos = xsp;

+    if (jj_3R_82()) {

+    jj_scanpos = xsp;

+    if (jj_3R_83()) return true;

+    }

+    }

+    return false;

+  }

+

+  private boolean jj_3R_61() {

     if (jj_scan_token(K_OUT)) return true;

     return false;

   }

 

-  private boolean jj_3R_48() {

+  private boolean jj_3R_46() {

     if (jj_scan_token(K_UROWID)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_74()) jj_scanpos = xsp;

+    if (jj_3R_70()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_47() {

+  private boolean jj_3R_45() {

     if (jj_scan_token(K_ROWID)) return true;

     return false;

   }

@@ -3980,25 +3995,25 @@
     return false;

   }

 

-  private boolean jj_3R_46() {

+  private boolean jj_3R_44() {

     if (jj_scan_token(K_BFILE)) return true;

     return false;

   }

 

-  private boolean jj_3R_45() {

+  private boolean jj_3R_43() {

     if (jj_scan_token(K_NCLOB)) return true;

     return false;

   }

 

-  private boolean jj_3R_59() {

+  private boolean jj_3R_58() {

     Token xsp;

     xsp = jj_scanpos;

     if (jj_3_4()) jj_scanpos = xsp;

-    if (jj_3R_86()) return true;

+    if (jj_3R_84()) return true;

     return false;

   }

 

-  private boolean jj_3R_44() {

+  private boolean jj_3R_42() {

     if (jj_scan_token(K_BLOB)) return true;

     return false;

   }

@@ -4008,12 +4023,12 @@
     return false;

   }

 

-  private boolean jj_3R_43() {

+  private boolean jj_3R_41() {

     if (jj_scan_token(K_SYS_REFCURSOR)) return true;

     return false;

   }

 

-  private boolean jj_3R_42() {

+  private boolean jj_3R_40() {

     if (jj_scan_token(K_SIMPLE_DOUBLE)) return true;

     return false;

   }

@@ -4023,54 +4038,54 @@
     xsp = jj_scanpos;

     if (jj_3_14()) {

     jj_scanpos = xsp;

-    if (jj_3R_62()) return true;

+    if (jj_3R_61()) return true;

     }

     return false;

   }

 

-  private boolean jj_3R_41() {

+  private boolean jj_3R_39() {

     if (jj_scan_token(K_SIMPLE_FLOAT)) return true;

     return false;

   }

 

-  private boolean jj_3R_40() {

+  private boolean jj_3R_38() {

     if (jj_scan_token(K_SIMPLE_INTEGER)) return true;

     return false;

   }

 

-  private boolean jj_3R_87() {

+  private boolean jj_3R_85() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_39() {

+  private boolean jj_3R_37() {

     if (jj_scan_token(K_PLS_INTEGER)) return true;

     return false;

   }

 

-  private boolean jj_3R_73() {

+  private boolean jj_3R_69() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_38() {

+  private boolean jj_3R_36() {

     if (jj_scan_token(K_MLSLABEL)) return true;

     return false;

   }

 

-  private boolean jj_3R_37() {

+  private boolean jj_3R_35() {

     if (jj_scan_token(K_REAL)) return true;

     return false;

   }

 

   private boolean jj_3R_8() {

-    if (jj_3R_17()) return true;

+    if (jj_3R_57()) return true;

     Token xsp;

     xsp = jj_scanpos;

     if (jj_3_5()) {

     jj_scanpos = xsp;

-    if (jj_3R_59()) return true;

+    if (jj_3R_58()) return true;

     }

     return false;

   }

@@ -4080,36 +4095,36 @@
     return false;

   }

 

-  private boolean jj_3R_36() {

+  private boolean jj_3R_34() {

     if (jj_scan_token(K_FLOAT)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_73()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_35() {

-    if (jj_scan_token(K_SMALLINT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_34() {

-    if (jj_scan_token(K_INT)) return true;

+    if (jj_3R_69()) jj_scanpos = xsp;

     return false;

   }

 

   private boolean jj_3R_33() {

+    if (jj_scan_token(K_SMALLINT)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_32() {

+    if (jj_scan_token(K_INT)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_31() {

     if (jj_scan_token(K_INTEGER)) return true;

     return false;

   }

 

-  private boolean jj_3R_71() {

+  private boolean jj_3R_67() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_88() {

+  private boolean jj_3R_86() {

     if (jj_3R_12()) return true;

     return false;

   }

@@ -4119,84 +4134,84 @@
     return false;

   }

 

-  private boolean jj_3R_92() {

+  private boolean jj_3R_90() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_85() {

+  private boolean jj_3R_81() {

     if (jj_scan_token(K_CHARACTER)) return true;

     if (jj_scan_token(K_SET)) return true;

     return false;

   }

 

-  private boolean jj_3R_72() {

+  private boolean jj_3R_68() {

     if (jj_scan_token(R_WITH)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_scan_token(161)) jj_scanpos = xsp;

+    if (jj_scan_token(162)) jj_scanpos = xsp;

     if (jj_scan_token(K_TIME)) return true;

     return false;

   }

 

-  private boolean jj_3R_86() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_6()) {

-    jj_scanpos = xsp;

-    if (jj_3R_88()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_32() {

-    if (jj_scan_token(K_TIMESTAMP)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_71()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_72()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_31() {

-    if (jj_scan_token(K_TIME)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_70() {

-    if (jj_scan_token(K_YEAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_92()) jj_scanpos = xsp;

-    if (jj_scan_token(R_TO)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_58() {

-    if (jj_scan_token(K_CLOB)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_85()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_91() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    return false;

-  }

-

   private boolean jj_3R_84() {

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3_6()) {

+    jj_scanpos = xsp;

+    if (jj_3R_86()) return true;

+    }

+    return false;

+  }

+

+  private boolean jj_3R_30() {

+    if (jj_scan_token(K_TIMESTAMP)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_67()) jj_scanpos = xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_68()) jj_scanpos = xsp;

+    return false;

+  }

+

+  private boolean jj_3R_29() {

+    if (jj_scan_token(K_TIME)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_66() {

+    if (jj_scan_token(K_YEAR)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_90()) jj_scanpos = xsp;

+    if (jj_scan_token(R_TO)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_56() {

+    if (jj_scan_token(K_CLOB)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_81()) jj_scanpos = xsp;

+    return false;

+  }

+

+  private boolean jj_3R_89() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_80() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_69() {

+  private boolean jj_3R_65() {

     if (jj_scan_token(K_DAY)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_91()) jj_scanpos = xsp;

+    if (jj_3R_89()) jj_scanpos = xsp;

     if (jj_scan_token(R_TO)) return true;

     return false;

   }

@@ -4207,7 +4222,7 @@
     return false;

   }

 

-  private boolean jj_3R_57() {

+  private boolean jj_3R_55() {

     if (jj_scan_token(K_NATIONAL)) return true;

     Token xsp;

     xsp = jj_scanpos;

@@ -4216,9 +4231,56 @@
     if (jj_scan_token(137)) return true;

     }

     xsp = jj_scanpos;

-    if (jj_scan_token(213)) jj_scanpos = xsp;

+    if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_87()) jj_scanpos = xsp;

+    if (jj_3R_85()) jj_scanpos = xsp;

+    return false;

+  }

+

+  private boolean jj_3R_28() {

+    if (jj_scan_token(K_INTERVAL)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_65()) {

+    jj_scanpos = xsp;

+    if (jj_3R_66()) return true;

+    }

+    return false;

+  }

+

+  private boolean jj_3R_79() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    if (jj_scan_token(S_NUMBER)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_27() {

+    if (jj_scan_token(K_DATE)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_26() {

+    if (jj_scan_token(K_BOOLEAN)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_64() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    if (jj_scan_token(S_NUMBER)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_54() {

+    if (jj_scan_token(K_NVARCHAR2)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_80()) jj_scanpos = xsp;

+    return false;

+  }

+

+  private boolean jj_3R_78() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

@@ -4399,147 +4461,135 @@
     jj_scanpos = xsp;

     if (jj_scan_token(214)) {

     jj_scanpos = xsp;

-    if (jj_scan_token(215)) return true;

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    return false;

-  }

-

-  private boolean jj_3R_30() {

-    if (jj_scan_token(K_INTERVAL)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_69()) {

+    if (jj_scan_token(215)) {

     jj_scanpos = xsp;

-    if (jj_3R_70()) return true;

+    if (jj_scan_token(216)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(217)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(218)) return true;

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

+    }

     }

     return false;

   }

 

-  private boolean jj_3R_83() {

+  private boolean jj_3R_63() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_29() {

-    if (jj_scan_token(K_DATE)) return true;

+  private boolean jj_3_11() {

+    if (jj_3R_15()) return true;

     return false;

   }

 

-  private boolean jj_3R_28() {

-    if (jj_scan_token(K_BOOLEAN)) return true;

+  private boolean jj_3R_88() {

+    if (jj_scan_token(O_COMMA)) return true;

     return false;

   }

 

-  private boolean jj_3R_68() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_56() {

-    if (jj_scan_token(K_NVARCHAR2)) return true;

+  private boolean jj_3R_25() {

+    if (jj_scan_token(K_RAW)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_84()) jj_scanpos = xsp;

+    if (jj_3R_64()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_82() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_67() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

+  private boolean jj_3R_53() {

+    if (jj_scan_token(K_NVARCHAR)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_79()) jj_scanpos = xsp;

     return false;

   }

 

diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
index 6dd2682..fbdab47 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
@@ -308,6 +308,7 @@
     | <K_CLOB: "CLOB">

     | <K_COMMIT: "COMMIT">

     | <K_CONSTANT: "CONSTANT">

+    | <K_CONSTRUCTOR: "CONSTRUCTOR">

     | <K_CURRENT_USER: "CURRENT_USER">

     | <K_DATE :"DATE">

     | <K_DAY: "DAY">

@@ -359,11 +360,13 @@
     | <K_RECORD: "RECORD">

     | <K_REF: "REF">

     | <K_REPLACE: "REPLACE">

+    | <K_RESULT: "RESULT">

     | <K_RESULT_CACHE: "RESULT_CACHE">

     | <K_RETURN: "RETURN">

     | <K_ROWID:"ROWID">

     | <K_ROWS: "ROWS">

     | <K_SECOND: "SECOND">

+    | <K_SELF: "SELF">

     | <K_SET: "SET">

     | <K_SIGNTYPE: "SIGNTYPE">

     | <K_SIMPLE_DOUBLE:"SIMPLE_DOUBLE">

@@ -402,6 +405,7 @@
       | t=<K_CLOB>

       | t=<K_COMMIT>      

       | t=<K_CONSTANT>

+      | t=<K_CONSTRUCTOR>

       | t=<K_CURRENT_USER>

       | t=<K_DATE>

       | t=<K_DAY>

@@ -453,11 +457,13 @@
       | t=<K_RECORD>

       | t=<K_REF>

       | t=<K_REPLACE>

+      | t=<K_RESULT>

       | t=<K_RESULT_CACHE>

       | t=<K_RETURN>

       | t=<K_ROWID>

       | t=<K_ROWS>

       | t=<K_SECOND>

+      | t=<K_SELF>

       | t=<K_SET>

       | t=<K_SIGNTYPE>

       | t=<K_SIMPLE_DOUBLE>

@@ -645,7 +651,7 @@
                 databaseType = new ObjectType(typeName);

                 if (schema != null) {

                     ((ObjectType)databaseType).setSchema(schema);
                }

-            } columnDeclarations(databaseType) <O_CLOSEPAREN>

+            } columnDeclarations(databaseType) constructorDeclaration() <O_CLOSEPAREN>

           | <K_VARRAY> <O_OPENPAREN> vsize=<S_NUMBER> <O_CLOSEPAREN> <R_OF>

             {
                databaseType = new VArrayType(typeName);

                 if (schema != null) {

@@ -675,7 +681,7 @@
 void columnDeclarations(CompositeDatabaseType enclosingType):

 {}

 {

-    (LOOKAHEAD(2) columnDeclaration(enclosingType) | constraintDeclaration(enclosingType) )

+    (LOOKAHEAD(2) constructor() | columnDeclaration(enclosingType) | constraintDeclaration(enclosingType) )

     [ <O_COMMA> columnDeclarations(enclosingType) ]

 }

 

@@ -772,6 +778,12 @@
     }

 }

 

+void constructorDeclaration():

+{}

+{

+  [ <K_CONSTRUCTOR> skipToReturn() <K_SELF><R_AS><K_RESULT> ]

+}

+

 void uniqList():

 {}

 {

@@ -1800,5 +1812,24 @@
           t = getNextToken();

       }

   }

+}

 

+void skipToReturn():

+{}

+{

+    {

+        Token t = getNextToken();

+        while (t.kind != K_RETURN) {

+                t = getNextToken();

+        }

+    }

+}

+

+void constructor():

+{    Token t = token;

+}

+{
    < K_CONSTRUCTOR >

+    {
      

+    token = t;

+  }

 }
\ No newline at end of file
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
index afe3999..0514429 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
@@ -304,6 +304,7 @@
     | <K_CLOB: "CLOB">

     | <K_COMMIT: "COMMIT">

     | <K_CONSTANT: "CONSTANT">

+    | <K_CONSTRUCTOR: "CONSTRUCTOR">

     | <K_CURRENT_USER: "CURRENT_USER">

     | <K_DATE :"DATE">

     | <K_DAY: "DAY">

@@ -355,11 +356,13 @@
     | <K_RECORD: "RECORD">

     | <K_REF: "REF">

     | <K_REPLACE: "REPLACE">

+    | <K_RESULT: "RESULT">

     | <K_RESULT_CACHE: "RESULT_CACHE">

     | <K_RETURN: "RETURN">

     | <K_ROWID:"ROWID">

     | <K_ROWS: "ROWS">

     | <K_SECOND: "SECOND">

+    | <K_SELF: "SELF">

     | <K_SET: "SET">

     | <K_SIGNTYPE: "SIGNTYPE">

     | <K_SIMPLE_DOUBLE:"SIMPLE_DOUBLE">

@@ -398,6 +401,7 @@
       | t=<K_CLOB>

       | t=<K_COMMIT>      

       | t=<K_CONSTANT>

+      | t=<K_CONSTRUCTOR>

       | t=<K_CURRENT_USER>

       | t=<K_DATE>

       | t=<K_DAY>

@@ -449,11 +453,13 @@
       | t=<K_RECORD>

       | t=<K_REF>

       | t=<K_REPLACE>

+      | t=<K_RESULT>

       | t=<K_RESULT_CACHE>

       | t=<K_RETURN>

       | t=<K_ROWID>

       | t=<K_ROWS>

       | t=<K_SECOND>

+      | t=<K_SELF>

       | t=<K_SET>

       | t=<K_SIGNTYPE>

       | t=<K_SIMPLE_DOUBLE>

@@ -641,7 +647,7 @@
                 databaseType = new ObjectType(typeName);

                 if (schema != null) {

                     ((ObjectType)databaseType).setSchema(schema);
                }

-            } columnDeclarations(databaseType) <O_CLOSEPAREN>

+            } columnDeclarations(databaseType) constructorDeclaration() <O_CLOSEPAREN>

           | <K_VARRAY> <O_OPENPAREN> vsize=<S_NUMBER> <O_CLOSEPAREN> <R_OF>

             {
                databaseType = new VArrayType(typeName);

                 if (schema != null) {

@@ -671,7 +677,7 @@
 void columnDeclarations(CompositeDatabaseType enclosingType):

 {}

 {

-    (LOOKAHEAD(2) columnDeclaration(enclosingType) | constraintDeclaration(enclosingType) )

+    (LOOKAHEAD(2) constructor() | columnDeclaration(enclosingType) | constraintDeclaration(enclosingType) )

     [ <O_COMMA> columnDeclarations(enclosingType) ]

 }

 

@@ -768,6 +774,12 @@
     }

 }

 

+void constructorDeclaration():

+{}

+{

+  [ <K_CONSTRUCTOR> skipToReturn() <K_SELF><R_AS><K_RESULT> ]

+}

+

 void uniqList():

 {}

 {

@@ -1796,5 +1808,24 @@
           t = getNextToken();

       }

   }

+}

 

+void skipToReturn():

+{}

+{

+    {

+        Token t = getNextToken();

+        while (t.kind != K_RETURN) {

+                t = getNextToken();

+        }

+    }

+}

+

+void constructor():

+{    Token t = token;

+}

+{
    < K_CONSTRUCTOR >

+    {
      

+    token = t;

+  }

 }
\ No newline at end of file
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserConstants.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserConstants.java
index e927d03..56a329f 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserConstants.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserConstants.java
@@ -296,165 +296,171 @@
   /** RegularExpression Id. */

   int K_CONSTANT = 141;

   /** RegularExpression Id. */

-  int K_CURRENT_USER = 142;

+  int K_CONSTRUCTOR = 142;

   /** RegularExpression Id. */

-  int K_DATE = 143;

+  int K_CURRENT_USER = 143;

   /** RegularExpression Id. */

-  int K_DAY = 144;

+  int K_DATE = 144;

   /** RegularExpression Id. */

-  int K_DEC = 145;

+  int K_DAY = 145;

   /** RegularExpression Id. */

-  int K_DECIMAL = 146;

+  int K_DEC = 146;

   /** RegularExpression Id. */

-  int K_DEFINER = 147;

+  int K_DECIMAL = 147;

   /** RegularExpression Id. */

-  int K_DELETE = 148;

+  int K_DEFINER = 148;

   /** RegularExpression Id. */

-  int K_DETERMINISTIC = 149;

+  int K_DELETE = 149;

   /** RegularExpression Id. */

-  int K_DOUBLE = 150;

+  int K_DETERMINISTIC = 150;

   /** RegularExpression Id. */

-  int K_ENABLE = 151;

+  int K_DOUBLE = 151;

   /** RegularExpression Id. */

-  int K_FINAL = 152;

+  int K_ENABLE = 152;

   /** RegularExpression Id. */

-  int K_FLOAT = 153;

+  int K_FINAL = 153;

   /** RegularExpression Id. */

-  int K_FORCE = 154;

+  int K_FLOAT = 154;

   /** RegularExpression Id. */

-  int K_GLOBAL = 155;

+  int K_FORCE = 155;

   /** RegularExpression Id. */

-  int K_INSTANTIABLE = 156;

+  int K_GLOBAL = 156;

   /** RegularExpression Id. */

-  int K_INT = 157;

+  int K_INSTANTIABLE = 157;

   /** RegularExpression Id. */

-  int K_INTEGER = 158;

+  int K_INT = 158;

   /** RegularExpression Id. */

-  int K_INTERVAL = 159;

+  int K_INTEGER = 159;

   /** RegularExpression Id. */

-  int K_KEY = 160;

+  int K_INTERVAL = 160;

   /** RegularExpression Id. */

-  int K_LOCAL = 161;

+  int K_KEY = 161;

   /** RegularExpression Id. */

-  int K_LONG = 162;

+  int K_LOCAL = 162;

   /** RegularExpression Id. */

-  int K_MLSLABEL = 163;

+  int K_LONG = 163;

   /** RegularExpression Id. */

-  int K_MONTH = 164;

+  int K_MLSLABEL = 164;

   /** RegularExpression Id. */

-  int K_NATIONAL = 165;

+  int K_MONTH = 165;

   /** RegularExpression Id. */

-  int K_NATURAL = 166;

+  int K_NATIONAL = 166;

   /** RegularExpression Id. */

-  int K_NCHAR = 167;

+  int K_NATURAL = 167;

   /** RegularExpression Id. */

-  int K_NCLOB = 168;

+  int K_NCHAR = 168;

   /** RegularExpression Id. */

-  int K_NOCOPY = 169;

+  int K_NCLOB = 169;

   /** RegularExpression Id. */

-  int K_NUMBER = 170;

+  int K_NOCOPY = 170;

   /** RegularExpression Id. */

-  int K_NUMERIC = 171;

+  int K_NUMBER = 171;

   /** RegularExpression Id. */

-  int K_NVARCHAR2 = 172;

+  int K_NUMERIC = 172;

   /** RegularExpression Id. */

-  int K_NVARCHAR = 173;

+  int K_NVARCHAR2 = 173;

   /** RegularExpression Id. */

-  int K_OBJECT = 174;

+  int K_NVARCHAR = 174;

   /** RegularExpression Id. */

-  int K_OID = 175;

+  int K_OBJECT = 175;

   /** RegularExpression Id. */

-  int K_ORGANIZATION = 176;

+  int K_OID = 176;

   /** RegularExpression Id. */

-  int K_OUT = 177;

+  int K_ORGANIZATION = 177;

   /** RegularExpression Id. */

-  int K_OVERFLOW = 178;

+  int K_OUT = 178;

   /** RegularExpression Id. */

-  int K_PACKAGE = 179;

+  int K_OVERFLOW = 179;

   /** RegularExpression Id. */

-  int K_PARALLEL_ENABLE = 180;

+  int K_PACKAGE = 180;

+  /** RegularExpression Id. */

+  int K_PARALLEL_ENABLE = 181;

+  /** RegularExpression Id. */

+  int K_PIPELINED = 182;

+  /** RegularExpression Id. */

+  int K_PLS_INTEGER = 183;

   /** RegularExpression Id. */

-  int K_PIPELINED = 181;

+  int K_POSITIVE = 184;

   /** RegularExpression Id. */

-  int K_PLS_INTEGER = 182;

+  int K_PRAGMA = 185;

   /** RegularExpression Id. */

-  int K_POSITIVE = 183;

+  int K_PRECISION = 186;

   /** RegularExpression Id. */

-  int K_PRAGMA = 184;

+  int K_PRESERVE = 187;

   /** RegularExpression Id. */

-  int K_PRECISION = 185;

+  int K_RANGE = 188;

   /** RegularExpression Id. */

-  int K_PRESERVE = 186;

+  int K_RAW = 189;

   /** RegularExpression Id. */

-  int K_RANGE = 187;

+  int K_REAL = 190;

   /** RegularExpression Id. */

-  int K_RAW = 188;

+  int K_RECORD = 191;

   /** RegularExpression Id. */

-  int K_REAL = 189;

+  int K_REF = 192;

   /** RegularExpression Id. */

-  int K_RECORD = 190;

+  int K_REPLACE = 193;

   /** RegularExpression Id. */

-  int K_REF = 191;

+  int K_RESULT = 194;

   /** RegularExpression Id. */

-  int K_REPLACE = 192;

+  int K_RESULT_CACHE = 195;

   /** RegularExpression Id. */

-  int K_RESULT_CACHE = 193;

+  int K_RETURN = 196;

   /** RegularExpression Id. */

-  int K_RETURN = 194;

+  int K_ROWID = 197;

   /** RegularExpression Id. */

-  int K_ROWID = 195;

+  int K_ROWS = 198;

   /** RegularExpression Id. */

-  int K_ROWS = 196;

+  int K_SECOND = 199;

   /** RegularExpression Id. */

-  int K_SECOND = 197;

+  int K_SELF = 200;

   /** RegularExpression Id. */

-  int K_SET = 198;

+  int K_SET = 201;

   /** RegularExpression Id. */

-  int K_SIGNTYPE = 199;

+  int K_SIGNTYPE = 202;

   /** RegularExpression Id. */

-  int K_SIMPLE_DOUBLE = 200;

+  int K_SIMPLE_DOUBLE = 203;

   /** RegularExpression Id. */

-  int K_SIMPLE_FLOAT = 201;

+  int K_SIMPLE_FLOAT = 204;

   /** RegularExpression Id. */

-  int K_SIMPLE_INTEGER = 202;

+  int K_SIMPLE_INTEGER = 205;

   /** RegularExpression Id. */

-  int K_SMALLINT = 203;

+  int K_SMALLINT = 206;

   /** RegularExpression Id. */

-  int K_STRING = 204;

+  int K_STRING = 207;

   /** RegularExpression Id. */

-  int K_SYS_REFCURSOR = 205;

+  int K_SYS_REFCURSOR = 208;

   /** RegularExpression Id. */

-  int K_TEMPORARY = 206;

+  int K_TEMPORARY = 209;

   /** RegularExpression Id. */

-  int K_TIME = 207;

+  int K_TIME = 210;

   /** RegularExpression Id. */

-  int K_TIMESTAMP = 208;

+  int K_TIMESTAMP = 211;

   /** RegularExpression Id. */

-  int K_UROWID = 209;

+  int K_UROWID = 212;

   /** RegularExpression Id. */

-  int K_VARCHAR2 = 210;

+  int K_VARCHAR2 = 213;

   /** RegularExpression Id. */

-  int K_VARCHAR = 211;

+  int K_VARCHAR = 214;

   /** RegularExpression Id. */

-  int K_VARRAY = 212;

+  int K_VARRAY = 215;

   /** RegularExpression Id. */

-  int K_VARYING = 213;

+  int K_VARYING = 216;

   /** RegularExpression Id. */

-  int K_YEAR = 214;

+  int K_YEAR = 217;

   /** RegularExpression Id. */

-  int K_ZONE = 215;

+  int K_ZONE = 218;

   /** RegularExpression Id. */

-  int S_IDENTIFIER = 216;

+  int S_IDENTIFIER = 219;

   /** RegularExpression Id. */

-  int LETTER = 217;

+  int LETTER = 220;

   /** RegularExpression Id. */

-  int SPECIAL_CHARS = 218;

+  int SPECIAL_CHARS = 221;

   /** RegularExpression Id. */

-  int S_BIND = 219;

+  int S_BIND = 222;

   /** RegularExpression Id. */

-  int S_CHAR_LITERAL = 220;

+  int S_CHAR_LITERAL = 223;

   /** RegularExpression Id. */

-  int S_QUOTED_IDENTIFIER = 221;

+  int S_QUOTED_IDENTIFIER = 224;

 

   /** Lexical state. */

   int DEFAULT = 0;

@@ -603,6 +609,7 @@
     "\"CLOB\"",

     "\"COMMIT\"",

     "\"CONSTANT\"",

+    "\"CONSTRUCTOR\"",

     "\"CURRENT_USER\"",

     "\"DATE\"",

     "\"DAY\"",

@@ -654,11 +661,13 @@
     "\"RECORD\"",

     "\"REF\"",

     "\"REPLACE\"",

+    "\"RESULT\"",

     "\"RESULT_CACHE\"",

     "\"RETURN\"",

     "\"ROWID\"",

     "\"ROWS\"",

     "\"SECOND\"",

+    "\"SELF\"",

     "\"SET\"",

     "\"SIGNTYPE\"",

     "\"SIMPLE_DOUBLE\"",

diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTokenManager.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTokenManager.java
index 81ad243..fd33d7b 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTokenManager.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTokenManager.java
@@ -176,93 +176,93 @@
       case 66:

          return jjMoveStringLiteralDfa1_0(0x3800000000000L, 0x0L, 0x1fcL, 0x0L);

       case 67:

-         return jjMoveStringLiteralDfa1_0(0x7ff4000000000000L, 0x0L, 0x7e00L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x7ff4000000000000L, 0x0L, 0xfe00L, 0x0L);

       case 68:

-         return jjMoveStringLiteralDfa1_0(0x8000000000000000L, 0xfL, 0x7f8000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x8000000000000000L, 0xfL, 0xff0000L, 0x0L);

       case 69:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xf0L, 0x800000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf0L, 0x1000000L, 0x0L);

       case 70:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xf00L, 0x7000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf00L, 0xe000000L, 0x0L);

       case 71:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7000L, 0x8000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7000L, 0x10000000L, 0x0L);

       case 72:

          return jjMoveStringLiteralDfa1_0(0x0L, 0x8000L, 0x0L, 0x0L);

       case 73:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1ff0000L, 0xf0000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1ff0000L, 0x1e0000000L, 0x0L);

       case 75:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x100000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x200000000L, 0x0L);

       case 76:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0x600000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0xc00000000L, 0x0L);

       case 77:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x18000000L, 0x1800000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x18000000L, 0x3000000000L, 0x0L);

       case 78:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1e0000000L, 0x3fe000000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1e0000000L, 0x7fc000000000L, 0x0L);

       case 79:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7e00000000L, 0x7c00000000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7e00000000L, 0xf800000000000L, 0x0L);

       case 80:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000000L, 0x7f8000000000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000000L, 0xff0000000000000L, 0x0L);

       case 82:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xc0000000000L, 0xf800000000000000L, 0x1fL);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0xc0000000000L, 0xf000000000000000L, 0x7fL);

       case 83:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000000L, 0x0L, 0x3fe0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000000L, 0x0L, 0x1ff80L);

       case 84:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7c000000000000L, 0x0L, 0x1c000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7c000000000000L, 0x0L, 0xe0000L);

       case 85:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x380000000000000L, 0x0L, 0x20000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x380000000000000L, 0x0L, 0x100000L);

       case 86:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x3c0000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x1e00000L);

       case 87:

          return jjMoveStringLiteralDfa1_0(0x0L, 0xe000000000000000L, 0x0L, 0x0L);

       case 89:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x400000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x2000000L);

       case 90:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x800000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x4000000L);

       case 97:

          return jjMoveStringLiteralDfa1_0(0x798000000000L, 0x0L, 0x3L, 0x0L);

       case 98:

          return jjMoveStringLiteralDfa1_0(0x3800000000000L, 0x0L, 0x1fcL, 0x0L);

       case 99:

-         return jjMoveStringLiteralDfa1_0(0x7ff4000000000000L, 0x0L, 0x7e00L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x7ff4000000000000L, 0x0L, 0xfe00L, 0x0L);

       case 100:

-         return jjMoveStringLiteralDfa1_0(0x8000000000000000L, 0xfL, 0x7f8000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x8000000000000000L, 0xfL, 0xff0000L, 0x0L);

       case 101:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xf0L, 0x800000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf0L, 0x1000000L, 0x0L);

       case 102:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xf00L, 0x7000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf00L, 0xe000000L, 0x0L);

       case 103:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7000L, 0x8000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7000L, 0x10000000L, 0x0L);

       case 104:

          return jjMoveStringLiteralDfa1_0(0x0L, 0x8000L, 0x0L, 0x0L);

       case 105:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1ff0000L, 0xf0000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1ff0000L, 0x1e0000000L, 0x0L);

       case 107:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x100000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x200000000L, 0x0L);

       case 108:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0x600000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0xc00000000L, 0x0L);

       case 109:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x18000000L, 0x1800000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x18000000L, 0x3000000000L, 0x0L);

       case 110:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1e0000000L, 0x3fe000000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1e0000000L, 0x7fc000000000L, 0x0L);

       case 111:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7e00000000L, 0x7c00000000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7e00000000L, 0xf800000000000L, 0x0L);

       case 112:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000000L, 0x7f8000000000000L, 0x0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000000L, 0xff0000000000000L, 0x0L);

       case 114:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xc0000000000L, 0xf800000000000000L, 0x1fL);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0xc0000000000L, 0xf000000000000000L, 0x7fL);

       case 115:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000000L, 0x0L, 0x3fe0L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000000L, 0x0L, 0x1ff80L);

       case 116:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7c000000000000L, 0x0L, 0x1c000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7c000000000000L, 0x0L, 0xe0000L);

       case 117:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x380000000000000L, 0x0L, 0x20000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x380000000000000L, 0x0L, 0x100000L);

       case 118:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x3c0000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x1e00000L);

       case 119:

          return jjMoveStringLiteralDfa1_0(0x0L, 0xe000000000000000L, 0x0L, 0x0L);

       case 121:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x400000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x2000000L);

       case 122:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x800000L);

+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x4000000L);

       case 124:

          return jjMoveStringLiteralDfa1_0(0x1000L, 0x0L, 0x0L, 0x0L);

       case 126:

@@ -319,15 +319,15 @@
          }

          break;

       case 65:

-         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x40c000000008000L, active2, 0x1818006000018000L, active3, 0x3c0000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x40c000000008000L, active2, 0x303000c000030000L, active3, 0x1e00000L);

       case 66:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x800000000000L, active3, 0L);

       case 67:

-         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0x18000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0x30000000000L, active3, 0L);

       case 68:

          return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);

       case 69:

-         return jjMoveStringLiteralDfa2_0(active0, 0x8001800000000000L, active1, 0x1c0000000103L, active2, 0xe0000001003e0000L, active3, 0x404067L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x8001800000000000L, active1, 0x1c0000000103L, active2, 0xc0000002007c0000L, active3, 0x202039fL);

       case 70:

          if ((active1 & 0x20000L) != 0L)

          {

@@ -343,11 +343,11 @@
       case 72:

          return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0x6010200000000000L, active2, 0x600L, active3, 0L);

       case 73:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x980040000a000004L, active2, 0x20800001000038L, active3, 0x18780L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x980040000a000004L, active2, 0x41000002000038L, active3, 0xc3c00L);

       case 76:

-         return jjMoveStringLiteralDfa2_0(active0, 0x60018000000000L, active1, 0x10L, active2, 0x4000080a000840L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x60018000000000L, active1, 0x10L, active2, 0x80001014000840L, active3, 0L);

       case 77:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x800L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000L);

       case 78:

          if ((active1 & 0x40000L) != 0L)

          {

@@ -359,14 +359,14 @@
             jjmatchedKind = 98;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x180000000f80020L, active2, 0xf0800000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x180000000f80020L, active2, 0x1e1000000L, active3, 0L);

       case 79:

          if ((active1 & 0x20000000000000L) != 0L)

          {

             jjmatchedKind = 117;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0xf80000000000000L, active1, 0xf4001200L, active2, 0x80021604403080L, active3, 0x800018L);

+         return jjMoveStringLiteralDfa2_0(active0, 0xf80000000000000L, active1, 0xf4001200L, active2, 0x100042c08807080L, active3, 0x4000060L);

       case 80:

          return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000800000000L, active2, 0L, active3, 0L);

       case 81:

@@ -377,7 +377,7 @@
             jjmatchedKind = 100;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0x3000020000000000L, active1, 0x1a000006408L, active2, 0x701000000000001L, active3, 0x20000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x3000020000000000L, active1, 0x1a000006408L, active2, 0xe02000000000001L, active3, 0x100000L);

       case 83:

          if ((active0 & 0x100000000000L) != 0L)

          {

@@ -396,11 +396,11 @@
             jjmatchedKind = 46;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0x1000000000000L, active2, 0L, active3, 0x1000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0x1000000000000L, active2, 0L, active3, 0x8000L);

       case 85:

-         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0x2020100000800L, active2, 0x20c0000004002L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0x2020100000800L, active2, 0x4180000008002L, active3, 0L);

       case 86:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000L, active2, 0x4300000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000L, active2, 0x8600000000000L, active3, 0L);

       case 88:

          return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0xc0L, active2, 0L, active3, 0L);

       case 89:

@@ -409,17 +409,17 @@
             jjmatchedKind = 49;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x40000000000000L, active2, 0x100L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x40000000000000L, active2, 0x100L, active3, 0x10000L);

       case 97:

-         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x40c000000008000L, active2, 0x1818006000018000L, active3, 0x3c0000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x40c000000008000L, active2, 0x303000c000030000L, active3, 0x1e00000L);

       case 98:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x800000000000L, active3, 0L);

       case 99:

-         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0x18000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0x30000000000L, active3, 0L);

       case 100:

          return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);

       case 101:

-         return jjMoveStringLiteralDfa2_0(active0, 0x8001800000000000L, active1, 0x1c0000000103L, active2, 0xe0000001003e0000L, active3, 0x404067L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x8001800000000000L, active1, 0x1c0000000103L, active2, 0xc0000002007c0000L, active3, 0x202039fL);

       case 102:

          if ((active1 & 0x20000L) != 0L)

          {

@@ -435,11 +435,11 @@
       case 104:

          return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0x6010200000000000L, active2, 0x600L, active3, 0L);

       case 105:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x980040000a000004L, active2, 0x20800001000038L, active3, 0x18780L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x980040000a000004L, active2, 0x41000002000038L, active3, 0xc3c00L);

       case 108:

-         return jjMoveStringLiteralDfa2_0(active0, 0x60018000000000L, active1, 0x10L, active2, 0x4000080a000840L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x60018000000000L, active1, 0x10L, active2, 0x80001014000840L, active3, 0L);

       case 109:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x800L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000L);

       case 110:

          if ((active1 & 0x40000L) != 0L)

          {

@@ -451,14 +451,14 @@
             jjmatchedKind = 98;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x180000000f80020L, active2, 0xf0800000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x180000000f80020L, active2, 0x1e1000000L, active3, 0L);

       case 111:

          if ((active1 & 0x20000000000000L) != 0L)

          {

             jjmatchedKind = 117;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0xf80000000000000L, active1, 0xf4001200L, active2, 0x80021604403080L, active3, 0x800018L);

+         return jjMoveStringLiteralDfa2_0(active0, 0xf80000000000000L, active1, 0xf4001200L, active2, 0x100042c08807080L, active3, 0x4000060L);

       case 112:

          return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000800000000L, active2, 0L, active3, 0L);

       case 113:

@@ -469,7 +469,7 @@
             jjmatchedKind = 100;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0x3000020000000000L, active1, 0x1a000006408L, active2, 0x701000000000001L, active3, 0x20000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x3000020000000000L, active1, 0x1a000006408L, active2, 0xe02000000000001L, active3, 0x100000L);

       case 115:

          if ((active0 & 0x100000000000L) != 0L)

          {

@@ -488,11 +488,11 @@
             jjmatchedKind = 46;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0x1000000000000L, active2, 0L, active3, 0x1000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0x1000000000000L, active2, 0L, active3, 0x8000L);

       case 117:

-         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0x2020100000800L, active2, 0x20c0000004002L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0x2020100000800L, active2, 0x4180000008002L, active3, 0L);

       case 118:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000L, active2, 0x4300000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000L, active2, 0x8600000000000L, active3, 0L);

       case 120:

          return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0xc0L, active2, 0L, active3, 0L);

       case 121:

@@ -501,7 +501,7 @@
             jjmatchedKind = 49;

             jjmatchedPos = 1;

          }

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x40000000000000L, active2, 0x100L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x40000000000000L, active2, 0x100L, active3, 0x10000L);

       case 124:

          if ((active0 & 0x1000L) != 0L)

          {

@@ -532,7 +532,7 @@
          }

          break;

       case 65:

-         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x2100300000800600L, active3, 0x400800L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x4200600001000600L, active3, 0x2004000L);

       case 66:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0xe020000000000L, active2, 0L, active3, 0L);

       case 67:

@@ -541,12 +541,12 @@
             jjmatchedKind = 45;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x20000L) != 0L)

+         else if ((active2 & 0x40000L) != 0L)

          {

-            jjmatchedKind = 145;

+            jjmatchedKind = 146;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, active1, 0x240000c0L, active2, 0x4008020200040000L, active3, 0x20L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, active1, 0x240000c0L, active2, 0x8010040400080000L, active3, 0x80L);

       case 68:

          if ((active0 & 0x80000000000L) != 0L)

          {

@@ -558,29 +558,29 @@
             jjmatchedKind = 69;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x800000000000L) != 0L)

+         else if ((active2 & 0x1000000000000L) != 0L)

          {

-            jjmatchedKind = 175;

+            jjmatchedKind = 176;

             jjmatchedPos = 2;

          }

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200002010180000L, active2, 0L, active3, 0L);

       case 69:

-         return jjMoveStringLiteralDfa3_0(active0, 0x2010000000000000L, active1, 0x7810004000010000L, active2, 0x604000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x2010000000000000L, active1, 0x7810004000010000L, active2, 0xc08000000000000L, active3, 0L);

       case 70:

-         if ((active2 & 0x8000000000000000L) != 0L)

+         if ((active3 & 0x1L) != 0L)

          {

-            jjmatchedKind = 191;

+            jjmatchedKind = 192;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L, active2, 0x80000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L, active2, 0x100000L, active3, 0L);

       case 71:

-         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x1000000000000L, active3, 0x80L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x2000000000000L, active3, 0x400L);

       case 72:

-         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x8000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x10000000000L, active3, 0L);

       case 73:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x180008000000000L, active2, 0x4L, active3, 0L);

       case 74:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x800000000000L, active3, 0L);

       case 75:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000000L, active2, 0L, active3, 0L);

       case 76:

@@ -594,73 +594,73 @@
             jjmatchedKind = 111;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000000L, active1, 0x400100100000000L, active2, 0x10000100000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000000L, active1, 0x400100100000000L, active2, 0x20000200000L, active3, 0x100L);

       case 77:

-         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0xc0000001000L, active3, 0x1c700L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0x180000001000L, active3, 0xe3800L);

       case 78:

-         return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, active1, 0x8000800L, active2, 0x800001401002038L, active3, 0x800000L);

+         return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, active1, 0x8000800L, active2, 0x1000002802006038L, active3, 0x4000000L);

       case 79:

-         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x10000004408L, active2, 0xa0008c0L, active3, 0x20000L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x10000004408L, active2, 0x140008c0L, active3, 0x100000L);

       case 80:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L, active2, 0x20000000000000L, active3, 0x1L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L, active2, 0x40000000000000L, active3, 0x2L);

       case 82:

          if ((active1 & 0x200L) != 0L)

          {

             jjmatchedKind = 73;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x10000004004001L, active3, 0x3c1000L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x20000008008001L, active3, 0x1e08000L);

       case 83:

-         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x40000200016L, active2, 0xc0000810000000L, active3, 0x2002L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x40000200016L, active2, 0x180001020000000L, active3, 0x1000cL);

       case 84:

          if ((active1 & 0x40000000L) != 0L)

          {

             jjmatchedKind = 94;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x20000000L) != 0L)

+         else if ((active2 & 0x40000000L) != 0L)

          {

-            jjmatchedKind = 157;

+            jjmatchedKind = 158;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x2000000000000L) != 0L)

+         else if ((active2 & 0x4000000000000L) != 0L)

          {

-            jjmatchedKind = 177;

+            jjmatchedKind = 178;

             jjmatchedPos = 2;

          }

-         else if ((active3 & 0x40L) != 0L)

+         else if ((active3 & 0x200L) != 0L)

          {

-            jjmatchedKind = 198;

+            jjmatchedKind = 201;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x8000000800c01100L, active2, 0x60c0208102L, active3, 0x4L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x8000000800c01100L, active2, 0xc180410102L, active3, 0x10L);

       case 85:

-         return jjMoveStringLiteralDfa3_0(active0, 0x60000000000000L, active1, 0L, active2, 0x400000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x60000000000000L, active1, 0L, active2, 0x800000L, active3, 0L);

       case 86:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000008000L, active2, 0L, active3, 0L);

       case 87:

-         if ((active2 & 0x1000000000000000L) != 0L)

+         if ((active2 & 0x2000000000000000L) != 0L)

          {

-            jjmatchedKind = 188;

+            jjmatchedKind = 189;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000L, active2, 0L, active3, 0x18L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000L, active2, 0L, active3, 0x60L);

       case 89:

-         if ((active2 & 0x10000L) != 0L)

+         if ((active2 & 0x20000L) != 0L)

          {

-            jjmatchedKind = 144;

+            jjmatchedKind = 145;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x100000000L) != 0L)

+         else if ((active2 & 0x200000000L) != 0L)

          {

-            jjmatchedKind = 160;

+            jjmatchedKind = 161;

             jjmatchedPos = 2;

          }

          return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L, active2, 0L, active3, 0L);

       case 90:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x400000000000L, active2, 0L, active3, 0L);

       case 97:

-         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x2100300000800600L, active3, 0x400800L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x4200600001000600L, active3, 0x2004000L);

       case 98:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0xe020000000000L, active2, 0L, active3, 0L);

       case 99:

@@ -669,12 +669,12 @@
             jjmatchedKind = 45;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x20000L) != 0L)

+         else if ((active2 & 0x40000L) != 0L)

          {

-            jjmatchedKind = 145;

+            jjmatchedKind = 146;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, active1, 0x240000c0L, active2, 0x4008020200040000L, active3, 0x20L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, active1, 0x240000c0L, active2, 0x8010040400080000L, active3, 0x80L);

       case 100:

          if ((active0 & 0x80000000000L) != 0L)

          {

@@ -686,29 +686,29 @@
             jjmatchedKind = 69;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x800000000000L) != 0L)

+         else if ((active2 & 0x1000000000000L) != 0L)

          {

-            jjmatchedKind = 175;

+            jjmatchedKind = 176;

             jjmatchedPos = 2;

          }

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200002010180000L, active2, 0L, active3, 0L);

       case 101:

-         return jjMoveStringLiteralDfa3_0(active0, 0x2010000000000000L, active1, 0x7810004000010000L, active2, 0x604000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x2010000000000000L, active1, 0x7810004000010000L, active2, 0xc08000000000000L, active3, 0L);

       case 102:

-         if ((active2 & 0x8000000000000000L) != 0L)

+         if ((active3 & 0x1L) != 0L)

          {

-            jjmatchedKind = 191;

+            jjmatchedKind = 192;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L, active2, 0x80000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L, active2, 0x100000L, active3, 0L);

       case 103:

-         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x1000000000000L, active3, 0x80L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x2000000000000L, active3, 0x400L);

       case 104:

-         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x8000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x10000000000L, active3, 0L);

       case 105:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x180008000000000L, active2, 0x4L, active3, 0L);

       case 106:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x800000000000L, active3, 0L);

       case 107:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000000L, active2, 0L, active3, 0L);

       case 108:

@@ -722,66 +722,66 @@
             jjmatchedKind = 111;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000000L, active1, 0x400100100000000L, active2, 0x10000100000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000000L, active1, 0x400100100000000L, active2, 0x20000200000L, active3, 0x100L);

       case 109:

-         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0xc0000001000L, active3, 0x1c700L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0x180000001000L, active3, 0xe3800L);

       case 110:

-         return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, active1, 0x8000800L, active2, 0x800001401002038L, active3, 0x800000L);

+         return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, active1, 0x8000800L, active2, 0x1000002802006038L, active3, 0x4000000L);

       case 111:

-         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x10000004408L, active2, 0xa0008c0L, active3, 0x20000L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x10000004408L, active2, 0x140008c0L, active3, 0x100000L);

       case 112:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L, active2, 0x20000000000000L, active3, 0x1L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L, active2, 0x40000000000000L, active3, 0x2L);

       case 114:

          if ((active1 & 0x200L) != 0L)

          {

             jjmatchedKind = 73;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x10000004004001L, active3, 0x3c1000L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x20000008008001L, active3, 0x1e08000L);

       case 115:

-         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x40000200016L, active2, 0xc0000810000000L, active3, 0x2002L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x40000200016L, active2, 0x180001020000000L, active3, 0x1000cL);

       case 116:

          if ((active1 & 0x40000000L) != 0L)

          {

             jjmatchedKind = 94;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x20000000L) != 0L)

+         else if ((active2 & 0x40000000L) != 0L)

          {

-            jjmatchedKind = 157;

+            jjmatchedKind = 158;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x2000000000000L) != 0L)

+         else if ((active2 & 0x4000000000000L) != 0L)

          {

-            jjmatchedKind = 177;

+            jjmatchedKind = 178;

             jjmatchedPos = 2;

          }

-         else if ((active3 & 0x40L) != 0L)

+         else if ((active3 & 0x200L) != 0L)

          {

-            jjmatchedKind = 198;

+            jjmatchedKind = 201;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x8000000800c01100L, active2, 0x60c0208102L, active3, 0x4L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x8000000800c01100L, active2, 0xc180410102L, active3, 0x10L);

       case 117:

-         return jjMoveStringLiteralDfa3_0(active0, 0x60000000000000L, active1, 0L, active2, 0x400000L, active3, 0L);

+         return jjMoveStringLiteralDfa3_0(active0, 0x60000000000000L, active1, 0L, active2, 0x800000L, active3, 0L);

       case 118:

          return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000008000L, active2, 0L, active3, 0L);

       case 119:

-         if ((active2 & 0x1000000000000000L) != 0L)

+         if ((active2 & 0x2000000000000000L) != 0L)

          {

-            jjmatchedKind = 188;

+            jjmatchedKind = 189;

             jjmatchedPos = 2;

          }

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000L, active2, 0L, active3, 0x18L);

+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000L, active2, 0L, active3, 0x60L);

       case 121:

-         if ((active2 & 0x10000L) != 0L)

+         if ((active2 & 0x20000L) != 0L)

          {

-            jjmatchedKind = 144;

+            jjmatchedKind = 145;

             jjmatchedPos = 2;

          }

-         else if ((active2 & 0x100000000L) != 0L)

+         else if ((active2 & 0x200000000L) != 0L)

          {

-            jjmatchedKind = 160;

+            jjmatchedKind = 161;

             jjmatchedPos = 2;

          }

          return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L, active2, 0L, active3, 0L);

@@ -803,7 +803,7 @@
    switch(curChar)

    {

       case 65:

-         return jjMoveStringLiteralDfa4_0(active0, 0x2088000000000000L, active1, 0x204000080000001L, active2, 0x11008203000039L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x2088000000000000L, active1, 0x204000080000001L, active2, 0x22010406000039L, active3, 0L);

       case 66:

          if ((active2 & 0x40L) != 0L)

          {

@@ -815,14 +815,14 @@
             jjmatchedKind = 139;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x40008c00000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x80011800000L, active3, 0L);

       case 67:

          if ((active1 & 0x2L) != 0L)

          {

             jjmatchedKind = 65;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0x10000000900L, active2, 0x200000004000000L, active3, 0xc0000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0x10000000900L, active2, 0x400000008000000L, active3, 0x600000L);

       case 69:

          if ((active0 & 0x4000000000000L) != 0L)

          {

@@ -859,29 +859,36 @@
             jjmatchedKind = 136;

             jjmatchedPos = 3;

          }

-         else if ((active2 & 0x8000L) != 0L)

+         else if ((active2 & 0x10000L) != 0L)

          {

-            jjmatchedKind = 143;

+            jjmatchedKind = 144;

             jjmatchedPos = 3;

          }

-         else if ((active3 & 0x8000L) != 0L)

+         else if ((active3 & 0x40000L) != 0L)

          {

-            jjmatchedKind = 207;

+            jjmatchedKind = 210;

             jjmatchedPos = 3;

          }

-         else if ((active3 & 0x800000L) != 0L)

+         else if ((active3 & 0x4000000L) != 0L)

          {

-            jjmatchedKind = 215;

+            jjmatchedKind = 218;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x102000780040L, active2, 0x204800c0300000L, active3, 0x10000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x102000780040L, active2, 0x40900180600000L, active3, 0x80000L);

+      case 70:

+         if ((active3 & 0x100L) != 0L)

+         {

+            jjmatchedKind = 200;

+            jjmatchedPos = 3;

+         }

+         break;

       case 71:

-         if ((active2 & 0x400000000L) != 0L)

+         if ((active2 & 0x800000000L) != 0L)

          {

-            jjmatchedKind = 162;

+            jjmatchedKind = 163;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x900000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x1200000000000000L, active3, 0L);

       case 72:

          if ((active1 & 0x8000000000000000L) != 0L)

          {

@@ -890,26 +897,26 @@
          }

          return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);

       case 73:

-         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x800008000L, active2, 0x800020000c0000L, active3, 0x1008L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x800008000L, active2, 0x100004000180000L, active3, 0x8020L);

       case 75:

          if ((active1 & 0x4000000L) != 0L)

          {

             jjmatchedKind = 90;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

       case 76:

          if ((active1 & 0x100000000L) != 0L)

          {

             jjmatchedKind = 96;

             jjmatchedPos = 3;

          }

-         else if ((active2 & 0x2000000000000000L) != 0L)

+         else if ((active2 & 0x4000000000000000L) != 0L)

          {

-            jjmatchedKind = 189;

+            jjmatchedKind = 190;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x8020000000080L, active2, 0x800000084L, active3, 0x801L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x8020000000080L, active2, 0x1000000084L, active3, 0x4002L);

       case 77:

          if ((active1 & 0x400L) != 0L)

          {

@@ -928,7 +935,7 @@
             jjmatchedKind = 125;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0x12000L, active2, 0L, active3, 0x80L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0x12000L, active2, 0L, active3, 0x400L);

       case 79:

          if ((active1 & 0x1000L) != 0L)

          {

@@ -940,14 +947,14 @@
             jjmatchedKind = 87;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800c0020000000L, active2, 0x4000030000000000L, active3, 0x20L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800c0020000000L, active2, 0x8000060000000000L, active3, 0x80L);

       case 80:

          if ((active1 & 0x8L) != 0L)

          {

             jjmatchedKind = 67;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x200040000000000L, active1, 0L, active2, 0L, active3, 0x4700L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x200040000000000L, active1, 0L, active2, 0L, active3, 0x23800L);

       case 81:

          return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000000000L, active2, 0L, active3, 0L);

       case 82:

@@ -956,36 +963,36 @@
             jjmatchedKind = 137;

             jjmatchedPos = 3;

          }

-         else if ((active3 & 0x400000L) != 0L)

+         else if ((active3 & 0x2000000L) != 0L)

          {

-            jjmatchedKind = 214;

+            jjmatchedKind = 217;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4001204000000000L, active2, 0x4300000004400L, active3, 0x100000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4001204000000000L, active2, 0x8600000008400L, active3, 0x800000L);

       case 83:

-         if ((active3 & 0x10L) != 0L)

+         if ((active3 & 0x40L) != 0L)

          {

-            jjmatchedKind = 196;

+            jjmatchedKind = 198;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x5860000000000000L, active1, 0L, active2, 0x400000000002000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x5860000000000000L, active1, 0L, active2, 0x800000000006000L, active3, 0L);

       case 84:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000004L, active2, 0x1010000000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000004L, active2, 0x2020000000L, active3, 0L);

       case 85:

-         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x400000008004000L, active2, 0x4000000000L, active3, 0x6L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x400000008004000L, active2, 0x8000000000L, active3, 0x1cL);

       case 87:

          if ((active1 & 0x800000000000000L) != 0L)

          {

             jjmatchedKind = 123;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x1000000000000000L, active2, 0L, active3, 0x20000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x1000000000000000L, active2, 0L, active3, 0x100000L);

       case 89:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x200000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x1000000L);

       case 95:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0x10000L);

       case 97:

-         return jjMoveStringLiteralDfa4_0(active0, 0x2088000000000000L, active1, 0x204000080000001L, active2, 0x11008203000039L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x2088000000000000L, active1, 0x204000080000001L, active2, 0x22010406000039L, active3, 0L);

       case 98:

          if ((active2 & 0x40L) != 0L)

          {

@@ -997,14 +1004,14 @@
             jjmatchedKind = 139;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x40008c00000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x80011800000L, active3, 0L);

       case 99:

          if ((active1 & 0x2L) != 0L)

          {

             jjmatchedKind = 65;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0x10000000900L, active2, 0x200000004000000L, active3, 0xc0000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0x10000000900L, active2, 0x400000008000000L, active3, 0x600000L);

       case 101:

          if ((active0 & 0x4000000000000L) != 0L)

          {

@@ -1041,29 +1048,36 @@
             jjmatchedKind = 136;

             jjmatchedPos = 3;

          }

-         else if ((active2 & 0x8000L) != 0L)

+         else if ((active2 & 0x10000L) != 0L)

          {

-            jjmatchedKind = 143;

+            jjmatchedKind = 144;

             jjmatchedPos = 3;

          }

-         else if ((active3 & 0x8000L) != 0L)

+         else if ((active3 & 0x40000L) != 0L)

          {

-            jjmatchedKind = 207;

+            jjmatchedKind = 210;

             jjmatchedPos = 3;

          }

-         else if ((active3 & 0x800000L) != 0L)

+         else if ((active3 & 0x4000000L) != 0L)

          {

-            jjmatchedKind = 215;

+            jjmatchedKind = 218;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x102000780040L, active2, 0x204800c0300000L, active3, 0x10000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x102000780040L, active2, 0x40900180600000L, active3, 0x80000L);

+      case 102:

+         if ((active3 & 0x100L) != 0L)

+         {

+            jjmatchedKind = 200;

+            jjmatchedPos = 3;

+         }

+         break;

       case 103:

-         if ((active2 & 0x400000000L) != 0L)

+         if ((active2 & 0x800000000L) != 0L)

          {

-            jjmatchedKind = 162;

+            jjmatchedKind = 163;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x900000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x1200000000000000L, active3, 0L);

       case 104:

          if ((active1 & 0x8000000000000000L) != 0L)

          {

@@ -1072,26 +1086,26 @@
          }

          return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);

       case 105:

-         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x800008000L, active2, 0x800020000c0000L, active3, 0x1008L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x800008000L, active2, 0x100004000180000L, active3, 0x8020L);

       case 107:

          if ((active1 & 0x4000000L) != 0L)

          {

             jjmatchedKind = 90;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

       case 108:

          if ((active1 & 0x100000000L) != 0L)

          {

             jjmatchedKind = 96;

             jjmatchedPos = 3;

          }

-         else if ((active2 & 0x2000000000000000L) != 0L)

+         else if ((active2 & 0x4000000000000000L) != 0L)

          {

-            jjmatchedKind = 189;

+            jjmatchedKind = 190;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x8020000000080L, active2, 0x800000084L, active3, 0x801L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x8020000000080L, active2, 0x1000000084L, active3, 0x4002L);

       case 109:

          if ((active1 & 0x400L) != 0L)

          {

@@ -1110,7 +1124,7 @@
             jjmatchedKind = 125;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0x12000L, active2, 0L, active3, 0x80L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0x12000L, active2, 0L, active3, 0x400L);

       case 111:

          if ((active1 & 0x1000L) != 0L)

          {

@@ -1122,14 +1136,14 @@
             jjmatchedKind = 87;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800c0020000000L, active2, 0x4000030000000000L, active3, 0x20L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800c0020000000L, active2, 0x8000060000000000L, active3, 0x80L);

       case 112:

          if ((active1 & 0x8L) != 0L)

          {

             jjmatchedKind = 67;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x200040000000000L, active1, 0L, active2, 0L, active3, 0x4700L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x200040000000000L, active1, 0L, active2, 0L, active3, 0x23800L);

       case 113:

          return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000000000L, active2, 0L, active3, 0L);

       case 114:

@@ -1138,32 +1152,32 @@
             jjmatchedKind = 137;

             jjmatchedPos = 3;

          }

-         else if ((active3 & 0x400000L) != 0L)

+         else if ((active3 & 0x2000000L) != 0L)

          {

-            jjmatchedKind = 214;

+            jjmatchedKind = 217;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4001204000000000L, active2, 0x4300000004400L, active3, 0x100000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4001204000000000L, active2, 0x8600000008400L, active3, 0x800000L);

       case 115:

-         if ((active3 & 0x10L) != 0L)

+         if ((active3 & 0x40L) != 0L)

          {

-            jjmatchedKind = 196;

+            jjmatchedKind = 198;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x5860000000000000L, active1, 0L, active2, 0x400000000002000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x5860000000000000L, active1, 0L, active2, 0x800000000006000L, active3, 0L);

       case 116:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000004L, active2, 0x1010000000L, active3, 0L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000004L, active2, 0x2020000000L, active3, 0L);

       case 117:

-         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x400000008004000L, active2, 0x4000000000L, active3, 0x6L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x400000008004000L, active2, 0x8000000000L, active3, 0x1cL);

       case 119:

          if ((active1 & 0x800000000000000L) != 0L)

          {

             jjmatchedKind = 123;

             jjmatchedPos = 3;

          }

-         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x1000000000000000L, active2, 0L, active3, 0x20000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x1000000000000000L, active2, 0L, active3, 0x100000L);

       case 121:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x200000L);

+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x1000000L);

       default :

          break;

    }

@@ -1180,20 +1194,20 @@
    switch(curChar)

    {

       case 65:

-         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0x8000000000L, active2, 0x8000818000400L, active3, 0x100001L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0x8000000000L, active2, 0x10001030000400L, active3, 0x800002L);

       case 66:

-         if ((active2 & 0x10000000000L) != 0L)

+         if ((active2 & 0x20000000000L) != 0L)

          {

-            jjmatchedKind = 168;

+            jjmatchedKind = 169;

             jjmatchedPos = 4;

          }

          break;

       case 67:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000000000L, active2, 0x700000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000000000L, active2, 0xe00000000000L, active3, 0L);

       case 68:

-         if ((active3 & 0x8L) != 0L)

+         if ((active3 & 0x20L) != 0L)

          {

-            jjmatchedKind = 195;

+            jjmatchedKind = 197;

             jjmatchedPos = 4;

          }

          break;

@@ -1223,21 +1237,21 @@
             jjmatchedKind = 130;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x4000000L) != 0L)

+         else if ((active2 & 0x8000000L) != 0L)

          {

-            jjmatchedKind = 154;

+            jjmatchedKind = 155;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x800000000000000L) != 0L)

+         else if ((active2 & 0x1000000000000000L) != 0L)

          {

-            jjmatchedKind = 187;

+            jjmatchedKind = 188;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0x401000000000000L, active1, 0x400010000000000L, active2, 0x400040000004080L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x401000000000000L, active1, 0x400010000000000L, active2, 0x800080000008080L, active3, 0L);

       case 70:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);

       case 71:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x40000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x80000000L, active3, 0L);

       case 72:

          if ((active0 & 0x1000000000000000L) != 0L)

          {

@@ -1249,14 +1263,14 @@
             jjmatchedKind = 72;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x1000000000L) != 0L)

+         else if ((active2 & 0x2000000000L) != 0L)

          {

-            jjmatchedKind = 164;

+            jjmatchedKind = 165;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0xc0000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x600000L);

       case 73:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20080000004L, active2, 0x240000000001002L, active3, 0x220000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20080000004L, active2, 0x480000000001002L, active3, 0x1100000L);

       case 75:

          if ((active0 & 0x10000000000000L) != 0L)

          {

@@ -1265,19 +1279,19 @@
          }

          break;

       case 76:

-         if ((active2 & 0x1000000L) != 0L)

+         if ((active2 & 0x2000000L) != 0L)

          {

-            jjmatchedKind = 152;

+            jjmatchedKind = 153;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x200000000L) != 0L)

+         else if ((active2 & 0x400000000L) != 0L)

          {

-            jjmatchedKind = 161;

+            jjmatchedKind = 162;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x84000000000L, active2, 0x30000000c00000L, active3, 0xf02L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x84000000000L, active2, 0x60000001800000L, active3, 0x780cL);

       case 77:

-         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x20000000L, active2, 0x100000000040000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x20000000L, active2, 0x200000000080000L, active3, 0L);

       case 78:

          if ((active0 & 0x800000000000L) != 0L)

          {

@@ -1289,16 +1303,16 @@
             jjmatchedKind = 119;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0x1000000080000L, active3, 0x1020L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0x2000000100000L, active3, 0x8080L);

       case 79:

-         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x800000000L, active2, 0x2000000000L, active3, 0x4000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x800000000L, active2, 0x4000000000L, active3, 0x20000L);

       case 80:

          if ((active1 & 0x4000L) != 0L)

          {

             jjmatchedKind = 78;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40L, active2, 0x20000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40L, active2, 0x40000000000L, active3, 0L);

       case 82:

          if ((active0 & 0x10000000000L) != 0L)

          {

@@ -1310,12 +1324,12 @@
             jjmatchedKind = 101;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x8000000000L) != 0L)

+         else if ((active2 & 0x10000000000L) != 0L)

          {

-            jjmatchedKind = 167;

+            jjmatchedKind = 168;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0x208000000000000L, active1, 0x600000L, active2, 0x4000084080200038L, active3, 0x2004L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x208000000000000L, active1, 0x600000L, active2, 0x8000108100400038L, active3, 0x10010L);

       case 83:

          if ((active1 & 0x8000000L) != 0L)

          {

@@ -1327,7 +1341,7 @@
             jjmatchedKind = 124;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x80000L);

       case 84:

          if ((active1 & 0x2000L) != 0L)

          {

@@ -1339,12 +1353,12 @@
             jjmatchedKind = 112;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x2000000L) != 0L)

+         else if ((active2 & 0x4000000L) != 0L)

          {

-            jjmatchedKind = 153;

+            jjmatchedKind = 154;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0x2860020000000000L, active1, 0x200000000010800L, active2, 0x80000000102000L, active3, 0x80L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x2860020000000000L, active1, 0x200000000010800L, active2, 0x100000000206000L, active3, 0x400L);

       case 85:

          return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x104040000000081L, active2, 0L, active3, 0L);

       case 88:

@@ -1362,20 +1376,20 @@
          }

          return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000000000000L, active2, 0L, active3, 0L);

       case 97:

-         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0x8000000000L, active2, 0x8000818000400L, active3, 0x100001L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0x8000000000L, active2, 0x10001030000400L, active3, 0x800002L);

       case 98:

-         if ((active2 & 0x10000000000L) != 0L)

+         if ((active2 & 0x20000000000L) != 0L)

          {

-            jjmatchedKind = 168;

+            jjmatchedKind = 169;

             jjmatchedPos = 4;

          }

          break;

       case 99:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000000000L, active2, 0x700000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000000000L, active2, 0xe00000000000L, active3, 0L);

       case 100:

-         if ((active3 & 0x8L) != 0L)

+         if ((active3 & 0x20L) != 0L)

          {

-            jjmatchedKind = 195;

+            jjmatchedKind = 197;

             jjmatchedPos = 4;

          }

          break;

@@ -1405,21 +1419,21 @@
             jjmatchedKind = 130;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x4000000L) != 0L)

+         else if ((active2 & 0x8000000L) != 0L)

          {

-            jjmatchedKind = 154;

+            jjmatchedKind = 155;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x800000000000000L) != 0L)

+         else if ((active2 & 0x1000000000000000L) != 0L)

          {

-            jjmatchedKind = 187;

+            jjmatchedKind = 188;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0x401000000000000L, active1, 0x400010000000000L, active2, 0x400040000004080L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x401000000000000L, active1, 0x400010000000000L, active2, 0x800080000008080L, active3, 0L);

       case 102:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);

       case 103:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x40000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x80000000L, active3, 0L);

       case 104:

          if ((active0 & 0x1000000000000000L) != 0L)

          {

@@ -1431,14 +1445,14 @@
             jjmatchedKind = 72;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x1000000000L) != 0L)

+         else if ((active2 & 0x2000000000L) != 0L)

          {

-            jjmatchedKind = 164;

+            jjmatchedKind = 165;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0xc0000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x600000L);

       case 105:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20080000004L, active2, 0x240000000001002L, active3, 0x220000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20080000004L, active2, 0x480000000001002L, active3, 0x1100000L);

       case 107:

          if ((active0 & 0x10000000000000L) != 0L)

          {

@@ -1447,19 +1461,19 @@
          }

          break;

       case 108:

-         if ((active2 & 0x1000000L) != 0L)

+         if ((active2 & 0x2000000L) != 0L)

          {

-            jjmatchedKind = 152;

+            jjmatchedKind = 153;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x200000000L) != 0L)

+         else if ((active2 & 0x400000000L) != 0L)

          {

-            jjmatchedKind = 161;

+            jjmatchedKind = 162;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x84000000000L, active2, 0x30000000c00000L, active3, 0xf02L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x84000000000L, active2, 0x60000001800000L, active3, 0x780cL);

       case 109:

-         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x20000000L, active2, 0x100000000040000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x20000000L, active2, 0x200000000080000L, active3, 0L);

       case 110:

          if ((active0 & 0x800000000000L) != 0L)

          {

@@ -1471,16 +1485,16 @@
             jjmatchedKind = 119;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0x1000000080000L, active3, 0x1020L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0x2000000100000L, active3, 0x8080L);

       case 111:

-         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x800000000L, active2, 0x2000000000L, active3, 0x4000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x800000000L, active2, 0x4000000000L, active3, 0x20000L);

       case 112:

          if ((active1 & 0x4000L) != 0L)

          {

             jjmatchedKind = 78;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40L, active2, 0x20000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40L, active2, 0x40000000000L, active3, 0L);

       case 114:

          if ((active0 & 0x10000000000L) != 0L)

          {

@@ -1492,12 +1506,12 @@
             jjmatchedKind = 101;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x8000000000L) != 0L)

+         else if ((active2 & 0x10000000000L) != 0L)

          {

-            jjmatchedKind = 167;

+            jjmatchedKind = 168;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0x208000000000000L, active1, 0x600000L, active2, 0x4000084080200038L, active3, 0x2004L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x208000000000000L, active1, 0x600000L, active2, 0x8000108100400038L, active3, 0x10010L);

       case 115:

          if ((active1 & 0x8000000L) != 0L)

          {

@@ -1509,7 +1523,7 @@
             jjmatchedKind = 124;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);

+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x80000L);

       case 116:

          if ((active1 & 0x2000L) != 0L)

          {

@@ -1521,12 +1535,12 @@
             jjmatchedKind = 112;

             jjmatchedPos = 4;

          }

-         else if ((active2 & 0x2000000L) != 0L)

+         else if ((active2 & 0x4000000L) != 0L)

          {

-            jjmatchedKind = 153;

+            jjmatchedKind = 154;

             jjmatchedPos = 4;

          }

-         return jjMoveStringLiteralDfa5_0(active0, 0x2860020000000000L, active1, 0x200000000010800L, active2, 0x80000000102000L, active3, 0x80L);

+         return jjMoveStringLiteralDfa5_0(active0, 0x2860020000000000L, active1, 0x200000000010800L, active2, 0x100000000206000L, active3, 0x400L);

       case 117:

          return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x104040000000081L, active2, 0L, active3, 0L);

       case 120:

@@ -1559,40 +1573,40 @@
    switch(curChar)

    {

       case 65:

-         if ((active2 & 0x100000000000000L) != 0L)

+         if ((active2 & 0x200000000000000L) != 0L)

          {

-            jjmatchedKind = 184;

+            jjmatchedKind = 185;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0x4000042080L, active3, 0xc0000L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0x8000082080L, active3, 0x600000L);

       case 66:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x1000000000L, active3, 0L);

       case 67:

          if ((active1 & 0x20000000000L) != 0L)

          {

             jjmatchedKind = 105;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, active1, 0L, active2, 0x400L, active3, 0x1L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, active1, 0L, active2, 0x400L, active3, 0x2L);

       case 68:

          if ((active2 & 0x2L) != 0L)

          {

             jjmatchedKind = 129;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x4000000000000000L) != 0L)

+         else if ((active2 & 0x8000000000000000L) != 0L)

          {

-            jjmatchedKind = 190;

+            jjmatchedKind = 191;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x20L) != 0L)

+         else if ((active3 & 0x80L) != 0L)

          {

-            jjmatchedKind = 197;

+            jjmatchedKind = 199;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x20000L) != 0L)

+         else if ((active3 & 0x100000L) != 0L)

          {

-            jjmatchedKind = 209;

+            jjmatchedKind = 212;

             jjmatchedPos = 5;

          }

          return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);

@@ -1617,14 +1631,9 @@
             jjmatchedKind = 121;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x100000L) != 0L)

+         else if ((active2 & 0x200000L) != 0L)

          {

-            jjmatchedKind = 148;

-            jjmatchedPos = 5;

-         }

-         else if ((active2 & 0x400000L) != 0L)

-         {

-            jjmatchedKind = 150;

+            jjmatchedKind = 149;

             jjmatchedPos = 5;

          }

          else if ((active2 & 0x800000L) != 0L)

@@ -1632,44 +1641,49 @@
             jjmatchedKind = 151;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x261000000000000L, active1, 0x100000L, active2, 0x40080000L, active3, 0x2700L);

+         else if ((active2 & 0x1000000L) != 0L)

+         {

+            jjmatchedKind = 152;

+            jjmatchedPos = 5;

+         }

+         return jjMoveStringLiteralDfa6_0(active0, 0x261000000000000L, active1, 0x100000L, active2, 0x80100000L, active3, 0x13800L);

       case 71:

          if ((active1 & 0x8000L) != 0L)

          {

             jjmatchedKind = 79;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x1000L) != 0L)

+         else if ((active3 & 0x8000L) != 0L)

          {

-            jjmatchedKind = 204;

+            jjmatchedKind = 207;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

       case 72:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x300000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x600000000000L, active3, 0L);

       case 73:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10800L, active2, 0xa1080000000000L, active3, 0x800L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10800L, active2, 0x142100000000000L, active3, 0x4000L);

       case 76:

-         if ((active2 & 0x8000000L) != 0L)

+         if ((active2 & 0x10000000L) != 0L)

          {

-            jjmatchedKind = 155;

+            jjmatchedKind = 156;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1L, active2, 0x14000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1L, active2, 0x28000000000000L, active3, 0L);

       case 77:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x400000L, active3, 0L);

       case 78:

          if ((active1 & 0x800000000L) != 0L)

          {

             jjmatchedKind = 99;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x4L) != 0L)

+         else if ((active3 & 0x10L) != 0L)

          {

-            jjmatchedKind = 194;

+            jjmatchedKind = 196;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x4L, active2, 0x40002010004000L, active3, 0x200000L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x4L, active2, 0x80004020008000L, active3, 0x1000000L);

       case 80:

          return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000020000000L, active2, 0L, active3, 0L);

       case 82:

@@ -1678,19 +1692,19 @@
             jjmatchedKind = 62;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x40000000000L) != 0L)

+         else if ((active2 & 0x80000000000L) != 0L)

          {

-            jjmatchedKind = 170;

+            jjmatchedKind = 171;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L, active1, 0x48000000000L, active2, 0x400000000000000L, active3, 0x4000L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L, active1, 0x48000000000L, active2, 0x800000000004000L, active3, 0x20000L);

       case 83:

          if ((active1 & 0x400000000000000L) != 0L)

          {

             jjmatchedKind = 122;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0x400080L, active2, 0x200000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0x400080L, active2, 0x400000000000000L, active3, 0L);

       case 84:

          if ((active1 & 0x200000L) != 0L)

          {

@@ -1712,61 +1726,66 @@
             jjmatchedKind = 140;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x400000000000L) != 0L)

+         else if ((active2 & 0x800000000000L) != 0L)

          {

-            jjmatchedKind = 174;

+            jjmatchedKind = 175;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x4000000000040L, active2, 0L, active3, 0x10002L);

+         else if ((active3 & 0x4L) != 0L)

+         {

+            jjmatchedKind = 194;

+            jjmatchedPos = 5;

+         }

+         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x4000000000040L, active2, 0L, active3, 0x80008L);

       case 86:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x80000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x100000000L, active3, 0L);

       case 89:

-         if ((active2 & 0x20000000000L) != 0L)

+         if ((active2 & 0x40000000000L) != 0L)

          {

-            jjmatchedKind = 169;

+            jjmatchedKind = 170;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x100000L) != 0L)

+         else if ((active3 & 0x800000L) != 0L)

          {

-            jjmatchedKind = 212;

+            jjmatchedKind = 215;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x80L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x400L);

       case 97:

-         if ((active2 & 0x100000000000000L) != 0L)

+         if ((active2 & 0x200000000000000L) != 0L)

          {

-            jjmatchedKind = 184;

+            jjmatchedKind = 185;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0x4000042080L, active3, 0xc0000L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0x8000082080L, active3, 0x600000L);

       case 98:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x1000000000L, active3, 0L);

       case 99:

          if ((active1 & 0x20000000000L) != 0L)

          {

             jjmatchedKind = 105;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, active1, 0L, active2, 0x400L, active3, 0x1L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, active1, 0L, active2, 0x400L, active3, 0x2L);

       case 100:

          if ((active2 & 0x2L) != 0L)

          {

             jjmatchedKind = 129;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x4000000000000000L) != 0L)

+         else if ((active2 & 0x8000000000000000L) != 0L)

          {

-            jjmatchedKind = 190;

+            jjmatchedKind = 191;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x20L) != 0L)

+         else if ((active3 & 0x80L) != 0L)

          {

-            jjmatchedKind = 197;

+            jjmatchedKind = 199;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x20000L) != 0L)

+         else if ((active3 & 0x100000L) != 0L)

          {

-            jjmatchedKind = 209;

+            jjmatchedKind = 212;

             jjmatchedPos = 5;

          }

          return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);

@@ -1791,14 +1810,9 @@
             jjmatchedKind = 121;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x100000L) != 0L)

+         else if ((active2 & 0x200000L) != 0L)

          {

-            jjmatchedKind = 148;

-            jjmatchedPos = 5;

-         }

-         else if ((active2 & 0x400000L) != 0L)

-         {

-            jjmatchedKind = 150;

+            jjmatchedKind = 149;

             jjmatchedPos = 5;

          }

          else if ((active2 & 0x800000L) != 0L)

@@ -1806,44 +1820,49 @@
             jjmatchedKind = 151;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x261000000000000L, active1, 0x100000L, active2, 0x40080000L, active3, 0x2700L);

+         else if ((active2 & 0x1000000L) != 0L)

+         {

+            jjmatchedKind = 152;

+            jjmatchedPos = 5;

+         }

+         return jjMoveStringLiteralDfa6_0(active0, 0x261000000000000L, active1, 0x100000L, active2, 0x80100000L, active3, 0x13800L);

       case 103:

          if ((active1 & 0x8000L) != 0L)

          {

             jjmatchedKind = 79;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x1000L) != 0L)

+         else if ((active3 & 0x8000L) != 0L)

          {

-            jjmatchedKind = 204;

+            jjmatchedKind = 207;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

       case 104:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x300000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x600000000000L, active3, 0L);

       case 105:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10800L, active2, 0xa1080000000000L, active3, 0x800L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10800L, active2, 0x142100000000000L, active3, 0x4000L);

       case 108:

-         if ((active2 & 0x8000000L) != 0L)

+         if ((active2 & 0x10000000L) != 0L)

          {

-            jjmatchedKind = 155;

+            jjmatchedKind = 156;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1L, active2, 0x14000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1L, active2, 0x28000000000000L, active3, 0L);

       case 109:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x400000L, active3, 0L);

       case 110:

          if ((active1 & 0x800000000L) != 0L)

          {

             jjmatchedKind = 99;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x4L) != 0L)

+         else if ((active3 & 0x10L) != 0L)

          {

-            jjmatchedKind = 194;

+            jjmatchedKind = 196;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x4L, active2, 0x40002010004000L, active3, 0x200000L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x4L, active2, 0x80004020008000L, active3, 0x1000000L);

       case 112:

          return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000020000000L, active2, 0L, active3, 0L);

       case 114:

@@ -1852,19 +1871,19 @@
             jjmatchedKind = 62;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x40000000000L) != 0L)

+         else if ((active2 & 0x80000000000L) != 0L)

          {

-            jjmatchedKind = 170;

+            jjmatchedKind = 171;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L, active1, 0x48000000000L, active2, 0x400000000000000L, active3, 0x4000L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L, active1, 0x48000000000L, active2, 0x800000000004000L, active3, 0x20000L);

       case 115:

          if ((active1 & 0x400000000000000L) != 0L)

          {

             jjmatchedKind = 122;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0x400080L, active2, 0x200000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0x400080L, active2, 0x400000000000000L, active3, 0L);

       case 116:

          if ((active1 & 0x200000L) != 0L)

          {

@@ -1886,26 +1905,31 @@
             jjmatchedKind = 140;

             jjmatchedPos = 5;

          }

-         else if ((active2 & 0x400000000000L) != 0L)

+         else if ((active2 & 0x800000000000L) != 0L)

          {

-            jjmatchedKind = 174;

+            jjmatchedKind = 175;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x4000000000040L, active2, 0L, active3, 0x10002L);

+         else if ((active3 & 0x4L) != 0L)

+         {

+            jjmatchedKind = 194;

+            jjmatchedPos = 5;

+         }

+         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x4000000000040L, active2, 0L, active3, 0x80008L);

       case 118:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x80000000L, active3, 0L);

+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x100000000L, active3, 0L);

       case 121:

-         if ((active2 & 0x20000000000L) != 0L)

+         if ((active2 & 0x40000000000L) != 0L)

          {

-            jjmatchedKind = 169;

+            jjmatchedKind = 170;

             jjmatchedPos = 5;

          }

-         else if ((active3 & 0x100000L) != 0L)

+         else if ((active3 & 0x800000L) != 0L)

          {

-            jjmatchedKind = 212;

+            jjmatchedKind = 215;

             jjmatchedPos = 5;

          }

-         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x80L);

+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x400L);

       default :

          break;

    }

@@ -1922,11 +1946,11 @@
    switch(curChar)

    {

       case 65:

-         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000000L, active1, 0L, active2, 0x302080000000L, active3, 0x14000L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000000L, active1, 0L, active2, 0x604100000000L, active3, 0xa0000L);

       case 67:

-         if ((active2 & 0x80000000000L) != 0L)

+         if ((active2 & 0x100000000000L) != 0L)

          {

-            jjmatchedKind = 171;

+            jjmatchedKind = 172;

             jjmatchedPos = 6;

          }

          return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x40000000004L, active2, 0L, active3, 0L);

@@ -1941,23 +1965,23 @@
             jjmatchedKind = 113;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x8000000000000L) != 0L)

+         else if ((active2 & 0x10000000000000L) != 0L)

          {

-            jjmatchedKind = 179;

+            jjmatchedKind = 180;

             jjmatchedPos = 6;

          }

-         else if ((active3 & 0x1L) != 0L)

+         else if ((active3 & 0x2L) != 0L)

          {

-            jjmatchedKind = 192;

+            jjmatchedKind = 193;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x10000800000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x20001000000000L, active3, 0L);

       case 70:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0x10000L);

       case 71:

-         if ((active3 & 0x200000L) != 0L)

+         if ((active3 & 0x1000000L) != 0L)

          {

-            jjmatchedKind = 213;

+            jjmatchedKind = 216;

             jjmatchedPos = 6;

          }

          break;

@@ -1974,16 +1998,16 @@
          }

          break;

       case 73:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x200000000200000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x400000000400000L, active3, 0L);

       case 76:

-         if ((active2 & 0x40000L) != 0L)

+         if ((active2 & 0x80000L) != 0L)

          {

-            jjmatchedKind = 146;

+            jjmatchedKind = 147;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x4000000000L) != 0L)

+         else if ((active2 & 0x8000000000L) != 0L)

          {

-            jjmatchedKind = 166;

+            jjmatchedKind = 167;

             jjmatchedPos = 6;

          }

          break;

@@ -1998,33 +2022,33 @@
             jjmatchedKind = 135;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x20000000002000L, active3, 0x800L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x40000000002000L, active3, 0x4000L);

       case 79:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800L, active2, 0x4000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800L, active2, 0x8000000000000L, active3, 0L);

       case 80:

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x80L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x400L);

       case 82:

          if ((active0 & 0x40000000000000L) != 0L)

          {

             jjmatchedKind = 54;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x80000L) != 0L)

+         else if ((active2 & 0x100000L) != 0L)

          {

-            jjmatchedKind = 147;

+            jjmatchedKind = 148;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x40000000L) != 0L)

+         else if ((active2 & 0x80000000L) != 0L)

          {

-            jjmatchedKind = 158;

+            jjmatchedKind = 159;

             jjmatchedPos = 6;

          }

-         else if ((active3 & 0x80000L) != 0L)

+         else if ((active3 & 0x400000L) != 0L)

          {

-            jjmatchedKind = 211;

+            jjmatchedKind = 214;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x40000L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x200000L);

       case 83:

          if ((active0 & 0x100000000000000L) != 0L)

          {

@@ -2048,11 +2072,11 @@
             jjmatchedKind = 64;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x40000010004400L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x80000020008400L, active3, 0L);

       case 85:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000000L, active2, 0x4000L, active3, 0L);

       case 86:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x480000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x900000000000000L, active3, 0L);

       case 89:

          if ((active1 & 0x8000000000L) != 0L)

          {

@@ -2061,15 +2085,15 @@
          }

          break;

       case 90:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 95:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x38L, active3, 0x702L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x38L, active3, 0x3808L);

       case 97:

-         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000000L, active1, 0L, active2, 0x302080000000L, active3, 0x14000L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000000L, active1, 0L, active2, 0x604100000000L, active3, 0xa0000L);

       case 99:

-         if ((active2 & 0x80000000000L) != 0L)

+         if ((active2 & 0x100000000000L) != 0L)

          {

-            jjmatchedKind = 171;

+            jjmatchedKind = 172;

             jjmatchedPos = 6;

          }

          return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x40000000004L, active2, 0L, active3, 0L);

@@ -2084,23 +2108,23 @@
             jjmatchedKind = 113;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x8000000000000L) != 0L)

+         else if ((active2 & 0x10000000000000L) != 0L)

          {

-            jjmatchedKind = 179;

+            jjmatchedKind = 180;

             jjmatchedPos = 6;

          }

-         else if ((active3 & 0x1L) != 0L)

+         else if ((active3 & 0x2L) != 0L)

          {

-            jjmatchedKind = 192;

+            jjmatchedKind = 193;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x10000800000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x20001000000000L, active3, 0L);

       case 102:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0x10000L);

       case 103:

-         if ((active3 & 0x200000L) != 0L)

+         if ((active3 & 0x1000000L) != 0L)

          {

-            jjmatchedKind = 213;

+            jjmatchedKind = 216;

             jjmatchedPos = 6;

          }

          break;

@@ -2117,16 +2141,16 @@
          }

          break;

       case 105:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x200000000200000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x400000000400000L, active3, 0L);

       case 108:

-         if ((active2 & 0x40000L) != 0L)

+         if ((active2 & 0x80000L) != 0L)

          {

-            jjmatchedKind = 146;

+            jjmatchedKind = 147;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x4000000000L) != 0L)

+         else if ((active2 & 0x8000000000L) != 0L)

          {

-            jjmatchedKind = 166;

+            jjmatchedKind = 167;

             jjmatchedPos = 6;

          }

          break;

@@ -2141,33 +2165,33 @@
             jjmatchedKind = 135;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x20000000002000L, active3, 0x800L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x40000000002000L, active3, 0x4000L);

       case 111:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800L, active2, 0x4000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800L, active2, 0x8000000000000L, active3, 0L);

       case 112:

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x80L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x400L);

       case 114:

          if ((active0 & 0x40000000000000L) != 0L)

          {

             jjmatchedKind = 54;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x80000L) != 0L)

+         else if ((active2 & 0x100000L) != 0L)

          {

-            jjmatchedKind = 147;

+            jjmatchedKind = 148;

             jjmatchedPos = 6;

          }

-         else if ((active2 & 0x40000000L) != 0L)

+         else if ((active2 & 0x80000000L) != 0L)

          {

-            jjmatchedKind = 158;

+            jjmatchedKind = 159;

             jjmatchedPos = 6;

          }

-         else if ((active3 & 0x80000L) != 0L)

+         else if ((active3 & 0x400000L) != 0L)

          {

-            jjmatchedKind = 211;

+            jjmatchedKind = 214;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x40000L);

+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x200000L);

       case 115:

          if ((active0 & 0x100000000000000L) != 0L)

          {

@@ -2191,11 +2215,11 @@
             jjmatchedKind = 64;

             jjmatchedPos = 6;

          }

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x40000010004400L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x80000020008400L, active3, 0L);

       case 117:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000000L, active2, 0x4000L, active3, 0L);

       case 118:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x480000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x900000000000000L, active3, 0L);

       case 121:

          if ((active1 & 0x8000000000L) != 0L)

          {

@@ -2204,7 +2228,7 @@
          }

          break;

       case 122:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       default :

          break;

    }

@@ -2221,18 +2245,18 @@
    switch(curChar)

    {

       case 50:

-         if ((active3 & 0x40000L) != 0L)

+         if ((active3 & 0x200000L) != 0L)

          {

-            jjmatchedKind = 210;

+            jjmatchedKind = 213;

             jjmatchedPos = 7;

          }

          break;

       case 65:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 67:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x400000L, active2, 0L, active3, 0x2002L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x400000L, active2, 0x4000L, active3, 0x10008L);

       case 68:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x800L);

       case 69:

          if ((active0 & 0x20000000000L) != 0L)

          {

@@ -2244,61 +2268,61 @@
             jjmatchedKind = 106;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x80000000000000L) != 0L)

+         else if ((active2 & 0x100000000000000L) != 0L)

          {

-            jjmatchedKind = 183;

+            jjmatchedKind = 184;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x400000000000000L) != 0L)

+         else if ((active2 & 0x800000000000000L) != 0L)

          {

-            jjmatchedKind = 186;

+            jjmatchedKind = 187;

             jjmatchedPos = 7;

          }

-         else if ((active3 & 0x80L) != 0L)

+         else if ((active3 & 0x400L) != 0L)

          {

-            jjmatchedKind = 199;

+            jjmatchedKind = 202;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0x60000000000400L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0xc0000000000400L, active3, 0L);

       case 70:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x1000L);

       case 73:

-         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x10000020L, active3, 0x400L);

+         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x20000020L, active3, 0x2000L);

       case 76:

-         if ((active2 & 0x80000000L) != 0L)

+         if ((active2 & 0x100000000L) != 0L)

          {

-            jjmatchedKind = 159;

+            jjmatchedKind = 160;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x800000000L) != 0L)

+         else if ((active2 & 0x1000000000L) != 0L)

          {

-            jjmatchedKind = 163;

+            jjmatchedKind = 164;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x2000000000L) != 0L)

+         else if ((active2 & 0x4000000000L) != 0L)

          {

-            jjmatchedKind = 165;

+            jjmatchedKind = 166;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x20000000000000L, active3, 0L);

       case 77:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x80000L);

       case 78:

          if ((active1 & 0x800L) != 0L)

          {

             jjmatchedKind = 75;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x400000L, active3, 0L);

       case 79:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x200000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x400000000000000L, active3, 0L);

       case 82:

-         if ((active2 & 0x200000000000L) != 0L)

+         if ((active2 & 0x400000000000L) != 0L)

          {

-            jjmatchedKind = 173;

+            jjmatchedKind = 174;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x100000000000L, active3, 0x4000L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x200000000000L, active3, 0x20000L);

       case 83:

          if ((active0 & 0x20000000000000L) != 0L)

          {

@@ -2332,29 +2356,29 @@
             jjmatchedKind = 141;

             jjmatchedPos = 7;

          }

-         else if ((active3 & 0x800L) != 0L)

+         else if ((active3 & 0x4000L) != 0L)

          {

-            jjmatchedKind = 203;

+            jjmatchedKind = 206;

             jjmatchedPos = 7;

          }

          break;

       case 86:

          return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x80L, active2, 0L, active3, 0L);

       case 87:

-         if ((active2 & 0x4000000000000L) != 0L)

+         if ((active2 & 0x8000000000000L) != 0L)

          {

-            jjmatchedKind = 178;

+            jjmatchedKind = 179;

             jjmatchedPos = 7;

          }

          break;

       case 95:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x4000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8000L, active3, 0L);

       case 97:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 99:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x400000L, active2, 0L, active3, 0x2002L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x400000L, active2, 0x4000L, active3, 0x10008L);

       case 100:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x800L);

       case 101:

          if ((active0 & 0x20000000000L) != 0L)

          {

@@ -2366,61 +2390,61 @@
             jjmatchedKind = 106;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x80000000000000L) != 0L)

+         else if ((active2 & 0x100000000000000L) != 0L)

          {

-            jjmatchedKind = 183;

+            jjmatchedKind = 184;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x400000000000000L) != 0L)

+         else if ((active2 & 0x800000000000000L) != 0L)

          {

-            jjmatchedKind = 186;

+            jjmatchedKind = 187;

             jjmatchedPos = 7;

          }

-         else if ((active3 & 0x80L) != 0L)

+         else if ((active3 & 0x400L) != 0L)

          {

-            jjmatchedKind = 199;

+            jjmatchedKind = 202;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0x60000000000400L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0xc0000000000400L, active3, 0L);

       case 102:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x1000L);

       case 105:

-         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x10000020L, active3, 0x400L);

+         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x20000020L, active3, 0x2000L);

       case 108:

-         if ((active2 & 0x80000000L) != 0L)

+         if ((active2 & 0x100000000L) != 0L)

          {

-            jjmatchedKind = 159;

+            jjmatchedKind = 160;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x800000000L) != 0L)

+         else if ((active2 & 0x1000000000L) != 0L)

          {

-            jjmatchedKind = 163;

+            jjmatchedKind = 164;

             jjmatchedPos = 7;

          }

-         else if ((active2 & 0x2000000000L) != 0L)

+         else if ((active2 & 0x4000000000L) != 0L)

          {

-            jjmatchedKind = 165;

+            jjmatchedKind = 166;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x20000000000000L, active3, 0L);

       case 109:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x80000L);

       case 110:

          if ((active1 & 0x800L) != 0L)

          {

             jjmatchedKind = 75;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x400000L, active3, 0L);

       case 111:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x200000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x400000000000000L, active3, 0L);

       case 114:

-         if ((active2 & 0x200000000000L) != 0L)

+         if ((active2 & 0x400000000000L) != 0L)

          {

-            jjmatchedKind = 173;

+            jjmatchedKind = 174;

             jjmatchedPos = 7;

          }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x100000000000L, active3, 0x4000L);

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x200000000000L, active3, 0x20000L);

       case 115:

          if ((active0 & 0x20000000000000L) != 0L)

          {

@@ -2454,18 +2478,18 @@
             jjmatchedKind = 141;

             jjmatchedPos = 7;

          }

-         else if ((active3 & 0x800L) != 0L)

+         else if ((active3 & 0x4000L) != 0L)

          {

-            jjmatchedKind = 203;

+            jjmatchedKind = 206;

             jjmatchedPos = 7;

          }

          break;

       case 118:

          return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x80L, active2, 0L, active3, 0L);

       case 119:

-         if ((active2 & 0x4000000000000L) != 0L)

+         if ((active2 & 0x8000000000000L) != 0L)

          {

-            jjmatchedKind = 178;

+            jjmatchedKind = 179;

             jjmatchedPos = 7;

          }

          break;

@@ -2485,18 +2509,18 @@
    switch(curChar)

    {

       case 50:

-         if ((active2 & 0x100000000000L) != 0L)

+         if ((active2 & 0x200000000000L) != 0L)

          {

-            jjmatchedKind = 172;

+            jjmatchedKind = 173;

             jjmatchedPos = 8;

          }

          break;

       case 65:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0x2L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x20000000L, active3, 0x8L);

       case 68:

-         if ((active2 & 0x20000000000000L) != 0L)

+         if ((active2 & 0x40000000000000L) != 0L)

          {

-            jjmatchedKind = 181;

+            jjmatchedKind = 182;

             jjmatchedPos = 8;

          }

          break;

@@ -2513,29 +2537,29 @@
          }

          return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);

       case 71:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0L);

       case 73:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x400000L, active3, 0L);

       case 76:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x1000L);

       case 78:

          if ((active1 & 0x40L) != 0L)

          {

             jjmatchedKind = 70;

             jjmatchedPos = 8;

          }

-         else if ((active2 & 0x200000000000000L) != 0L)

+         else if ((active2 & 0x400000000000000L) != 0L)

          {

-            jjmatchedKind = 185;

+            jjmatchedKind = 186;

             jjmatchedPos = 8;

          }

-         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x2000L);

       case 79:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x800L);

       case 80:

-         if ((active3 & 0x10000L) != 0L)

+         if ((active3 & 0x80000L) != 0L)

          {

-            jjmatchedKind = 208;

+            jjmatchedKind = 211;

             jjmatchedPos = 8;

          }

          break;

@@ -2554,24 +2578,24 @@
             jjmatchedKind = 86;

             jjmatchedPos = 8;

          }

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x2000000004000L, active3, 0L);

       case 85:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x4000L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8000L, active3, 0x10000L);

       case 89:

-         if ((active3 & 0x4000L) != 0L)

+         if ((active3 & 0x20000L) != 0L)

          {

-            jjmatchedKind = 206;

+            jjmatchedKind = 209;

             jjmatchedPos = 8;

          }

          break;

       case 95:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x20000000000000L, active3, 0L);

       case 97:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0x2L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x20000000L, active3, 0x8L);

       case 100:

-         if ((active2 & 0x20000000000000L) != 0L)

+         if ((active2 & 0x40000000000000L) != 0L)

          {

-            jjmatchedKind = 181;

+            jjmatchedKind = 182;

             jjmatchedPos = 8;

          }

          break;

@@ -2588,29 +2612,29 @@
          }

          return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);

       case 103:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0L);

       case 105:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x400000L, active3, 0L);

       case 108:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x1000L);

       case 110:

          if ((active1 & 0x40L) != 0L)

          {

             jjmatchedKind = 70;

             jjmatchedPos = 8;

          }

-         else if ((active2 & 0x200000000000000L) != 0L)

+         else if ((active2 & 0x400000000000000L) != 0L)

          {

-            jjmatchedKind = 185;

+            jjmatchedKind = 186;

             jjmatchedPos = 8;

          }

-         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x2000L);

       case 111:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x800L);

       case 112:

-         if ((active3 & 0x10000L) != 0L)

+         if ((active3 & 0x80000L) != 0L)

          {

-            jjmatchedKind = 208;

+            jjmatchedKind = 211;

             jjmatchedPos = 8;

          }

          break;

@@ -2629,13 +2653,13 @@
             jjmatchedKind = 86;

             jjmatchedPos = 8;

          }

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x2000000004000L, active3, 0L);

       case 117:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x4000L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8000L, active3, 0x10000L);

       case 121:

-         if ((active3 & 0x4000L) != 0L)

+         if ((active3 & 0x20000L) != 0L)

          {

-            jjmatchedKind = 206;

+            jjmatchedKind = 209;

             jjmatchedPos = 8;

          }

          break;

@@ -2655,9 +2679,9 @@
    switch(curChar)

    {

       case 66:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20000000L, active3, 0L);

       case 67:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x8L);

       case 68:

          if ((active1 & 0x10000L) != 0L)

          {

@@ -2666,33 +2690,33 @@
          }

          break;

       case 69:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x50000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0xa0000000000000L, active3, 0L);

       case 73:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 79:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x4010L, active3, 0x1000L);

       case 82:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);

       case 83:

          if ((active1 & 0x20000000L) != 0L)

          {

             jjmatchedKind = 93;

             jjmatchedPos = 9;

          }

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x204000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x408000L, active3, 0L);

       case 84:

          if ((active0 & 0x800000000000000L) != 0L)

          {

             jjmatchedKind = 59;

             jjmatchedPos = 9;

          }

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x2000L);

       case 85:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x800L);

       case 98:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20000000L, active3, 0L);

       case 99:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x8L);

       case 100:

          if ((active1 & 0x10000L) != 0L)

          {

@@ -2701,29 +2725,29 @@
          }

          break;

       case 101:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x50000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0xa0000000000000L, active3, 0L);

       case 105:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 111:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x4010L, active3, 0x1000L);

       case 114:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);

       case 115:

          if ((active1 & 0x20000000L) != 0L)

          {

             jjmatchedKind = 93;

             jjmatchedPos = 9;

          }

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x204000L, active3, 0L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x408000L, active3, 0L);

       case 116:

          if ((active0 & 0x800000000000000L) != 0L)

          {

             jjmatchedKind = 59;

             jjmatchedPos = 9;

          }

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x2000L);

       case 117:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x800L);

       default :

          break;

    }

@@ -2740,55 +2764,65 @@
    switch(curChar)

    {

       case 65:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x1000L);

       case 66:

-         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x800L);

       case 69:

-         return jjMoveStringLiteralDfa11_0(active2, 0x4020L, active3, 0x400L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x8020L, active3, 0x2000L);

       case 72:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2L);

+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x8L);

       case 76:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x20000000L, active3, 0L);

       case 78:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x20000000000000L, active3, 0L);

       case 79:

-         return jjMoveStringLiteralDfa11_0(active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x2000000000000L, active3, 0L);

       case 82:

-         if ((active2 & 0x40000000000000L) != 0L)

+         if ((active2 & 0x4000L) != 0L)

          {

-            jjmatchedKind = 182;

+            jjmatchedKind = 142;

+            jjmatchedPos = 10;

+         }

+         else if ((active2 & 0x80000000000000L) != 0L)

+         {

+            jjmatchedKind = 183;

             jjmatchedPos = 10;

          }

          break;

       case 83:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x10000L);

       case 84:

-         return jjMoveStringLiteralDfa11_0(active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x400000L, active3, 0L);

       case 97:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x200L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x1000L);

       case 98:

-         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x800L);

       case 101:

-         return jjMoveStringLiteralDfa11_0(active2, 0x4020L, active3, 0x400L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x8020L, active3, 0x2000L);

       case 104:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2L);

+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x8L);

       case 108:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x20000000L, active3, 0L);

       case 110:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x20000000000000L, active3, 0L);

       case 111:

-         return jjMoveStringLiteralDfa11_0(active2, 0x1000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x2000000000000L, active3, 0L);

       case 114:

-         if ((active2 & 0x40000000000000L) != 0L)

+         if ((active2 & 0x4000L) != 0L)

          {

-            jjmatchedKind = 182;

+            jjmatchedKind = 142;

+            jjmatchedPos = 10;

+         }

+         else if ((active2 & 0x80000000000000L) != 0L)

+         {

+            jjmatchedKind = 183;

             jjmatchedPos = 10;

          }

          break;

       case 115:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x10000L);

       case 116:

-         return jjMoveStringLiteralDfa11_0(active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa11_0(active2, 0x400000L, active3, 0L);

       default :

          break;

    }

@@ -2805,38 +2839,38 @@
    switch(curChar)

    {

       case 65:

-         return jjMoveStringLiteralDfa12_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x20000000000000L, active3, 0L);

       case 69:

-         if ((active2 & 0x10000000L) != 0L)

+         if ((active2 & 0x20000000L) != 0L)

          {

-            jjmatchedKind = 156;

+            jjmatchedKind = 157;

             jjmatchedPos = 11;

          }

-         else if ((active3 & 0x2L) != 0L)

+         else if ((active3 & 0x8L) != 0L)

          {

-            jjmatchedKind = 193;

+            jjmatchedKind = 195;

             jjmatchedPos = 11;

          }

          break;

       case 71:

-         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x2000L);

       case 73:

-         return jjMoveStringLiteralDfa12_0(active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x400000L, active3, 0L);

       case 76:

-         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x800L);

       case 78:

-         if ((active2 & 0x1000000000000L) != 0L)

+         if ((active2 & 0x2000000000000L) != 0L)

          {

-            jjmatchedKind = 176;

+            jjmatchedKind = 177;

             jjmatchedPos = 11;

          }

          break;

       case 79:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x10000L);

       case 82:

-         if ((active2 & 0x4000L) != 0L)

+         if ((active2 & 0x8000L) != 0L)

          {

-            jjmatchedKind = 142;

+            jjmatchedKind = 143;

             jjmatchedPos = 11;

          }

          break;

@@ -2846,45 +2880,45 @@
             jjmatchedKind = 132;

             jjmatchedPos = 11;

          }

-         else if ((active3 & 0x200L) != 0L)

+         else if ((active3 & 0x1000L) != 0L)

          {

-            jjmatchedKind = 201;

+            jjmatchedKind = 204;

             jjmatchedPos = 11;

          }

          break;

       case 97:

-         return jjMoveStringLiteralDfa12_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x20000000000000L, active3, 0L);

       case 101:

-         if ((active2 & 0x10000000L) != 0L)

+         if ((active2 & 0x20000000L) != 0L)

          {

-            jjmatchedKind = 156;

+            jjmatchedKind = 157;

             jjmatchedPos = 11;

          }

-         else if ((active3 & 0x2L) != 0L)

+         else if ((active3 & 0x8L) != 0L)

          {

-            jjmatchedKind = 193;

+            jjmatchedKind = 195;

             jjmatchedPos = 11;

          }

          break;

       case 103:

-         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x2000L);

       case 105:

-         return jjMoveStringLiteralDfa12_0(active2, 0x200000L, active3, 0L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x400000L, active3, 0L);

       case 108:

-         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x100L);

+         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x800L);

       case 110:

-         if ((active2 & 0x1000000000000L) != 0L)

+         if ((active2 & 0x2000000000000L) != 0L)

          {

-            jjmatchedKind = 176;

+            jjmatchedKind = 177;

             jjmatchedPos = 11;

          }

          break;

       case 111:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x2000L);

+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x10000L);

       case 114:

-         if ((active2 & 0x4000L) != 0L)

+         if ((active2 & 0x8000L) != 0L)

          {

-            jjmatchedKind = 142;

+            jjmatchedKind = 143;

             jjmatchedPos = 11;

          }

          break;

@@ -2894,9 +2928,9 @@
             jjmatchedKind = 132;

             jjmatchedPos = 11;

          }

-         else if ((active3 & 0x200L) != 0L)

+         else if ((active3 & 0x1000L) != 0L)

          {

-            jjmatchedKind = 201;

+            jjmatchedKind = 204;

             jjmatchedPos = 11;

          }

          break;

@@ -2916,11 +2950,11 @@
    switch(curChar)

    {

       case 66:

-         return jjMoveStringLiteralDfa13_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa13_0(active2, 0x20000000000000L, active3, 0L);

       case 67:

-         if ((active2 & 0x200000L) != 0L)

+         if ((active2 & 0x400000L) != 0L)

          {

-            jjmatchedKind = 149;

+            jjmatchedKind = 150;

             jjmatchedPos = 12;

          }

          break;

@@ -2930,25 +2964,25 @@
             jjmatchedKind = 131;

             jjmatchedPos = 12;

          }

-         else if ((active3 & 0x100L) != 0L)

+         else if ((active3 & 0x800L) != 0L)

          {

-            jjmatchedKind = 200;

+            jjmatchedKind = 203;

             jjmatchedPos = 12;

          }

-         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x2000L);

       case 82:

-         if ((active3 & 0x2000L) != 0L)

+         if ((active3 & 0x10000L) != 0L)

          {

-            jjmatchedKind = 205;

+            jjmatchedKind = 208;

             jjmatchedPos = 12;

          }

          break;

       case 98:

-         return jjMoveStringLiteralDfa13_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa13_0(active2, 0x20000000000000L, active3, 0L);

       case 99:

-         if ((active2 & 0x200000L) != 0L)

+         if ((active2 & 0x400000L) != 0L)

          {

-            jjmatchedKind = 149;

+            jjmatchedKind = 150;

             jjmatchedPos = 12;

          }

          break;

@@ -2958,16 +2992,16 @@
             jjmatchedKind = 131;

             jjmatchedPos = 12;

          }

-         else if ((active3 & 0x100L) != 0L)

+         else if ((active3 & 0x800L) != 0L)

          {

-            jjmatchedKind = 200;

+            jjmatchedKind = 203;

             jjmatchedPos = 12;

          }

-         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x400L);

+         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x2000L);

       case 114:

-         if ((active3 & 0x2000L) != 0L)

+         if ((active3 & 0x10000L) != 0L)

          {

-            jjmatchedKind = 205;

+            jjmatchedKind = 208;

             jjmatchedPos = 12;

          }

          break;

@@ -2987,30 +3021,30 @@
    switch(curChar)

    {

       case 76:

-         return jjMoveStringLiteralDfa14_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa14_0(active2, 0x20000000000000L, active3, 0L);

       case 82:

          if ((active2 & 0x20L) != 0L)

          {

             jjmatchedKind = 133;

             jjmatchedPos = 13;

          }

-         else if ((active3 & 0x400L) != 0L)

+         else if ((active3 & 0x2000L) != 0L)

          {

-            jjmatchedKind = 202;

+            jjmatchedKind = 205;

             jjmatchedPos = 13;

          }

          break;

       case 108:

-         return jjMoveStringLiteralDfa14_0(active2, 0x10000000000000L, active3, 0L);

+         return jjMoveStringLiteralDfa14_0(active2, 0x20000000000000L, active3, 0L);

       case 114:

          if ((active2 & 0x20L) != 0L)

          {

             jjmatchedKind = 133;

             jjmatchedPos = 13;

          }

-         else if ((active3 & 0x400L) != 0L)

+         else if ((active3 & 0x2000L) != 0L)

          {

-            jjmatchedKind = 202;

+            jjmatchedKind = 205;

             jjmatchedPos = 13;

          }

          break;

@@ -3030,16 +3064,16 @@
    switch(curChar)

    {

       case 69:

-         if ((active2 & 0x10000000000000L) != 0L)

+         if ((active2 & 0x20000000000000L) != 0L)

          {

-            jjmatchedKind = 180;

+            jjmatchedKind = 181;

             jjmatchedPos = 14;

          }

          break;

       case 101:

-         if ((active2 & 0x10000000000000L) != 0L)

+         if ((active2 & 0x20000000000000L) != 0L)

          {

-            jjmatchedKind = 180;

+            jjmatchedKind = 181;

             jjmatchedPos = 14;

          }

          break;

@@ -3150,8 +3184,8 @@
                case 14:

                   if ((0x3ff001800000000L & l) == 0L)

                      break;

-                  if (kind > 216)

-                     kind = 216;

+                  if (kind > 219)

+                     kind = 219;

                   jjstateSet[jjnewStateCnt++] = 14;

                   break;

                case 15:

@@ -3161,8 +3195,8 @@
                case 17:

                   if ((0x3ff001800000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjAddStates(16, 17);

                   break;

                case 18:

@@ -3172,29 +3206,29 @@
                case 20:

                   if ((0x3ff001800000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjstateSet[jjnewStateCnt++] = 20;

                   break;

                case 21:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddStates(18, 24);

                   break;

                case 22:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(22);

                   break;

                case 23:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(23, 24);

                   break;

                case 24:

@@ -3204,15 +3238,15 @@
                case 25:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(25);

                   break;

                case 26:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(26, 27);

                   break;

                case 28:

@@ -3226,29 +3260,29 @@
                case 30:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(30);

                   break;

                case 31:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddStates(27, 29);

                   break;

                case 32:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(32);

                   break;

                case 33:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(33, 34);

                   break;

                case 34:

@@ -3258,15 +3292,15 @@
                case 35:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(35);

                   break;

                case 36:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddStates(30, 32);

                   break;

                case 37:

@@ -3276,8 +3310,8 @@
                case 38:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(38, 27);

                   break;

                case 39:

@@ -3287,15 +3321,15 @@
                case 40:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(40);

                   break;

                case 41:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(41, 27);

                   break;

                case 42:

@@ -3309,8 +3343,8 @@
                case 44:

                   if (curChar != 39)

                      break;

-                  if (kind > 220)

-                     kind = 220;

+                  if (kind > 223)

+                     kind = 223;

                   jjstateSet[jjnewStateCnt++] = 45;

                   break;

                case 45:

@@ -3330,8 +3364,8 @@
                      jjCheckNAddTwoStates(48, 49);

                   break;

                case 49:

-                  if (curChar == 34 && kind > 221)

-                     kind = 221;

+                  if (curChar == 34 && kind > 224)

+                     kind = 224;

                   break;

                case 50:

                   if (curChar == 46)

@@ -3470,8 +3504,8 @@
                case 13:

                   if ((0x7fffffe07fffffeL & l) == 0L)

                      break;

-                  if (kind > 216)

-                     kind = 216;

+                  if (kind > 219)

+                     kind = 219;

                   jjCheckNAddTwoStates(13, 14);

                   break;

                case 1:

@@ -3487,36 +3521,36 @@
                case 14:

                   if ((0x7fffffe87ffffffL & l) == 0L)

                      break;

-                  if (kind > 216)

-                     kind = 216;

+                  if (kind > 219)

+                     kind = 219;

                   jjCheckNAdd(14);

                   break;

                case 16:

                   if ((0x7fffffe07fffffeL & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddStates(41, 43);

                   break;

                case 17:

                   if ((0x7fffffe87ffffffL & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(17, 18);

                   break;

                case 19:

                   if ((0x7fffffe07fffffeL & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAddTwoStates(19, 20);

                   break;

                case 20:

                   if ((0x7fffffe87ffffffL & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 222)

+                     kind = 222;

                   jjCheckNAdd(20);

                   break;

                case 27:

@@ -3649,14 +3683,14 @@
 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, };

+null, null, null, null, null, null, null, null, null, null, };

 

 /** Lexer state names. */

 public static final String[] lexStateNames = {

    "DEFAULT",

 };

 static final long[] jjtoToken = {
-   0xffffff8fffffff01L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x39ffffffL, 
+   0xffffff8fffffff01L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x1cfffffffL, 
 };

 static final long[] jjtoSkip = {
    0xfeL, 0x0L, 0x0L, 0x0L,