Bug 393377 - DBWS: need to support sys.XMLTYPE
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 76d2d72..5f9aa44 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
@@ -82,6 +82,7 @@
 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SMALLINT_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SYS_REFCURSOR_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.TIME_TYPE;

+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.XMLTYPE_TYPE;

 

 @SuppressWarnings("all")
 public class DDLParser/*@bgen(jjtree)*/implements DDLParserTreeConstants, DDLParserConstants {/*@bgen(jjtree)*/

@@ -380,6 +381,12 @@
     case K_VARYING:

       t = jj_consume_token(K_VARYING);

       break;

+    case K_XMLTYPE:

+      t = jj_consume_token(K_XMLTYPE);

+      break;

+    case K_SYSXMLTYPE:

+      t = jj_consume_token(K_SYSXMLTYPE);

+      break;

     case K_YEAR:

       t = jj_consume_token(K_YEAR);

       break;

@@ -527,6 +534,8 @@
       case K_VARCHAR:

       case K_VARRAY:

       case K_VARYING:

+      case K_XMLTYPE:

+      case K_SYSXMLTYPE:

       case K_YEAR:

       case K_ZONE:

       case S_IDENTIFIER:

@@ -942,6 +951,8 @@
       case K_VARCHAR:

       case K_VARRAY:

       case K_VARYING:

+      case K_XMLTYPE:

+      case K_SYSXMLTYPE:

       case K_YEAR:

       case K_ZONE:

       case S_IDENTIFIER:

@@ -1105,6 +1116,8 @@
     case K_VARCHAR:

     case K_VARRAY:

     case K_VARYING:

+    case K_XMLTYPE:

+    case K_SYSXMLTYPE:

     case K_YEAR:

     case K_ZONE:

     case S_IDENTIFIER:

@@ -1244,6 +1257,8 @@
       case K_VARCHAR:

       case K_VARRAY:

       case K_VARYING:

+      case K_XMLTYPE:

+      case K_SYSXMLTYPE:

       case K_YEAR:

       case K_ZONE:

       case S_IDENTIFIER:

@@ -1500,6 +1515,8 @@
       case K_VARCHAR:

       case K_VARRAY:

       case K_VARYING:

+      case K_XMLTYPE:

+      case K_SYSXMLTYPE:

       case K_YEAR:

       case K_ZONE:

       case S_IDENTIFIER:

@@ -1758,6 +1775,14 @@
       jj_consume_token(K_BOOLEAN);

                     {if (true) return BOOLEAN_TYPE;}

       break;

+    case K_XMLTYPE:

+      jj_consume_token(K_XMLTYPE);

+                    {if (true) return XMLTYPE_TYPE;}

+      break;

+    case K_SYSXMLTYPE:

+      jj_consume_token(K_SYSXMLTYPE);

+                       {if (true) return XMLTYPE_TYPE;}

+      break;

     case K_DATE:

       jj_consume_token(K_DATE);

                  {if (true) return DATE_TYPE;}

@@ -2456,6 +2481,8 @@
       case K_VARCHAR:

       case K_VARRAY:

       case K_VARYING:

+      case K_XMLTYPE:

+      case K_SYSXMLTYPE:

       case K_YEAR:

       case K_ZONE:

       case S_IDENTIFIER:

@@ -3524,27 +3551,6 @@
     catch(LookaheadSuccess ls) { return true; }

   }

 

-  private boolean jj_3R_14() {

-    if (jj_scan_token(R_ANCHORED_ROWTYPE)) return true;

-    return false;

-  }

-

-  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_6() {

-    if (jj_scan_token(K_CONSTRUCTOR)) return true;

-    return false;

-  }

-

-  private boolean jj_3_12() {

-    if (jj_scan_token(K_NOCOPY)) return true;

-    return false;

-  }

-

   private boolean jj_3R_13() {

     if (jj_scan_token(R_ANCHORED_TYPE)) return true;

     return false;

@@ -3555,22 +3561,12 @@
     return false;

   }

 

-  private boolean jj_3R_59() {

+  private boolean jj_3R_61() {

     if (jj_scan_token(K_VARYING)) return true;

     if (jj_scan_token(K_ARRAY)) return true;

     return false;

   }

 

-  private boolean jj_3R_24() {

-    if (jj_scan_token(K_LONG)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_63()) jj_scanpos = xsp;

-    return false;

-  }

-

   private boolean jj_3_10() {

     if (jj_3R_12()) return true;

     Token xsp;

@@ -3587,22 +3583,32 @@
     return false;

   }

 

+  private boolean jj_3R_24() {

+    if (jj_scan_token(K_LONG)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

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

+    xsp = jj_scanpos;

+    if (jj_3R_65()) jj_scanpos = xsp;

+    return false;

+  }

+

   private boolean jj_3_8() {

     if (jj_3R_10()) return true;

     return false;

   }

 

-  private boolean jj_3R_52() {

+  private boolean jj_3R_54() {

     if (jj_scan_token(K_NCHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

     if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_78()) jj_scanpos = xsp;

+    if (jj_3R_80()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_75() {

+  private boolean jj_3R_77() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

@@ -3624,29 +3630,29 @@
     xsp = jj_scanpos;

     if (jj_scan_token(215)) {

     jj_scanpos = xsp;

-    if (jj_3R_59()) return true;

+    if (jj_3R_61()) return true;

     }

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_73() {

+  private boolean jj_3R_75() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_51() {

+  private boolean jj_3R_53() {

     if (jj_scan_token(K_CHARACTER)) return true;

     Token xsp;

     xsp = jj_scanpos;

     if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_77()) jj_scanpos = xsp;

+    if (jj_3R_79()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_87() {

+  private boolean jj_3R_89() {

     Token xsp;

     xsp = jj_scanpos;

     if (jj_scan_token(9)) {

@@ -3656,19 +3662,56 @@
     return false;

   }

 

+  private boolean jj_3R_78() {

+    if (jj_scan_token(K_CHARACTER)) return true;

+    if (jj_scan_token(K_SET)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_62() {

+    if (jj_scan_token(O_DOT)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_52() {

+    if (jj_scan_token(K_VARCHAR2)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

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

+    xsp = jj_scanpos;

+    if (jj_3R_77()) jj_scanpos = xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_78()) jj_scanpos = xsp;

+    return false;

+  }

+

+  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_76() {

     if (jj_scan_token(K_CHARACTER)) return true;

     if (jj_scan_token(K_SET)) return true;

     return false;

   }

 

-  private boolean jj_3R_60() {

-    if (jj_scan_token(O_DOT)) return true;

+  private boolean jj_3R_64() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_89()) jj_scanpos = xsp;

+    while (true) {

+      xsp = jj_scanpos;

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

+    }

+    if (jj_scan_token(O_CLOSEPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_50() {

-    if (jj_scan_token(K_VARCHAR2)) return true;

+  private boolean jj_3R_51() {

+    if (jj_scan_token(K_VARCHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

     if (jj_scan_token(216)) jj_scanpos = xsp;

@@ -3679,43 +3722,6 @@
     return false;

   }

 

-  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_74() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_62() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_87()) jj_scanpos = xsp;

-    while (true) {

-      xsp = jj_scanpos;

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

-    }

-    if (jj_scan_token(O_CLOSEPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_49() {

-    if (jj_scan_token(K_VARCHAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_73()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_74()) jj_scanpos = xsp;

-    return false;

-  }

-

   private boolean jj_3R_23() {

     Token xsp;

     xsp = jj_scanpos;

@@ -3730,7 +3736,7 @@
     }

     }

     xsp = jj_scanpos;

-    if (jj_3R_62()) jj_scanpos = xsp;

+    if (jj_3R_64()) jj_scanpos = xsp;

     return false;

   }

 

@@ -3744,6 +3750,14 @@
     return false;

   }

 

+  private boolean jj_3R_12() {

+    if (jj_3R_59()) return true;

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3R_62()) jj_scanpos = xsp;

+    return false;

+  }

+

   private boolean jj_3R_21() {

     if (jj_scan_token(K_POSITIVE)) return true;

     return false;

@@ -3754,11 +3768,8 @@
     return false;

   }

 

-  private boolean jj_3R_12() {

-    if (jj_3R_57()) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_60()) jj_scanpos = xsp;

+  private boolean jj_3_13() {

+    if (jj_scan_token(K_OUT)) return true;

     return false;

   }

 

@@ -3772,11 +3783,6 @@
     return false;

   }

 

-  private boolean jj_3_13() {

-    if (jj_scan_token(K_OUT)) return true;

-    return false;

-  }

-

   private boolean jj_3R_17() {

     if (jj_scan_token(K_BINARY_INTEGER)) return true;

     return false;

@@ -3863,7 +3869,13 @@
     jj_scanpos = xsp;

     if (jj_3R_55()) {

     jj_scanpos = xsp;

-    if (jj_3R_56()) return true;

+    if (jj_3R_56()) {

+    jj_scanpos = xsp;

+    if (jj_3R_57()) {

+    jj_scanpos = xsp;

+    if (jj_3R_58()) return true;

+    }

+    }

     }

     }

     }

@@ -3906,41 +3918,41 @@
     return false;

   }

 

-  private boolean jj_3R_72() {

+  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_70() {

+  private boolean jj_3R_72() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_83() {

+  private boolean jj_3R_85() {

     if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;

     return false;

   }

 

-  private boolean jj_3R_82() {

+  private boolean jj_3R_84() {

     if (jj_scan_token(S_IDENTIFIER)) return true;

     return false;

   }

 

-  private boolean jj_3R_48() {

+  private boolean jj_3R_50() {

     if (jj_scan_token(K_CHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

     if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_71()) jj_scanpos = xsp;

+    if (jj_3R_73()) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_72()) jj_scanpos = xsp;

+    if (jj_3R_74()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_47() {

+  private boolean jj_3R_49() {

     if (jj_scan_token(K_DOUBLE)) return true;

     if (jj_scan_token(K_PRECISION)) return true;

     return false;

@@ -3951,33 +3963,33 @@
     return false;

   }

 

-  private boolean jj_3R_57() {

+  private boolean jj_3R_59() {

     Token xsp;

     xsp = jj_scanpos;

     if (jj_3_15()) {

     jj_scanpos = xsp;

-    if (jj_3R_82()) {

+    if (jj_3R_84()) {

     jj_scanpos = xsp;

-    if (jj_3R_83()) return true;

+    if (jj_3R_85()) return true;

     }

     }

     return false;

   }

 

-  private boolean jj_3R_61() {

+  private boolean jj_3R_63() {

     if (jj_scan_token(K_OUT)) return true;

     return false;

   }

 

-  private boolean jj_3R_46() {

+  private boolean jj_3R_48() {

     if (jj_scan_token(K_UROWID)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_70()) jj_scanpos = xsp;

+    if (jj_3R_72()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_45() {

+  private boolean jj_3R_47() {

     if (jj_scan_token(K_ROWID)) return true;

     return false;

   }

@@ -3990,45 +4002,40 @@
     return false;

   }

 

+  private boolean jj_3R_46() {

+    if (jj_scan_token(K_BFILE)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_45() {

+    if (jj_scan_token(K_NCLOB)) return true;

+    return false;

+  }

+

   private boolean jj_3_4() {

     if (jj_scan_token(K_CONSTANT)) return true;

     return false;

   }

 

   private boolean jj_3R_44() {

-    if (jj_scan_token(K_BFILE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_43() {

-    if (jj_scan_token(K_NCLOB)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_58() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_4()) jj_scanpos = xsp;

-    if (jj_3R_84()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_42() {

     if (jj_scan_token(K_BLOB)) return true;

     return false;

   }

 

-  private boolean jj_3_5() {

-    if (jj_scan_token(R_EXCEPTION)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_41() {

+  private boolean jj_3R_43() {

     if (jj_scan_token(K_SYS_REFCURSOR)) return true;

     return false;

   }

 

-  private boolean jj_3R_40() {

+  private boolean jj_3R_60() {

+    Token xsp;

+    xsp = jj_scanpos;

+    if (jj_3_4()) jj_scanpos = xsp;

+    if (jj_3R_86()) return true;

+    return false;

+  }

+

+  private boolean jj_3R_42() {

     if (jj_scan_token(K_SIMPLE_DOUBLE)) return true;

     return false;

   }

@@ -4038,54 +4045,59 @@
     xsp = jj_scanpos;

     if (jj_3_14()) {

     jj_scanpos = xsp;

-    if (jj_3R_61()) return true;

+    if (jj_3R_63()) return true;

     }

     return false;

   }

 

-  private boolean jj_3R_39() {

+  private boolean jj_3_5() {

+    if (jj_scan_token(R_EXCEPTION)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_41() {

     if (jj_scan_token(K_SIMPLE_FLOAT)) return true;

     return false;

   }

 

-  private boolean jj_3R_38() {

+  private boolean jj_3R_40() {

     if (jj_scan_token(K_SIMPLE_INTEGER)) return true;

     return false;

   }

 

-  private boolean jj_3R_85() {

+  private boolean jj_3R_87() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_37() {

+  private boolean jj_3R_39() {

     if (jj_scan_token(K_PLS_INTEGER)) return true;

     return false;

   }

 

-  private boolean jj_3R_69() {

+  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_36() {

+  private boolean jj_3R_38() {

     if (jj_scan_token(K_MLSLABEL)) return true;

     return false;

   }

 

-  private boolean jj_3R_35() {

+  private boolean jj_3R_37() {

     if (jj_scan_token(K_REAL)) return true;

     return false;

   }

 

   private boolean jj_3R_8() {

-    if (jj_3R_57()) return true;

+    if (jj_3R_59()) return true;

     Token xsp;

     xsp = jj_scanpos;

     if (jj_3_5()) {

     jj_scanpos = xsp;

-    if (jj_3R_58()) return true;

+    if (jj_3R_60()) return true;

     }

     return false;

   }

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

   }

 

-  private boolean jj_3R_34() {

+  private boolean jj_3R_36() {

     if (jj_scan_token(K_FLOAT)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_69()) jj_scanpos = xsp;

+    if (jj_3R_71()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_33() {

+  private boolean jj_3R_35() {

     if (jj_scan_token(K_SMALLINT)) return true;

     return false;

   }

 

-  private boolean jj_3R_32() {

+  private boolean jj_3R_34() {

     if (jj_scan_token(K_INT)) return true;

     return false;

   }

 

-  private boolean jj_3R_31() {

+  private boolean jj_3R_33() {

     if (jj_scan_token(K_INTEGER)) return true;

     return false;

   }

 

-  private boolean jj_3R_67() {

+  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_86() {

+  private boolean jj_3R_88() {

     if (jj_3R_12()) return true;

     return false;

   }

@@ -4134,18 +4146,18 @@
     return false;

   }

 

-  private boolean jj_3R_90() {

+  private boolean jj_3R_92() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_81() {

+  private boolean jj_3R_83() {

     if (jj_scan_token(K_CHARACTER)) return true;

     if (jj_scan_token(K_SET)) return true;

     return false;

   }

 

-  private boolean jj_3R_68() {

+  private boolean jj_3R_70() {

     if (jj_scan_token(R_WITH)) return true;

     Token xsp;

     xsp = jj_scanpos;

@@ -4154,64 +4166,64 @@
     return false;

   }

 

-  private boolean jj_3R_84() {

+  private boolean jj_3R_86() {

     Token xsp;

     xsp = jj_scanpos;

     if (jj_3_6()) {

     jj_scanpos = xsp;

-    if (jj_3R_86()) return true;

+    if (jj_3R_88()) return true;

     }

     return false;

   }

 

-  private boolean jj_3R_30() {

+  private boolean jj_3R_32() {

     if (jj_scan_token(K_TIMESTAMP)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_67()) jj_scanpos = xsp;

+    if (jj_3R_69()) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_68()) jj_scanpos = xsp;

+    if (jj_3R_70()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_29() {

+  private boolean jj_3R_31() {

     if (jj_scan_token(K_TIME)) return true;

     return false;

   }

 

-  private boolean jj_3R_66() {

+  private boolean jj_3R_68() {

     if (jj_scan_token(K_YEAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_90()) jj_scanpos = xsp;

+    if (jj_3R_92()) jj_scanpos = xsp;

     if (jj_scan_token(R_TO)) return true;

     return false;

   }

 

-  private boolean jj_3R_56() {

+  private boolean jj_3R_58() {

     if (jj_scan_token(K_CLOB)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_81()) jj_scanpos = xsp;

+    if (jj_3R_83()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_89() {

+  private boolean jj_3R_91() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     return false;

   }

 

-  private boolean jj_3R_80() {

+  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_65() {

+  private boolean jj_3R_67() {

     if (jj_scan_token(K_DAY)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_89()) jj_scanpos = xsp;

+    if (jj_3R_91()) jj_scanpos = xsp;

     if (jj_scan_token(R_TO)) return true;

     return false;

   }

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

   }

 

-  private boolean jj_3R_55() {

+  private boolean jj_3R_57() {

     if (jj_scan_token(K_NATIONAL)) return true;

     Token xsp;

     xsp = jj_scanpos;

@@ -4233,57 +4245,78 @@
     xsp = jj_scanpos;

     if (jj_scan_token(216)) jj_scanpos = xsp;

     xsp = jj_scanpos;

-    if (jj_3R_85()) jj_scanpos = xsp;

+    if (jj_3R_87()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_28() {

+  private boolean jj_3R_30() {

     if (jj_scan_token(K_INTERVAL)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_65()) {

+    if (jj_3R_67()) {

     jj_scanpos = xsp;

-    if (jj_3R_66()) return true;

+    if (jj_3R_68()) return true;

     }

     return false;

   }

 

-  private boolean jj_3R_79() {

+  private boolean jj_3R_81() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_27() {

+  private boolean jj_3R_29() {

     if (jj_scan_token(K_DATE)) return true;

     return false;

   }

 

+  private boolean jj_3R_28() {

+    if (jj_scan_token(K_SYSXMLTYPE)) return true;

+    return false;

+  }

+

+  private boolean jj_3R_27() {

+    if (jj_scan_token(K_XMLTYPE)) return true;

+    return false;

+  }

+

   private boolean jj_3R_26() {

     if (jj_scan_token(K_BOOLEAN)) return true;

     return false;

   }

 

-  private boolean jj_3R_64() {

+  private boolean jj_3R_66() {

     if (jj_scan_token(O_OPENPAREN)) return true;

     if (jj_scan_token(S_NUMBER)) return true;

     return false;

   }

 

-  private boolean jj_3R_54() {

+  private boolean jj_3R_56() {

     if (jj_scan_token(K_NVARCHAR2)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_80()) jj_scanpos = xsp;

+    if (jj_3R_82()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_78() {

+  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_65() {

+    if (jj_scan_token(O_OPENPAREN)) return true;

+    if (jj_scan_token(S_NUMBER)) return true;

+    return false;

+  }

+

+  private boolean jj_3_11() {

+    if (jj_3R_15()) return true;

+    return false;

+  }

+

   private boolean jj_3R_16() {

     Token xsp;

     xsp = jj_scanpos;

@@ -4467,7 +4500,13 @@
     jj_scanpos = xsp;

     if (jj_scan_token(217)) {

     jj_scanpos = xsp;

-    if (jj_scan_token(218)) return true;

+    if (jj_scan_token(218)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(219)) {

+    jj_scanpos = xsp;

+    if (jj_scan_token(220)) return true;

+    }

+    }

     }

     }

     }

@@ -4561,18 +4600,7 @@
     return false;

   }

 

-  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_3_11() {

-    if (jj_3R_15()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_88() {

+  private boolean jj_3R_90() {

     if (jj_scan_token(O_COMMA)) return true;

     return false;

   }

@@ -4581,15 +4609,36 @@
     if (jj_scan_token(K_RAW)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_64()) jj_scanpos = xsp;

+    if (jj_3R_66()) jj_scanpos = xsp;

     return false;

   }

 

-  private boolean jj_3R_53() {

+  private boolean jj_3R_55() {

     if (jj_scan_token(K_NVARCHAR)) return true;

     Token xsp;

     xsp = jj_scanpos;

-    if (jj_3R_79()) jj_scanpos = xsp;

+    if (jj_3R_81()) jj_scanpos = xsp;

+    return false;

+  }

+

+  private boolean jj_3R_14() {

+    if (jj_scan_token(R_ANCHORED_ROWTYPE)) 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_6() {

+    if (jj_scan_token(K_CONSTRUCTOR)) return true;

+    return false;

+  }

+

+  private boolean jj_3_12() {

+    if (jj_scan_token(K_NOCOPY)) return true;

     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 fbdab47..32ccede 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
@@ -107,6 +107,7 @@
 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SMALLINT_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SYS_REFCURSOR_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.TIME_TYPE;

+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.XMLTYPE_TYPE;

 

 public class DDLParser/*@bgen(jjtree)*/implements DDLParserTreeConstants/*@egen*/ {/*@bgen(jjtree)*/

   protected JJTDDLParserState jjtree = new JJTDDLParserState();

@@ -383,6 +384,8 @@
     | <K_VARCHAR: "VARCHAR">

     | <K_VARRAY: "VARRAY">

     | <K_VARYING: "VARYING">

+    | <K_XMLTYPE: "XMLTYPE">

+    | <K_SYSXMLTYPE: "SYS.XMLTYPE">

     | <K_YEAR: "YEAR">

     | <K_ZONE: "ZONE">

 }

@@ -480,6 +483,8 @@
       | t=<K_VARCHAR>

       | t=<K_VARRAY>

       | t=<K_VARYING>

+      | t=<K_XMLTYPE>

+      | t=<K_SYSXMLTYPE>

       | t=<K_YEAR>

       | t=<K_ZONE>      

     )

@@ -941,6 +946,8 @@
             return dt;

             }

     | <K_BOOLEAN> { return BOOLEAN_TYPE;}

+    | <K_XMLTYPE> { return XMLTYPE_TYPE;}

+    | <K_SYSXMLTYPE> { return XMLTYPE_TYPE;}

     | <K_DATE> { return DATE_TYPE;}

     | <K_INTERVAL>

          (

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 0514429..0af6b09 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
@@ -106,6 +106,7 @@
 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SMALLINT_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SYS_REFCURSOR_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.TIME_TYPE;

+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.XMLTYPE_TYPE;

 

 public class DDLParser {

 

@@ -379,6 +380,8 @@
     | <K_VARCHAR: "VARCHAR">

     | <K_VARRAY: "VARRAY">

     | <K_VARYING: "VARYING">

+    | <K_XMLTYPE: "XMLTYPE">

+    | <K_SYSXMLTYPE: "SYS.XMLTYPE">

     | <K_YEAR: "YEAR">

     | <K_ZONE: "ZONE">

 }

@@ -476,6 +479,8 @@
       | t=<K_VARCHAR>

       | t=<K_VARRAY>

       | t=<K_VARYING>

+      | t=<K_XMLTYPE>

+      | t=<K_SYSXMLTYPE>

       | t=<K_YEAR>

       | t=<K_ZONE>      

     )

@@ -937,6 +942,8 @@
             return dt;

             }

     | <K_BOOLEAN> { return BOOLEAN_TYPE;}

+    | <K_XMLTYPE> { return XMLTYPE_TYPE;}

+    | <K_SYSXMLTYPE> { return XMLTYPE_TYPE;}

     | <K_DATE> { return DATE_TYPE;}

     | <K_INTERVAL>

          (

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 56a329f..b6c355a 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
@@ -446,21 +446,25 @@
   /** RegularExpression Id. */

   int K_VARYING = 216;

   /** RegularExpression Id. */

-  int K_YEAR = 217;

+  int K_XMLTYPE = 217;

   /** RegularExpression Id. */

-  int K_ZONE = 218;

+  int K_SYSXMLTYPE = 218;

   /** RegularExpression Id. */

-  int S_IDENTIFIER = 219;

+  int K_YEAR = 219;

   /** RegularExpression Id. */

-  int LETTER = 220;

+  int K_ZONE = 220;

   /** RegularExpression Id. */

-  int SPECIAL_CHARS = 221;

+  int S_IDENTIFIER = 221;

   /** RegularExpression Id. */

-  int S_BIND = 222;

+  int LETTER = 222;

   /** RegularExpression Id. */

-  int S_CHAR_LITERAL = 223;

+  int SPECIAL_CHARS = 223;

   /** RegularExpression Id. */

-  int S_QUOTED_IDENTIFIER = 224;

+  int S_BIND = 224;

+  /** RegularExpression Id. */

+  int S_CHAR_LITERAL = 225;

+  /** RegularExpression Id. */

+  int S_QUOTED_IDENTIFIER = 226;

 

   /** Lexical state. */

   int DEFAULT = 0;

@@ -684,6 +688,8 @@
     "\"VARCHAR\"",

     "\"VARRAY\"",

     "\"VARYING\"",

+    "\"XMLTYPE\"",

+    "\"SYS.XMLTYPE\"",

     "\"YEAR\"",

     "\"ZONE\"",

     "<S_IDENTIFIER>",

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 fd33d7b..927299f 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
@@ -80,6 +80,7 @@
 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SMALLINT_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SYS_REFCURSOR_TYPE;

 import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.TIME_TYPE;

+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.XMLTYPE_TYPE;

 

 /** Token Manager. */

 @SuppressWarnings("all")
@@ -204,7 +205,7 @@
       case 82:

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

       case 83:

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

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

       case 84:

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

       case 85:

@@ -213,10 +214,12 @@
          return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x1e00000L);

       case 87:

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

-      case 89:

+      case 88:

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

+      case 89:

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

       case 90:

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

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

       case 97:

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

       case 98:

@@ -250,7 +253,7 @@
       case 114:

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

       case 115:

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

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

       case 116:

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

       case 117:

@@ -259,10 +262,12 @@
          return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x1e00000L);

       case 119:

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

-      case 121:

+      case 120:

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

+      case 121:

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

       case 122:

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

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

       case 124:

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

       case 126:

@@ -327,7 +332,7 @@
       case 68:

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

       case 69:

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

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

       case 70:

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

          {

@@ -347,7 +352,7 @@
       case 76:

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

       case 77:

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

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

       case 78:

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

          {

@@ -366,7 +371,7 @@
             jjmatchedKind = 117;

             jjmatchedPos = 1;

          }

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

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

       case 80:

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

       case 81:

@@ -409,7 +414,7 @@
             jjmatchedKind = 49;

             jjmatchedPos = 1;

          }

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

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

       case 97:

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

       case 98:

@@ -419,7 +424,7 @@
       case 100:

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

       case 101:

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

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

       case 102:

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

          {

@@ -439,7 +444,7 @@
       case 108:

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

       case 109:

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

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

       case 110:

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

          {

@@ -458,7 +463,7 @@
             jjmatchedKind = 117;

             jjmatchedPos = 1;

          }

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

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

       case 112:

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

       case 113:

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

             jjmatchedPos = 1;

          }

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

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

       case 124:

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

          {

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

          break;

       case 65:

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

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

       case 66:

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

       case 67:

@@ -594,11 +599,11 @@
             jjmatchedKind = 111;

             jjmatchedPos = 2;

          }

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

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

       case 77:

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

       case 78:

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

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

       case 79:

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

       case 80:

@@ -611,7 +616,7 @@
          }

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

       case 83:

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

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

       case 84:

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

          {

@@ -660,7 +665,7 @@
       case 90:

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

       case 97:

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

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

       case 98:

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

       case 99:

@@ -722,11 +727,11 @@
             jjmatchedKind = 111;

             jjmatchedPos = 2;

          }

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

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

       case 109:

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

       case 110:

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

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

       case 111:

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

       case 112:

@@ -739,7 +744,7 @@
          }

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

       case 115:

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

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

       case 116:

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

          {

@@ -802,6 +807,8 @@
    }

    switch(curChar)

    {

+      case 46:

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

       case 65:

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

       case 66:

@@ -869,9 +876,9 @@
             jjmatchedKind = 210;

             jjmatchedPos = 3;

          }

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

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

          {

-            jjmatchedKind = 218;

+            jjmatchedKind = 220;

             jjmatchedPos = 3;

          }

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

@@ -963,9 +970,9 @@
             jjmatchedKind = 137;

             jjmatchedPos = 3;

          }

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

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

          {

-            jjmatchedKind = 217;

+            jjmatchedKind = 219;

             jjmatchedPos = 3;

          }

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

@@ -977,7 +984,7 @@
          }

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

       case 84:

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

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

       case 85:

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

       case 87:

@@ -1058,9 +1065,9 @@
             jjmatchedKind = 210;

             jjmatchedPos = 3;

          }

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

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

          {

-            jjmatchedKind = 218;

+            jjmatchedKind = 220;

             jjmatchedPos = 3;

          }

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

@@ -1152,9 +1159,9 @@
             jjmatchedKind = 137;

             jjmatchedPos = 3;

          }

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

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

          {

-            jjmatchedKind = 217;

+            jjmatchedKind = 219;

             jjmatchedPos = 3;

          }

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

@@ -1166,7 +1173,7 @@
          }

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

       case 116:

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

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

       case 117:

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

       case 119:

@@ -1367,14 +1374,14 @@
             jjmatchedKind = 83;

             jjmatchedPos = 4;

          }

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

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

       case 89:

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

          {

             jjmatchedKind = 128;

             jjmatchedPos = 4;

          }

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

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

       case 97:

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

       case 98:

@@ -1549,14 +1556,14 @@
             jjmatchedKind = 83;

             jjmatchedPos = 4;

          }

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

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

       case 121:

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

          {

             jjmatchedKind = 128;

             jjmatchedPos = 4;

          }

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

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

       default :

          break;

    }

@@ -1671,7 +1678,7 @@
          }

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

       case 77:

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

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

       case 78:

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

          {

@@ -1685,7 +1692,7 @@
          }

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

       case 80:

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

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

       case 82:

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

          {

@@ -1850,7 +1857,7 @@
          }

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

       case 109:

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

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

       case 110:

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

          {

@@ -1864,7 +1871,7 @@
          }

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

       case 112:

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

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

       case 114:

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

          {

@@ -1975,6 +1982,11 @@
             jjmatchedKind = 193;

             jjmatchedPos = 6;

          }

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

+         {

+            jjmatchedKind = 217;

+            jjmatchedPos = 6;

+         }

          return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x20001000000000L, active3, 0L);

       case 70:

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

@@ -2010,7 +2022,7 @@
             jjmatchedKind = 167;

             jjmatchedPos = 6;

          }

-         break;

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 78:

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

          {

@@ -2118,6 +2130,11 @@
             jjmatchedKind = 193;

             jjmatchedPos = 6;

          }

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

+         {

+            jjmatchedKind = 217;

+            jjmatchedPos = 6;

+         }

          return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x20001000000000L, active3, 0L);

       case 102:

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

@@ -2153,7 +2170,7 @@
             jjmatchedKind = 167;

             jjmatchedPos = 6;

          }

-         break;

+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 110:

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

          {

@@ -2361,7 +2378,7 @@
             jjmatchedKind = 206;

             jjmatchedPos = 7;

          }

-         break;

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 86:

          return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x80L, active2, 0L, active3, 0L);

       case 87:

@@ -2483,7 +2500,7 @@
             jjmatchedKind = 206;

             jjmatchedPos = 7;

          }

-         break;

+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 118:

          return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x80L, active2, 0L, active3, 0L);

       case 119:

@@ -2587,7 +2604,7 @@
             jjmatchedKind = 209;

             jjmatchedPos = 8;

          }

-         break;

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 95:

          return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x20000000000000L, active3, 0L);

       case 97:

@@ -2662,7 +2679,7 @@
             jjmatchedKind = 209;

             jjmatchedPos = 8;

          }

-         break;

+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       default :

          break;

    }

@@ -2695,6 +2712,8 @@
          return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 79:

          return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x4010L, active3, 0x1000L);

+      case 80:

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 82:

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

       case 83:

@@ -2730,6 +2749,8 @@
          return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x2000000000000L, active3, 0L);

       case 111:

          return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x4010L, active3, 0x1000L);

+      case 112:

+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000000L);

       case 114:

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

       case 115:

@@ -2768,6 +2789,11 @@
       case 66:

          return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x800L);

       case 69:

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

+         {

+            jjmatchedKind = 218;

+            jjmatchedPos = 10;

+         }

          return jjMoveStringLiteralDfa11_0(active2, 0x8020L, active3, 0x2000L);

       case 72:

          return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x8L);

@@ -2798,6 +2824,11 @@
       case 98:

          return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x800L);

       case 101:

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

+         {

+            jjmatchedKind = 218;

+            jjmatchedPos = 10;

+         }

          return jjMoveStringLiteralDfa11_0(active2, 0x8020L, active3, 0x2000L);

       case 104:

          return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x8L);

@@ -3184,8 +3215,8 @@
                case 14:

                   if ((0x3ff001800000000L & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 221)

+                     kind = 221;

                   jjstateSet[jjnewStateCnt++] = 14;

                   break;

                case 15:

@@ -3195,8 +3226,8 @@
                case 17:

                   if ((0x3ff001800000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjAddStates(16, 17);

                   break;

                case 18:

@@ -3206,29 +3237,29 @@
                case 20:

                   if ((0x3ff001800000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjstateSet[jjnewStateCnt++] = 20;

                   break;

                case 21:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddStates(18, 24);

                   break;

                case 22:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(22);

                   break;

                case 23:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(23, 24);

                   break;

                case 24:

@@ -3238,15 +3269,15 @@
                case 25:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(25);

                   break;

                case 26:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(26, 27);

                   break;

                case 28:

@@ -3260,29 +3291,29 @@
                case 30:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(30);

                   break;

                case 31:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddStates(27, 29);

                   break;

                case 32:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(32);

                   break;

                case 33:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(33, 34);

                   break;

                case 34:

@@ -3292,15 +3323,15 @@
                case 35:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(35);

                   break;

                case 36:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddStates(30, 32);

                   break;

                case 37:

@@ -3310,8 +3341,8 @@
                case 38:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(38, 27);

                   break;

                case 39:

@@ -3321,15 +3352,15 @@
                case 40:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(40);

                   break;

                case 41:

                   if ((0x3ff000000000000L & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(41, 27);

                   break;

                case 42:

@@ -3343,8 +3374,8 @@
                case 44:

                   if (curChar != 39)

                      break;

-                  if (kind > 223)

-                     kind = 223;

+                  if (kind > 225)

+                     kind = 225;

                   jjstateSet[jjnewStateCnt++] = 45;

                   break;

                case 45:

@@ -3364,8 +3395,8 @@
                      jjCheckNAddTwoStates(48, 49);

                   break;

                case 49:

-                  if (curChar == 34 && kind > 224)

-                     kind = 224;

+                  if (curChar == 34 && kind > 226)

+                     kind = 226;

                   break;

                case 50:

                   if (curChar == 46)

@@ -3504,8 +3535,8 @@
                case 13:

                   if ((0x7fffffe07fffffeL & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 221)

+                     kind = 221;

                   jjCheckNAddTwoStates(13, 14);

                   break;

                case 1:

@@ -3521,36 +3552,36 @@
                case 14:

                   if ((0x7fffffe87ffffffL & l) == 0L)

                      break;

-                  if (kind > 219)

-                     kind = 219;

+                  if (kind > 221)

+                     kind = 221;

                   jjCheckNAdd(14);

                   break;

                case 16:

                   if ((0x7fffffe07fffffeL & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddStates(41, 43);

                   break;

                case 17:

                   if ((0x7fffffe87ffffffL & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(17, 18);

                   break;

                case 19:

                   if ((0x7fffffe07fffffeL & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAddTwoStates(19, 20);

                   break;

                case 20:

                   if ((0x7fffffe87ffffffL & l) == 0L)

                      break;

-                  if (kind > 222)

-                     kind = 222;

+                  if (kind > 224)

+                     kind = 224;

                   jjCheckNAdd(20);

                   break;

                case 27:

@@ -3683,14 +3714,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, null, null, null, null, null, };

 

 /** Lexer state names. */

 public static final String[] lexStateNames = {

    "DEFAULT",

 };

 static final long[] jjtoToken = {
-   0xffffff8fffffff01L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x1cfffffffL, 
+   0xffffff8fffffff01L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x73fffffffL, 
 };

 static final long[] jjtoSkip = {
    0xfeL, 0x0L, 0x0L, 0x0L,