reduce the number of choice conflicts

Still two conflicts:
   <K_CONSTRAINT> in columnDeclaration()
and
   <S_IDENTIFIER> in packageDeclaration(), choice
     exceptionDeclaration()

I have put the suggested LOOKAHEAD(2), but the warnings
dont go away
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 fdb9388..ba930ac 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
@@ -1,4 +1,4 @@
-/* Generated By:JJTree&JavaCC: Do not edit this line. DDLParser.java */

+/* Generated By:JJTree&JavaCC: Do not edit this line. DDLParser.java */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -10,3487 +10,3157 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

-

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
+
 //javase imports

-import java.io.InputStream;

-import java.util.List;

-import java.util.HashMap;

-import java.util.Map;

-

+import java.io.InputStream;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
+
 //metadata imports

-import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentTypeDirection;

-import org.eclipse.persistence.tools.oracleddl.metadata.BlobType;

-import org.eclipse.persistence.tools.oracleddl.metadata.CharType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ClobType;

-import org.eclipse.persistence.tools.oracleddl.metadata.CompositeDatabaseType;

-import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseType;

-import org.eclipse.persistence.tools.oracleddl.metadata.DecimalType;

-import org.eclipse.persistence.tools.oracleddl.metadata.DoubleType;

-import org.eclipse.persistence.tools.oracleddl.metadata.FieldType;

-import org.eclipse.persistence.tools.oracleddl.metadata.FloatType;

-import org.eclipse.persistence.tools.oracleddl.metadata.FunctionType;

-import org.eclipse.persistence.tools.oracleddl.metadata.IntervalDayToSecond;

-import org.eclipse.persistence.tools.oracleddl.metadata.IntervalYearToMonth;

-import org.eclipse.persistence.tools.oracleddl.metadata.LongType;

-import org.eclipse.persistence.tools.oracleddl.metadata.LongRawType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NCharType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NClobType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NumericType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NVarChar2Type;

-import org.eclipse.persistence.tools.oracleddl.metadata.ObjectType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ObjectTableType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCollectionType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCursorType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLPackageType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLRecordType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLSubType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ProcedureType;

-import org.eclipse.persistence.tools.oracleddl.metadata.RawType;

-import org.eclipse.persistence.tools.oracleddl.metadata.RealType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ROWTYPEType;

-import org.eclipse.persistence.tools.oracleddl.metadata.TableType;

-import org.eclipse.persistence.tools.oracleddl.metadata.TimeStampType;

-import org.eclipse.persistence.tools.oracleddl.metadata.TYPEType;

-import org.eclipse.persistence.tools.oracleddl.metadata.URowIdType;

-import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedSizedType;

-import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedType;

-import org.eclipse.persistence.tools.oracleddl.metadata.VarCharType;

-import org.eclipse.persistence.tools.oracleddl.metadata.VarChar2Type;

-import org.eclipse.persistence.tools.oracleddl.metadata.VArrayType;

-import org.eclipse.persistence.tools.oracleddl.util.DatabaseTypesRepository;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BFILE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_FLOAT_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_DOUBLE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BOOLEAN_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.DATE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.MLSLABEL_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.NATURAL_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.PLS_INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.POSITIVE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.ROWID_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIGN_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_DOUBLE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_FLOAT_TYPE;

-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 org.eclipse.persistence.tools.oracleddl.metadata.ArgumentType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentTypeDirection;
+import org.eclipse.persistence.tools.oracleddl.metadata.BlobType;
+import org.eclipse.persistence.tools.oracleddl.metadata.CharType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ClobType;
+import org.eclipse.persistence.tools.oracleddl.metadata.CompositeDatabaseType;
+import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseType;
+import org.eclipse.persistence.tools.oracleddl.metadata.DecimalType;
+import org.eclipse.persistence.tools.oracleddl.metadata.DoubleType;
+import org.eclipse.persistence.tools.oracleddl.metadata.FieldType;
+import org.eclipse.persistence.tools.oracleddl.metadata.FloatType;
+import org.eclipse.persistence.tools.oracleddl.metadata.FunctionType;
+import org.eclipse.persistence.tools.oracleddl.metadata.IntervalDayToSecond;
+import org.eclipse.persistence.tools.oracleddl.metadata.IntervalYearToMonth;
+import org.eclipse.persistence.tools.oracleddl.metadata.LongType;
+import org.eclipse.persistence.tools.oracleddl.metadata.LongRawType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NCharType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NClobType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NumericType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NVarChar2Type;
+import org.eclipse.persistence.tools.oracleddl.metadata.ObjectType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ObjectTableType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCollectionType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCursorType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLPackageType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLRecordType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLSubType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ProcedureType;
+import org.eclipse.persistence.tools.oracleddl.metadata.RawType;
+import org.eclipse.persistence.tools.oracleddl.metadata.RealType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ROWTYPEType;
+import org.eclipse.persistence.tools.oracleddl.metadata.TableType;
+import org.eclipse.persistence.tools.oracleddl.metadata.TimeStampType;
+import org.eclipse.persistence.tools.oracleddl.metadata.TYPEType;
+import org.eclipse.persistence.tools.oracleddl.metadata.URowIdType;
+import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedSizedType;
+import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedType;
+import org.eclipse.persistence.tools.oracleddl.metadata.VarCharType;
+import org.eclipse.persistence.tools.oracleddl.metadata.VarChar2Type;
+import org.eclipse.persistence.tools.oracleddl.metadata.VArrayType;
+import org.eclipse.persistence.tools.oracleddl.util.DatabaseTypesRepository;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BFILE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_FLOAT_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_DOUBLE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BOOLEAN_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.DATE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.MLSLABEL_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.NATURAL_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.PLS_INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.POSITIVE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.ROWID_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIGN_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_DOUBLE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_FLOAT_TYPE;
+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;
+
 @SuppressWarnings("all")
-public class DDLParser/*@bgen(jjtree)*/implements DDLParserTreeConstants, DDLParserConstants {/*@bgen(jjtree)*/

-  protected JJTDDLParserState jjtree = new JJTDDLParserState();

-    protected Map<String, DatabaseType> localTypes = new HashMap<String, DatabaseType>();

-

-    protected DatabaseTypesRepository typesRepository = new DatabaseTypesRepository();

-

-    public DDLParser() {

-        super();

-    }

-

-    public void setTypesRepository(DatabaseTypesRepository typesRepository) {

-        this.typesRepository = typesRepository;

-    }

-    public DatabaseTypesRepository getTypesRepository() {

-        return typesRepository;

-    }

-

-    protected String removeQuotes(String quotedString) {

-        return quotedString.substring(1, quotedString.length() - 1);

-    }

-

+public class DDLParser/*@bgen(jjtree)*/implements DDLParserTreeConstants, DDLParserConstants {/*@bgen(jjtree)*/
+  protected JJTDDLParserState jjtree = new JJTDDLParserState();
+    protected Map<String, DatabaseType> localTypes = new HashMap<String, DatabaseType>();
+
+    protected DatabaseTypesRepository typesRepository = new DatabaseTypesRepository();
+
+    public DDLParser() {
+        super();
+    }
+
+    public void setTypesRepository(DatabaseTypesRepository typesRepository) {
+        this.typesRepository = typesRepository;
+    }
+    public DatabaseTypesRepository getTypesRepository() {
+        return typesRepository;
+    }
+
+    protected String removeQuotes(String quotedString) {
+        return quotedString.substring(1, quotedString.length() - 1);
+    }
+
 // stripped-down version of PLSQL grammar: only parses package/top-level DDL specifications

-

+
 // PLSQLPackage at 'top-level'

-  final public PLSQLPackageType parsePLSQLPackage() throws ParseException {

- PLSQLPackageType packageType = new PLSQLPackageType();

- String schema = null;

- String packageName = null;

-    jj_consume_token(R_CREATE);

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

-    case R_OR:

-      orReplace();

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(K_PACKAGE);

-    if (jj_2_1(2)) {

-      schema = OracleObjectName();

-      jj_consume_token(O_DOT);

-    } else {

-      ;

-    }

-    packageName = OracleObjectName();

-          if (schema != null) {

-            packageType.setSchema(schema);

-          }

-          packageType.setPackageName(packageName);

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

-    case K_AUTHID:

-      invokerRights();

-      break;

-    default:

-      ;

-    }

-    as();

-    label_1:

-    while (true) {

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

-      case R_CURSOR:

-      case R_FUNCTION:

-      case R_PROCEDURE:

-      case R_SUBTYPE:

-      case R_TYPE:

-      case K_PRAGMA:

-      case S_IDENTIFIER:

-        ;

-        break;

-      default:

-        break label_1;

-      }

-      packageDeclaration(packageType);

-    }

-    jj_consume_token(R_END);

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

-    case S_IDENTIFIER:

-    case S_QUOTED_IDENTIFIER:

-      OracleObjectName();

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-    jj_consume_token(0);

-      typesRepository.setDatabaseType(packageName, packageType);

-      {if (true) return packageType;}

-    throw new Error("Missing return statement in function");

-  }

-

+  final public PLSQLPackageType parsePLSQLPackage() throws ParseException {
+ PLSQLPackageType packageType = new PLSQLPackageType();
+ String dottedName = null;
+ String schema = null;
+ String packageName = null;
+    jj_consume_token(R_CREATE);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_OR:
+      orReplace();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(K_PACKAGE);
+    dottedName = OracleObjectNamePossiblyDotted();
+          packageName = dottedName;
+          if (dottedName.contains(".")) {
+              int idx = dottedName.indexOf(".");
+              schema = dottedName.substring(0, idx);
+              packageName = dottedName.substring(idx+1, dottedName.length());
+          }
+          if (schema != null) {
+            packageType.setSchema(schema);
+          }
+          packageType.setPackageName(packageName);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_AUTHID:
+      invokerRights();
+      break;
+    default:
+      ;
+    }
+    as();
+    label_1:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_CURSOR:
+      case R_FUNCTION:
+      case R_PROCEDURE:
+      case R_SUBTYPE:
+      case R_TYPE:
+      case K_PRAGMA:
+      case S_IDENTIFIER:
+        ;
+        break;
+      default:
+        break label_1;
+      }
+      packageDeclaration(packageType);
+    }
+    jj_consume_token(R_END);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case S_IDENTIFIER:
+    case S_QUOTED_IDENTIFIER:
+      OracleObjectName();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+    jj_consume_token(0);
+      typesRepository.setDatabaseType(packageName, packageType);
+      {if (true) return packageType;}
+    throw new Error("Missing return statement in function");
+  }
+
 // procedure at 'top-level'

-  final public ProcedureType parseTopLevelProcedure() throws ParseException {

- ProcedureType procedureType = null;

- String schema = null;

- String procedureName = null;

-    jj_consume_token(R_CREATE);

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

-    case R_OR:

-      orReplace();

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(R_PROCEDURE);

-    if (jj_2_2(2)) {

-      schema = OracleObjectName();

-      jj_consume_token(O_DOT);

-    } else {

-      ;

-    }

-    procedureName = OracleObjectName();

-          procedureType = new ProcedureType(procedureName);

-              if (schema != null) {

-                  procedureType.setSchema(schema);

-              }

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

-    case O_OPENPAREN:

-      jj_consume_token(O_OPENPAREN);

-      argumentList(procedureType);

-      jj_consume_token(O_CLOSEPAREN);

-      break;

-    default:

-      ;

-    }

-    as();

-    skipToEnd();

-      typesRepository.setDatabaseType(procedureName, procedureType);

-      {if (true) return procedureType;}

-    throw new Error("Missing return statement in function");

-  }

-

+  final public ProcedureType parseTopLevelProcedure() throws ParseException {
+ ProcedureType procedureType = null;
+ String dottedName = null;
+ String schema = null;
+ String procedureName = null;
+    jj_consume_token(R_CREATE);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_OR:
+      orReplace();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(R_PROCEDURE);
+    dottedName = OracleObjectNamePossiblyDotted();
+          procedureName = dottedName;
+          if (dottedName.contains(".")) {
+              int idx = dottedName.indexOf(".");
+              schema = dottedName.substring(0, idx);
+              procedureName = dottedName.substring(idx+1, dottedName.length());
+          }
+          procedureType = new ProcedureType(procedureName);
+              if (schema != null) {
+                  procedureType.setSchema(schema);
+              }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_OPENPAREN:
+      jj_consume_token(O_OPENPAREN);
+      argumentList(procedureType);
+      jj_consume_token(O_CLOSEPAREN);
+      break;
+    default:
+      ;
+    }
+    as();
+    skipToEnd();
+      typesRepository.setDatabaseType(procedureName, procedureType);
+      {if (true) return procedureType;}
+    throw new Error("Missing return statement in function");
+  }
+
 // function at 'top-level'

-  final public FunctionType parseTopLevelFunction() throws ParseException {

- FunctionType functionType = null;

- String schema = null;

- String functionName = null;

- ArgumentType returnType = null;

-    jj_consume_token(R_CREATE);

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

-    case R_OR:

-      orReplace();

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(R_FUNCTION);

-    if (jj_2_3(2)) {

-      schema = OracleObjectName();

-      jj_consume_token(O_DOT);

-    } else {

-      ;

-    }

-    functionName = OracleObjectName();

-              functionType = new FunctionType(functionName);

-          if (schema != null) {

-              functionType.setSchema(schema);

-          }

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

-    case O_OPENPAREN:

-      jj_consume_token(O_OPENPAREN);

-      argumentList(functionType);

-      jj_consume_token(O_CLOSEPAREN);

-      break;

-    default:

-      ;

-    }

-    returnType = functionReturnSpec();

-    as();

-    skipToEnd();

-      functionType.setReturnArgument(returnType);

-      typesRepository.setDatabaseType(functionName, functionType);

-      {if (true) return functionType;}

-    throw new Error("Missing return statement in function");

-  }

-

+  final public FunctionType parseTopLevelFunction() throws ParseException {
+ FunctionType functionType = null;
+ String dottedName = null;
+ String schema = null;
+ String functionName = null;
+ ArgumentType returnType = null;
+    jj_consume_token(R_CREATE);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_OR:
+      orReplace();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(R_FUNCTION);
+    dottedName = OracleObjectNamePossiblyDotted();
+          functionName = dottedName;
+          if (dottedName.contains(".")) {
+              int idx = dottedName.indexOf(".");
+              schema = dottedName.substring(0, idx);
+              functionName = dottedName.substring(idx+1, dottedName.length());
+          }
+              functionType = new FunctionType(functionName);
+          if (schema != null) {
+              functionType.setSchema(schema);
+          }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_OPENPAREN:
+      jj_consume_token(O_OPENPAREN);
+      argumentList(functionType);
+      jj_consume_token(O_CLOSEPAREN);
+      break;
+    default:
+      ;
+    }
+    returnType = functionReturnSpec();
+    as();
+    skipToEnd();
+      functionType.setReturnArgument(returnType);
+      typesRepository.setDatabaseType(functionName, functionType);
+      {if (true) return functionType;}
+    throw new Error("Missing return statement in function");
+  }
+
 // table at 'top-level'

-  final public TableType parseTable() throws ParseException {

- TableType tableType = null;

- String schema = null;

- String tableName = null;

- Token iot = null;

-    jj_consume_token(R_CREATE);

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

-    case K_GLOBAL:

-      jj_consume_token(K_GLOBAL);

-      jj_consume_token(K_TEMPORARY);

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(R_TABLE);

-    if (jj_2_4(2)) {

-      schema = OracleObjectName();

-      jj_consume_token(O_DOT);

-    } else {

-      ;

-    }

-    tableName = OracleObjectName();

-          tableType = new TableType(tableName);

-                  if (schema != null) {

-                       tableType.setSchema(schema);

-                  }

-    jj_consume_token(O_OPENPAREN);

-    columnDeclarations(tableType);

-    jj_consume_token(O_CLOSEPAREN);

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

-    case K_ORGANIZATION:

-      jj_consume_token(K_ORGANIZATION);

-      break;

-    default:

-      ;

-    }

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

-    case R_INDEX:

-      iot = jj_consume_token(R_INDEX);

-      break;

-    default:

-      ;

-    }

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

-    case R_NOCOMPRESS:

-      jj_consume_token(R_NOCOMPRESS);

-      break;

-    default:

-      ;

-    }

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

-    case K_OVERFLOW:

-      jj_consume_token(K_OVERFLOW);

-      break;

-    default:

-      ;

-    }

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

-    case R_ON:

-      jj_consume_token(R_ON);

-      jj_consume_token(K_COMMIT);

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

-      case K_DELETE:

-      case K_PRESERVE:

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

-        case K_DELETE:

-          jj_consume_token(K_DELETE);

-          break;

-        case K_PRESERVE:

-          jj_consume_token(K_PRESERVE);

-          break;

-        default:

-          jj_consume_token(-1);

-          throw new ParseException();

-        }

-        break;

-      default:

-        ;

-      }

-      jj_consume_token(K_ROWS);

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-    jj_consume_token(0);

-         if (iot != null) {

-             tableType.setIOT(true);

-         }

-         typesRepository.setDatabaseType(tableName, tableType);

-         {if (true) return tableType;}

-    throw new Error("Missing return statement in function");

-  }

-

+  final public TableType parseTable() throws ParseException {
+ TableType tableType = null;
+ String dottedName = null;
+ String schema = null;
+ String tableName = null;
+ Token iot = null;
+    jj_consume_token(R_CREATE);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_GLOBAL:
+      jj_consume_token(K_GLOBAL);
+      jj_consume_token(K_TEMPORARY);
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(R_TABLE);
+    dottedName = OracleObjectNamePossiblyDotted();
+          tableName = dottedName;
+          if (dottedName.contains(".")) {
+              int idx = dottedName.indexOf(".");
+              schema = dottedName.substring(0, idx);
+              tableName = dottedName.substring(idx+1, dottedName.length());
+          }
+          tableType = new TableType(tableName);
+                  if (schema != null) {
+                       tableType.setSchema(schema);
+                  }
+    jj_consume_token(O_OPENPAREN);
+    columnDeclarations(tableType);
+    jj_consume_token(O_CLOSEPAREN);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_ORGANIZATION:
+      jj_consume_token(K_ORGANIZATION);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_INDEX:
+      iot = jj_consume_token(R_INDEX);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOCOMPRESS:
+      jj_consume_token(R_NOCOMPRESS);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_OVERFLOW:
+      jj_consume_token(K_OVERFLOW);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_ON:
+      onCommit();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+    jj_consume_token(0);
+         if (iot != null) {
+             tableType.setIOT(true);
+         }
+         typesRepository.setDatabaseType(tableName, tableType);
+         {if (true) return tableType;}
+    throw new Error("Missing return statement in function");
+  }
+
 // type at 'top-level'

-  final public CompositeDatabaseType parseType() throws ParseException {

- CompositeDatabaseType databaseType = null;

- DatabaseType enclosedType = null;

- String schema = null;

- String typeName = null;

- Token vsize = null;

- boolean varray = false;

- boolean nestedTable = false;

-    jj_consume_token(R_CREATE);

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

-    case R_OR:

-      orReplace();

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(R_TYPE);

-    if (jj_2_5(2)) {

-      schema = OracleObjectName();

-      jj_consume_token(O_DOT);

-    } else {

-      ;

-    }

-    typeName = OracleObjectName();

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

-    case K_FORCE:

-      jj_consume_token(K_FORCE);

-      break;

-    default:

-      ;

-    }

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

-    case K_OID:

-      jj_consume_token(K_OID);

-      jj_consume_token(S_CHAR_LITERAL);

-      break;

-    default:

-      ;

-    }

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

-    case K_AUTHID:

-      invokerRights();

-      break;

-    default:

-      ;

-    }

-    as();

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

-    case R_TABLE:

-    case K_OBJECT:

-    case K_VARRAY:

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

-      case K_OBJECT:

-        jj_consume_token(K_OBJECT);

-        jj_consume_token(O_OPENPAREN);

-                databaseType = new ObjectType(typeName);

-                if (schema != null) {

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

-                }

-        columnDeclarations(databaseType);

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      case K_VARRAY:

-        jj_consume_token(K_VARRAY);

-        jj_consume_token(O_OPENPAREN);

-        vsize = jj_consume_token(S_NUMBER);

-        jj_consume_token(O_CLOSEPAREN);

-        jj_consume_token(R_OF);

-                databaseType = new VArrayType(typeName);

-                if (schema != null) {

-                    ((VArrayType)databaseType).setSchema(schema);

-                }

-                if (vsize != null) {

-                    Long size = Long.decode(vsize.image);

-                    ((VArrayType)databaseType).setSize(size);

-                }

-        enclosedType = columnTypeSpec(databaseType);

-        break;

-      case R_TABLE:

-        jj_consume_token(R_TABLE);

-        jj_consume_token(R_OF);

-                databaseType = new ObjectTableType(typeName);

-                if (schema != null) {

-                    ((ObjectTableType)databaseType).setSchema(schema);

-                }

-        enclosedType = columnTypeSpec(databaseType);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-      break;

-    default:

-      ;

-    }

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

-    case R_NOT:

-    case K_FINAL:

-    case K_INSTANTIABLE:

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

-      case R_NOT:

-        jj_consume_token(R_NOT);

-        break;

-      default:

-        ;

-      }

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

-      case K_FINAL:

-        jj_consume_token(K_FINAL);

-        break;

-      case K_INSTANTIABLE:

-        jj_consume_token(K_INSTANTIABLE);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-      break;

-    default:

-      ;

-    }

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

-    case O_SEMICOLON:

-      jj_consume_token(O_SEMICOLON);

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(0);

-        if (enclosedType != null) {

-            ((CompositeDatabaseType)databaseType).setEnclosedType(enclosedType);

-        }

-        typesRepository.setDatabaseType(typeName, databaseType);

-        {if (true) return databaseType;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public void columnDeclarations(CompositeDatabaseType enclosingType) throws ParseException {

-    columnDeclaration(enclosingType);

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

-    case O_COMMA:

-      jj_consume_token(O_COMMA);

-      columnDeclarations(enclosingType);

-      break;

-    default:

-      ;

-    }

-  }

-

-  final public void columnDeclaration(CompositeDatabaseType enclosingType) throws ParseException {

- String s = null;

- String pk = null;

- boolean notNull = false;

- DatabaseType columnType = null;

- FieldType column = null;

-    if (jj_2_6(2)) {

-      s = OracleObjectName();

-           column = new FieldType(s);

-                   if (enclosingType != null) {

-                       if (enclosingType.isPLSQLRecordType()) {

-                               ((PLSQLRecordType)enclosingType).addField(column);

-                       }

-                           else if (enclosingType.isTableType()) {

-                               ((TableType)enclosingType).addColumn(column);

-                           }

-                           else if (enclosingType.isObjectType()) {

-                               ((ObjectType)enclosingType).addField(column);

-                           }

-                   }

-      columnType = columnTypeSpec(enclosingType);

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

-      case R_NOT:

-        jj_consume_token(R_NOT);

-        jj_consume_token(R_NULL);

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

-        case K_ENABLE:

-          jj_consume_token(K_ENABLE);

-          break;

-        default:

-          ;

-        }

-                                                                                     notNull = true;

-        break;

-      default:

-        ;

-      }

-    } else if (jj_2_7(2)) {

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

-      case K_CONSTRAINT:

-        jj_consume_token(K_CONSTRAINT);

-        break;

-      default:

-        ;

-      }

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

-      case S_IDENTIFIER:

-      case S_QUOTED_IDENTIFIER:

-        OracleObjectName();

-        break;

-      default:

-        ;

-      }

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

-      case K_PRIMARY:

-        jj_consume_token(K_PRIMARY);

-        jj_consume_token(K_KEY);

-        jj_consume_token(O_OPENPAREN);

-        pkList((TableType)enclosingType);

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      case R_CHECK:

-        jj_consume_token(R_CHECK);

-        jj_consume_token(O_OPENPAREN);

-        skipToClosingParen();

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      case R_UNIQUE:

-        jj_consume_token(R_UNIQUE);

-        jj_consume_token(O_OPENPAREN);

-        uniqList();

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-      jj_consume_token(K_ENABLE);

-    } else {

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-      if (column != null) {

-              column.setEnclosedType(columnType);

-              if (columnType instanceof UnresolvedType) {

-                  ((UnresolvedType)columnType).setOwningType(column);

-              }

-              if (notNull) {

-                  column.setNotNull();

-              }

-          }

-  }

-

-  final public DatabaseType columnTypeSpec(CompositeDatabaseType enclosingType) throws ParseException {

- String s = null;

- Token t = null;

- DatabaseType dt = null;

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

-    case K_BFILE:

-    case K_BINARY_DOUBLE:

-    case K_BINARY_FLOAT:

-    case K_BINARY_INTEGER:

-    case K_BLOB:

-    case K_BOOLEAN:

-    case K_CHAR:

-    case K_CHARACTER:

-    case K_CLOB:

-    case K_DATE:

-    case K_DEC:

-    case K_DECIMAL:

-    case K_DOUBLE:

-    case K_FLOAT:

-    case K_INT:

-    case K_INTEGER:

-    case K_INTERVAL:

-    case K_LONG:

-    case K_MLSLABEL:

-    case K_NATIONAL:

-    case K_NATURAL:

-    case K_NCHAR:

-    case K_NCLOB:

-    case K_NUMBER:

-    case K_NUMERIC:

-    case K_NVARCHAR2:

-    case K_NVARCHAR:

-    case K_PLS_INTEGER:

-    case K_POSITIVE:

-    case K_RAW:

-    case K_REAL:

-    case K_ROWID:

-    case K_SIGNTYPE:

-    case K_SIMPLE_DOUBLE:

-    case K_SIMPLE_FLOAT:

-    case K_SIMPLE_INTEGER:

-    case K_SMALLINT:

-    case K_SYS_REFCURSOR:

-    case K_TIME:

-    case K_TIMESTAMP:

-    case K_UROWID:

-    case K_VARCHAR2:

-    case K_VARCHAR:

-      dt = datatype();

-      break;

-    case S_IDENTIFIER:

-    case S_QUOTED_IDENTIFIER:

-      s = columnSpec();

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

-      case O_OPENPAREN:

-        jj_consume_token(O_OPENPAREN);

-        t = jj_consume_token(S_NUMBER);

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      default:

-        ;

-      }

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

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

-    case K_CONSTRAINT:

-      jj_consume_token(K_CONSTRAINT);

-      jj_consume_token(S_QUOTED_IDENTIFIER);

-      break;

-    default:

-      ;

-    }

-      if (s != null) {

-          for (String typeName : localTypes.keySet()) {

-              if (typeName.equals(s)) {

-                  dt = localTypes.get(s);

-                  break;

-              }

-          }

-          if (dt == null) {

-              if (t != null) {

-                  Long size = Long.decode(t.image);

-                  dt = new UnresolvedSizedType(s, size);

-              }

-              else {

-                  dt = new UnresolvedType(s);

-              }

-              ((UnresolvedType)dt).setOwningType(enclosingType);

-          }

-      }

-      {if (true) return dt;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public void uniqList() throws ParseException {

-    OracleObjectName();

-    label_2:

-    while (true) {

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

-      case O_COMMA:

-        ;

-        break;

-      default:

-        break label_2;

-      }

-      jj_consume_token(O_COMMA);

-      OracleObjectName();

-    }

-  }

-

-  final public void pkList(TableType tableType) throws ParseException {

-    pk(tableType);

-    label_3:

-    while (true) {

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

-      case O_COMMA:

-        ;

-        break;

-      default:

-        break label_3;

-      }

-      jj_consume_token(O_COMMA);

-      pk(tableType);

-    }

-  }

-

-  final public void pk(TableType tableType) throws ParseException {

-String s = null;

-    s = OracleObjectName();

-       List<FieldType> columns = tableType.getColumns();

-       for (FieldType column : columns) {

-            if (column.getFieldName().equals(s)) {

-                column.setPk();

-                break;

-            }

-       }

-  }

-

-  final public void packageDeclaration(PLSQLPackageType packageType) throws ParseException {

-    if (jj_2_8(2)) {

-      variableDeclaration(packageType);

-    } else {

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

-      case R_SUBTYPE:

-      case R_TYPE:

-        typeOrSubTypeDeclaration(packageType);

-        break;

-      case R_CURSOR:

-        cursorDeclaration(packageType);

-        break;

-      case R_PROCEDURE:

-        procedureSpec(packageType);

-        break;

-      case R_FUNCTION:

-        functionSpec(packageType);

-        break;

-      case S_IDENTIFIER:

-        exceptionDeclaration(packageType);

-        break;

-      case K_PRAGMA:

-        pragmaDeclaration(packageType);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-    }

-  }

-

-  final public void variableDeclaration(PLSQLPackageType packageType) throws ParseException {

- Token varName = null;

- DatabaseType varType;

-    varName = jj_consume_token(S_IDENTIFIER);

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

-    case K_CONSTANT:

-      jj_consume_token(K_CONSTANT);

-      break;

-    default:

-      ;

-    }

-    varType = typeSpec();

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

-    case R_NOT:

-      jj_consume_token(R_NOT);

-      jj_consume_token(R_NULL);

-      break;

-    default:

-      ;

-    }

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

-    case O_ASSIGN:

-    case R_DEFAULT:

-      variableDefaultAssignment();

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-        FieldType variable = new FieldType(varName.image);

-        variable.setEnclosedType(varType);

-        packageType.addLocalVariable(variable);

-  }

-

-  final public void variableDefaultAssignment() throws ParseException {

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

-    case O_ASSIGN:

-      jj_consume_token(O_ASSIGN);

-      break;

-    case R_DEFAULT:

-      jj_consume_token(R_DEFAULT);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    skipToSemiColon();

-  }

-

-  final public DatabaseType datatype() throws ParseException {

- Token t = null;

- DatabaseType dt = null;

- Token precision = null;

- Long sl;

- Long pl;

- Token scale = null;

- Token withTimeZone = null;

- Token withLocalTimeZone = null;

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

-    case K_BINARY_INTEGER:

-      jj_consume_token(K_BINARY_INTEGER);

-                          {if (true) return BINARY_INTEGER_TYPE;}

-      break;

-    case K_BINARY_FLOAT:

-      jj_consume_token(K_BINARY_FLOAT);

-                          {if (true) return BINARY_FLOAT_TYPE;}

-      break;

-    case K_BINARY_DOUBLE:

-      jj_consume_token(K_BINARY_DOUBLE);

-                          {if (true) return BINARY_DOUBLE_TYPE;}

-      break;

-    case K_NATURAL:

-      jj_consume_token(K_NATURAL);

-                          {if (true) return NATURAL_TYPE;}

-      break;

-    case K_POSITIVE:

-      jj_consume_token(K_POSITIVE);

-                          {if (true) return POSITIVE_TYPE;}

-      break;

-    case K_SIGNTYPE:

-      jj_consume_token(K_SIGNTYPE);

-                          {if (true) return SIGN_TYPE;}

-      break;

-    case K_DEC:

-    case K_DECIMAL:

-    case K_NUMBER:

-    case K_NUMERIC:

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

-      case K_NUMBER:

-        t = jj_consume_token(K_NUMBER);

-        break;

-      case K_NUMERIC:

-        t = jj_consume_token(K_NUMERIC);

-        break;

-      case K_DECIMAL:

-        t = jj_consume_token(K_DECIMAL);

-        break;

-      case K_DEC:

-        t = jj_consume_token(K_DEC);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

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

-      case O_OPENPAREN:

-        jj_consume_token(O_OPENPAREN);

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

-        case O_ASTERISK:

-        case S_NUMBER:

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

-          case O_ASTERISK:

-            precision = jj_consume_token(O_ASTERISK);

-            break;

-          case S_NUMBER:

-            precision = jj_consume_token(S_NUMBER);

-            break;

-          default:

-            jj_consume_token(-1);

-            throw new ParseException();

-          }

-          break;

-        default:

-          ;

-        }

-        label_4:

-        while (true) {

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

-          case O_COMMA:

-            ;

-            break;

-          default:

-            break label_4;

-          }

-          jj_consume_token(O_COMMA);

-          scale = jj_consume_token(S_NUMBER);

-        }

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      default:

-        ;

-      }

-            if (t.kind == K_NUMBER || t.kind == K_NUMERIC) {

-                if (precision != null && precision.image.equals("*")) {

-                    precision = null;

-                }

-                if (precision == null) {

-                    if (scale != null && scale.image.equals("0")) {

-                        dt = INTEGER_TYPE;

-                    }

-                    else {

-                        dt = new NumericType();

-                    }

-                }

-                    else {

-                        pl = Long.decode(precision.image);

-                        if (scale == null) {

-                        dt = new NumericType(pl);

-                    }

-                    else {

-                        sl = Long.decode(scale.image);

-                        dt = new NumericType(pl, sl);

-                        }

-                    }

-                //sometimes need to know difference between NUMERIC and NUMBER

-                if (dt != INTEGER_TYPE && t.kind == K_NUMBER) {

-                    ((NumericType)dt).setNumberSynonym(true);

-                }

-            }

-            else  if (t.kind == K_DECIMAL || t.kind == K_DEC) {

-                if (precision != null && precision.image.equals("*")) {

-                    precision = null;

-                }

-                if (precision == null) {

-                    dt = new DecimalType();

-                }

-                else {

-                    pl = Long.decode(precision.image);

-                    if (scale == null) {

-                        dt = new DecimalType(pl);

-                    }

-                    else {

-                        sl = Long.decode(scale.image);

-                        dt = new DecimalType(pl, sl);

-                    }

-                }

-            }

-            {if (true) return dt;}

-      break;

-    case K_LONG:

-      jj_consume_token(K_LONG);

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

-      case K_RAW:

-        t = jj_consume_token(K_RAW);

-        break;

-      default:

-        ;

-      }

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

-      case O_OPENPAREN:

-        jj_consume_token(O_OPENPAREN);

-        precision = jj_consume_token(S_NUMBER);

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      default:

-        ;

-      }

-              if (t == null) {

-              if (precision == null) {

-                  dt = new LongType();

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  dt = new LongType(pl);

-              }

-              }

-              else {

-              if (precision == null) {

-                  dt = new LongRawType();

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  dt = new LongRawType(pl);

-              }

-            }

-            {if (true) return dt;}

-      break;

-    case K_RAW:

-      jj_consume_token(K_RAW);

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

-      case O_OPENPAREN:

-        jj_consume_token(O_OPENPAREN);

-        precision = jj_consume_token(S_NUMBER);

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      default:

-        ;

-      }

-            if (precision == null) {

-                dt = new RawType();

-            }

-            else {

-                pl = Long.decode(precision.image);

-                dt = new RawType(pl);

-            }

-            {if (true) return dt;}

-      break;

-    case K_BOOLEAN:

-      jj_consume_token(K_BOOLEAN);

-                    {if (true) return BOOLEAN_TYPE;}

-      break;

-    case K_DATE:

-      jj_consume_token(K_DATE);

-                 {if (true) return DATE_TYPE;}

-      break;

-    default:

-      if (jj_2_17(2)) {

-        jj_consume_token(K_INTERVAL);

-        jj_consume_token(K_DAY);

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

-        case O_OPENPAREN:

-          jj_consume_token(O_OPENPAREN);

-          precision = jj_consume_token(S_NUMBER);

-          jj_consume_token(O_CLOSEPAREN);

-          break;

-        default:

-          ;

-        }

-        jj_consume_token(R_TO);

-        jj_consume_token(K_SECOND);

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

-        case O_OPENPAREN:

-          jj_consume_token(O_OPENPAREN);

-          scale = jj_consume_token(S_NUMBER);

-          jj_consume_token(O_CLOSEPAREN);

-          break;

-        default:

-          ;

-        }

-                if (precision == null) {

-                dt = new IntervalDayToSecond();

-            }

-            else {

-                pl = Long.decode(precision.image);

-                if (scale == null) {

-                    dt = new IntervalDayToSecond(pl);

-                }

-                else {

-                    sl = Long.decode(scale.image);

-                    dt = new IntervalDayToSecond(pl, sl);

-                }

-            }

-            {if (true) return dt;}

-      } else {

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

-        case K_INTERVAL:

-          jj_consume_token(K_INTERVAL);

-          jj_consume_token(K_YEAR);

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          jj_consume_token(R_TO);

-          jj_consume_token(K_MONTH);

-            if (precision == null) {

-                dt = new IntervalYearToMonth();

-            }

-            else {

-                pl = Long.decode(precision.image);

-                dt = new IntervalYearToMonth(pl);

-            }

-            {if (true) return dt;}

-          break;

-        case K_TIME:

-          jj_consume_token(K_TIME);

-                 {if (true) return TIME_TYPE;}

-          break;

-        case K_TIMESTAMP:

-          jj_consume_token(K_TIMESTAMP);

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

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

-          case R_WITH:

-            jj_consume_token(R_WITH);

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

-            case K_LOCAL:

-              withLocalTimeZone = jj_consume_token(K_LOCAL);

-              break;

-            default:

-              ;

-            }

-            withTimeZone = jj_consume_token(K_TIME);

-            jj_consume_token(K_ZONE);

-            break;

-          default:

-            ;

-          }

-          if (precision == null) {

-              dt = new TimeStampType();

-          }

-          else {

-              pl = Long.decode(precision.image);

-              dt = new TimeStampType(pl);

-          }

-          if (withLocalTimeZone !=  null) {

-              ((TimeStampType)dt).setWithLocalTimeZone();

-          }

-          else if (withTimeZone != null) {

-              ((TimeStampType)dt).setWithTimeZone();

-          }

-          {if (true) return dt;}

-          break;

-        case K_INTEGER:

-          jj_consume_token(K_INTEGER);

-                     {if (true) return INTEGER_TYPE;}

-          break;

-        case K_INT:

-          jj_consume_token(K_INT);

-                     {if (true) return INTEGER_TYPE;}

-          break;

-        case K_SMALLINT:

-          jj_consume_token(K_SMALLINT);

-                     {if (true) return SMALLINT_TYPE;}

-          break;

-        case K_FLOAT:

-          jj_consume_token(K_FLOAT);

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (precision == null) {

-              {if (true) return new FloatType();}

-          }

-          else {

-              pl = Long.decode(precision.image);

-              FloatType ft = new FloatType(pl);

-              {if (true) return ft;}

-          }

-          break;

-        case K_REAL:

-          jj_consume_token(K_REAL);

-                 {if (true) return new RealType();}

-          break;

-        case K_MLSLABEL:

-          jj_consume_token(K_MLSLABEL);

-                     {if (true) return MLSLABEL_TYPE;}

-          break;

-        case K_PLS_INTEGER:

-          jj_consume_token(K_PLS_INTEGER);

-                        {if (true) return PLS_INTEGER_TYPE;}

-          break;

-        case K_SIMPLE_INTEGER:

-          jj_consume_token(K_SIMPLE_INTEGER);

-                           {if (true) return SIMPLE_INTEGER_TYPE;}

-          break;

-        case K_SIMPLE_FLOAT:

-          jj_consume_token(K_SIMPLE_FLOAT);

-                         {if (true) return SIMPLE_FLOAT_TYPE;}

-          break;

-        case K_SIMPLE_DOUBLE:

-          jj_consume_token(K_SIMPLE_DOUBLE);

-                          {if (true) return SIMPLE_DOUBLE_TYPE;}

-          break;

-        case K_SYS_REFCURSOR:

-          jj_consume_token(K_SYS_REFCURSOR);

-                           {if (true) return SYS_REFCURSOR_TYPE;}

-          break;

-        case K_BLOB:

-          jj_consume_token(K_BLOB);

-                  {if (true) return new BlobType();}

-          break;

-        case K_NCLOB:

-          jj_consume_token(K_NCLOB);

-                  {if (true) return new NClobType();}

-          break;

-        case K_BFILE:

-          jj_consume_token(K_BFILE);

-                   {if (true) return BFILE_TYPE;}

-          break;

-        case K_ROWID:

-          jj_consume_token(K_ROWID);

-                  {if (true) return ROWID_TYPE;}

-          break;

-        case K_UROWID:

-          jj_consume_token(K_UROWID);

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (precision == null) {

-              {if (true) return new URowIdType();}

-          }

-          else {

-              pl = Long.decode(precision.image);

-              {if (true) return new URowIdType(pl);}

-          }

-          break;

-        case K_DOUBLE:

-          jj_consume_token(K_DOUBLE);

-          jj_consume_token(K_PRECISION);

-                                 {if (true) return new DoubleType();}

-          break;

-        case K_CHAR:

-          jj_consume_token(K_CHAR);

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

-          case K_VARYING:

-            t = jj_consume_token(K_VARYING);

-            break;

-          default:

-            ;

-          }

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

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

-            case K_BYTE:

-            case K_CHAR:

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

-              case K_BYTE:

-                jj_consume_token(K_BYTE);

-                break;

-              case K_CHAR:

-                jj_consume_token(K_CHAR);

-                break;

-              default:

-                jj_consume_token(-1);

-                throw new ParseException();

-              }

-              break;

-            default:

-              ;

-            }

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (jj_2_10(2)) {

-            jj_consume_token(K_CHARACTER);

-            jj_consume_token(K_SET);

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

-            case S_IDENTIFIER:

-            case S_QUOTED_IDENTIFIER:

-              if (jj_2_9(2)) {

-                jj_consume_token(S_IDENTIFIER);

-              } else {

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

-                case S_IDENTIFIER:

-                case S_QUOTED_IDENTIFIER:

-                  columnSpec();

-                  jj_consume_token(K_CHARSET);

-                  break;

-                default:

-                  jj_consume_token(-1);

-                  throw new ParseException();

-                }

-              }

-              break;

-            default:

-              ;

-            }

-          } else {

-            ;

-          }

-          if (t == null) {

-              if (precision == null) {

-                  {if (true) return new CharType();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new CharType(pl);}

-              }

-          }

-          else {

-              // ANSI syntax for VARCHAR2

-              if (precision == null) {

-                  {if (true) return new VarChar2Type();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new VarChar2Type(pl);}

-              }

-          }

-          break;

-        case K_VARCHAR:

-          jj_consume_token(K_VARCHAR);

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

-          case K_VARYING:

-            jj_consume_token(K_VARYING);

-            break;

-          default:

-            ;

-          }

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

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

-            case K_BYTE:

-            case K_CHAR:

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

-              case K_BYTE:

-                jj_consume_token(K_BYTE);

-                break;

-              case K_CHAR:

-                jj_consume_token(K_CHAR);

-                break;

-              default:

-                jj_consume_token(-1);

-                throw new ParseException();

-              }

-              break;

-            default:

-              ;

-            }

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (jj_2_12(2)) {

-            jj_consume_token(K_CHARACTER);

-            jj_consume_token(K_SET);

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

-            case S_IDENTIFIER:

-            case S_QUOTED_IDENTIFIER:

-              if (jj_2_11(2)) {

-                jj_consume_token(S_IDENTIFIER);

-              } else {

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

-                case S_IDENTIFIER:

-                case S_QUOTED_IDENTIFIER:

-                  columnSpec();

-                  jj_consume_token(K_CHARSET);

-                  break;

-                default:

-                  jj_consume_token(-1);

-                  throw new ParseException();

-                }

-              }

-              break;

-            default:

-              ;

-            }

-          } else {

-            ;

-          }

-          if (precision == null) {

-              {if (true) return new VarCharType();}

-          }

-          else {

-              pl = Long.decode(precision.image);

-              {if (true) return new VarCharType(pl);}

-          }

-          break;

-        case K_VARCHAR2:

-          jj_consume_token(K_VARCHAR2);

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

-          case K_VARYING:

-            jj_consume_token(K_VARYING);

-            break;

-          default:

-            ;

-          }

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

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

-            case K_BYTE:

-            case K_CHAR:

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

-              case K_BYTE:

-                jj_consume_token(K_BYTE);

-                break;

-              case K_CHAR:

-                jj_consume_token(K_CHAR);

-                break;

-              default:

-                jj_consume_token(-1);

-                throw new ParseException();

-              }

-              break;

-            default:

-              ;

-            }

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (jj_2_14(2)) {

-            jj_consume_token(K_CHARACTER);

-            jj_consume_token(K_SET);

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

-            case S_IDENTIFIER:

-            case S_QUOTED_IDENTIFIER:

-              if (jj_2_13(2)) {

-                jj_consume_token(S_IDENTIFIER);

-              } else {

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

-                case S_IDENTIFIER:

-                case S_QUOTED_IDENTIFIER:

-                  columnSpec();

-                  jj_consume_token(K_CHARSET);

-                  break;

-                default:

-                  jj_consume_token(-1);

-                  throw new ParseException();

-                }

-              }

-              break;

-            default:

-              ;

-            }

-          } else {

-            ;

-          }

-            if (precision == null) {

-                {if (true) return new VarChar2Type();}

-            }

-            else {

-                pl = Long.decode(precision.image);

-                {if (true) return new VarChar2Type(pl);}

-            }

-          break;

-        case K_CHARACTER:

-          jj_consume_token(K_CHARACTER);

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

-          case K_VARYING:

-            t = jj_consume_token(K_VARYING);

-            break;

-          default:

-            ;

-          }

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (t == null) {

-              if (precision == null) {

-                  {if (true) return new CharType();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new CharType(pl);}

-              }

-          }

-          else {

-              // ANSI syntax for VARCHAR

-              if (precision == null) {

-                  {if (true) return new VarCharType();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new VarCharType(pl);}

-              }

-          }

-          break;

-        case K_NCHAR:

-          jj_consume_token(K_NCHAR);

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

-          case K_VARYING:

-            t = jj_consume_token(K_VARYING);

-            break;

-          default:

-            ;

-          }

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (t == null) {

-              if (precision == null) {

-                  {if (true) return new NCharType();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new NCharType(pl);}

-              }

-          }

-          else {

-              // ANSI syntax for NVARCHAR2

-              if (precision == null) {

-                  {if (true) return new NVarChar2Type();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new NVarChar2Type(pl);}

-              }

-          }

-          break;

-        case K_NVARCHAR:

-          jj_consume_token(K_NVARCHAR);

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-            if (precision == null) {

-                {if (true) return new NVarChar2Type();}

-            }

-            else {

-                pl = Long.decode(precision.image);

-                {if (true) return new NVarChar2Type(pl);}

-            }

-          break;

-        case K_NVARCHAR2:

-          jj_consume_token(K_NVARCHAR2);

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-            if (precision == null) {

-                {if (true) return new NVarChar2Type();}

-            }

-            else {

-                pl = Long.decode(precision.image);

-                {if (true) return new NVarChar2Type(pl);}

-            }

-          break;

-        case K_NATIONAL:

-          jj_consume_token(K_NATIONAL);

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

-          case K_CHARACTER:

-            jj_consume_token(K_CHARACTER);

-            break;

-          case K_CHAR:

-            jj_consume_token(K_CHAR);

-            break;

-          default:

-            jj_consume_token(-1);

-            throw new ParseException();

-          }

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

-          case K_VARYING:

-            t = jj_consume_token(K_VARYING);

-            break;

-          default:

-            ;

-          }

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

-          case O_OPENPAREN:

-            jj_consume_token(O_OPENPAREN);

-            precision = jj_consume_token(S_NUMBER);

-            jj_consume_token(O_CLOSEPAREN);

-            break;

-          default:

-            ;

-          }

-          if (t == null) {

-              if (precision == null) {

-                  {if (true) return new NCharType();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new NCharType(pl);}

-              }

-          }

-          else {

-              // ANSI syntax for NVARCHAR2

-              if (precision == null) {

-                  {if (true) return new NVarChar2Type();}

-              }

-              else {

-                  pl = Long.decode(precision.image);

-                  {if (true) return new NVarChar2Type(pl);}

-              }

-          }

-          break;

-        case K_CLOB:

-          jj_consume_token(K_CLOB);

-          if (jj_2_16(2)) {

-            jj_consume_token(K_CHARACTER);

-            jj_consume_token(K_SET);

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

-            case S_IDENTIFIER:

-            case S_QUOTED_IDENTIFIER:

-              if (jj_2_15(2)) {

-                jj_consume_token(S_IDENTIFIER);

-              } else {

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

-                case S_IDENTIFIER:

-                case S_QUOTED_IDENTIFIER:

-                  columnSpec();

-                  jj_consume_token(K_CHARSET);

-                  break;

-                default:

-                  jj_consume_token(-1);

-                  throw new ParseException();

-                }

-              }

-              break;

-            default:

-              ;

-            }

-          } else {

-            ;

-          }

-                                                                                                                   {if (true) return new ClobType();}

-          break;

-        default:

-          jj_consume_token(-1);

-          throw new ParseException();

-        }

-      }

-    }

-    throw new Error("Missing return statement in function");

-  }

-

-  final public DatabaseType typeSpec() throws ParseException {

- boolean isTYPEType = false;

- boolean isROWTYPEType = false;

- DatabaseType dataType = null;

- String spec = null;

- String s = null;

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

-    case K_BFILE:

-    case K_BINARY_DOUBLE:

-    case K_BINARY_FLOAT:

-    case K_BINARY_INTEGER:

-    case K_BLOB:

-    case K_BOOLEAN:

-    case K_CHAR:

-    case K_CHARACTER:

-    case K_CLOB:

-    case K_DATE:

-    case K_DEC:

-    case K_DECIMAL:

-    case K_DOUBLE:

-    case K_FLOAT:

-    case K_INT:

-    case K_INTEGER:

-    case K_INTERVAL:

-    case K_LONG:

-    case K_MLSLABEL:

-    case K_NATIONAL:

-    case K_NATURAL:

-    case K_NCHAR:

-    case K_NCLOB:

-    case K_NUMBER:

-    case K_NUMERIC:

-    case K_NVARCHAR2:

-    case K_NVARCHAR:

-    case K_PLS_INTEGER:

-    case K_POSITIVE:

-    case K_RAW:

-    case K_REAL:

-    case K_ROWID:

-    case K_SIGNTYPE:

-    case K_SIMPLE_DOUBLE:

-    case K_SIMPLE_FLOAT:

-    case K_SIMPLE_INTEGER:

-    case K_SMALLINT:

-    case K_SYS_REFCURSOR:

-    case K_TIME:

-    case K_TIMESTAMP:

-    case K_UROWID:

-    case K_VARCHAR2:

-    case K_VARCHAR:

-      dataType = datatype();

-      break;

-    case S_IDENTIFIER:

-    case S_QUOTED_IDENTIFIER:

-      spec = columnSpec();

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

-      case O_OPENPAREN:

-      case R_ANCHORED_ROWTYPE:

-      case R_ANCHORED_TYPE:

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

-        case O_OPENPAREN:

-          jj_consume_token(O_OPENPAREN);

-          jj_consume_token(S_NUMBER);

-          jj_consume_token(O_CLOSEPAREN);

-          break;

-        case R_ANCHORED_TYPE:

-          jj_consume_token(R_ANCHORED_TYPE);

-             isTYPEType=true;

-             s = spec + removeQuotes(tokenImage[R_ANCHORED_TYPE]);

-          break;

-        case R_ANCHORED_ROWTYPE:

-          jj_consume_token(R_ANCHORED_ROWTYPE);

-             isROWTYPEType =true;

-             s = spec + removeQuotes(tokenImage[R_ANCHORED_ROWTYPE]);

-          break;

-        default:

-          jj_consume_token(-1);

-          throw new ParseException();

-        }

-        break;

-      default:

-        ;

-      }

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-      if (dataType == null && localTypes != null) {

-          for (String typeName : localTypes.keySet()) {

-              if (typeName.equals(spec)) {

-                  dataType = localTypes.get(spec);

-                  break;

-              }

-          }

-      }

-      if (dataType == null) {

-          UnresolvedType uType = new UnresolvedType(spec);

-          if (isTYPEType) {

-              TYPEType tType = new TYPEType(s);

-              tType.setEnclosedType(uType);

-              uType.setOwningType(tType);

-              dataType = tType;

-              localTypes.put(spec, dataType);

-          }

-          else if (isROWTYPEType) {

-              ROWTYPEType rType = new ROWTYPEType(s);

-              rType.setEnclosedType(uType);

-              uType.setOwningType(rType);

-              dataType = rType;

-              localTypes.put(spec, dataType);

-          }

-          else {

-              dataType = uType;

-          }

-      }

-      {if (true) return dataType;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public String columnSpec() throws ParseException {

- String s1 = null;

- String s2 = null;

- String s3 = null;

-    s1 = OracleObjectName();

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

-    case O_DOT:

-      jj_consume_token(O_DOT);

-      s2 = OracleObjectName();

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

-      case O_DOT:

-        jj_consume_token(O_DOT);

-        s3 = OracleObjectName();

-        break;

-      default:

-        ;

-      }

-      break;

-    default:

-      ;

-    }

-      StringBuilder sb = new StringBuilder(s1);

-      if (s2 != null) {

-          sb.append('.');

-          sb.append(s2);

-          if (s3 != null) {

-              sb.append('.');

-              sb.append(s3);

-          }

-      }

-      {if (true) return sb.toString();}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public String tableSpec() throws ParseException {

-    OracleObjectName();

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

-    case O_DOT:

-      jj_consume_token(O_DOT);

-      OracleObjectName();

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

-      case O_ATSIGN:

-        jj_consume_token(O_ATSIGN);

-        jj_consume_token(S_IDENTIFIER);

-        break;

-      default:

-        ;

-      }

-      break;

-    default:

-      ;

-    }

-     {if (true) return token.image;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public String typeName() throws ParseException {

-    OracleObjectName();

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

-    case O_DOT:

-      jj_consume_token(O_DOT);

-      OracleObjectName();

-      break;

-    default:

-      ;

-    }

-     {if (true) return token.image;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public void typeOrSubTypeDeclaration(PLSQLPackageType packageType) throws ParseException {

- String s = null;

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

-    case R_TYPE:

-      typeDeclaration(packageType);

-      break;

-    case R_SUBTYPE:

-      subtypeDeclaration(packageType);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-  }

-

-  final public void typeDeclaration(PLSQLPackageType packageType) throws ParseException {

- String s = null;

-    jj_consume_token(R_TYPE);

-    s = typeName();

-    jj_consume_token(R_IS);

-    aTypeDeclaration(packageType, s);

-    jj_consume_token(O_SEMICOLON);

-  }

-

-  final public void aTypeDeclaration(PLSQLPackageType packageType, String typeName) throws ParseException {

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

-    case K_RECORD:

-      recordDeclaration(packageType, typeName);

-      break;

-    case R_TABLE:

-      plsqlTableDeclaration(packageType, typeName);

-      break;

-    case K_VARRAY:

-    case K_VARYING:

-      varrayDeclaration(packageType);

-      break;

-    case K_REF:

-      refCursorDeclaration(packageType, typeName);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-  }

-

-  final public void recordDeclaration(PLSQLPackageType packageType, String typeName) throws ParseException {

-  PLSQLRecordType plsqlRecordType = new PLSQLRecordType(typeName);

-  plsqlRecordType.setParentType(packageType);

-    jj_consume_token(K_RECORD);

-    jj_consume_token(O_OPENPAREN);

-    fieldDeclarations(plsqlRecordType);

-    jj_consume_token(O_CLOSEPAREN);

-      packageType.addType(plsqlRecordType);

-      localTypes.put(typeName, plsqlRecordType);

-  }

-

-  final public void fieldDeclarations(PLSQLRecordType plsqlRecordType) throws ParseException {

-    fieldDeclaration(plsqlRecordType);

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

-    case O_COMMA:

-      jj_consume_token(O_COMMA);

-      fieldDeclarations(plsqlRecordType);

-      break;

-    default:

-      ;

-    }

-  }

-

-  final public void fieldDeclaration(PLSQLRecordType plsqlRecordType) throws ParseException {

-  String s = null;

-  DatabaseType dataType = null;

-  FieldType fieldType = null;

-    s = typeName();

-    dataType = typeSpec();

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

-    case R_NOT:

-      jj_consume_token(R_NOT);

-      jj_consume_token(R_NULL);

-      break;

-    default:

-      ;

-    }

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

-    case O_ASSIGN:

-    case R_DEFAULT:

-      fieldDefaultAssignment();

-      break;

-    default:

-      ;

-    }

-      fieldType = new FieldType(s);

-      fieldType.setEnclosedType(dataType);

-      plsqlRecordType.addField(fieldType);

-      if (dataType instanceof UnresolvedType) {

-          ((UnresolvedType)dataType).setOwningType(plsqlRecordType);

-      }

-  }

-

-  final public void fieldDefaultAssignment() throws ParseException {

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

-    case O_ASSIGN:

-      jj_consume_token(O_ASSIGN);

-      break;

-    case R_DEFAULT:

-      jj_consume_token(R_DEFAULT);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    skipToNextArg();

-  }

-

-  final public void subtypeDeclaration(PLSQLPackageType packageType) throws ParseException {

- String subtypeName;

-DatabaseType subtype;

-Token notNull = null;

-Token rangeStart = null;

-Token rangeEnd = null;

-    jj_consume_token(R_SUBTYPE);

-    subtypeName = OracleObjectName();

-    jj_consume_token(R_IS);

-    subtype = typeSpec();

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

-    case K_RANGE:

-      jj_consume_token(K_RANGE);

-      rangeStart = jj_consume_token(S_NUMBER);

-      jj_consume_token(O_DOUBLEDOT);

-      rangeEnd = jj_consume_token(S_NUMBER);

-      break;

-    default:

-      ;

-    }

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

-    case R_NOT:

-      jj_consume_token(R_NOT);

-      notNull = jj_consume_token(R_NULL);

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-      PLSQLSubType newPLSQLSubType = new PLSQLSubType(subtypeName);

-      newPLSQLSubType.setEnclosedType(subtype);

-      if (subtype instanceof UnresolvedType) {

-          ((UnresolvedType)subtype).setOwningType(newPLSQLSubType);

-      }

-      packageType.addType(newPLSQLSubType);

-      if (notNull != null) {

-          newPLSQLSubType.setNotNull(true);

-      }

-      if (rangeStart != null) {

-          long rStart = Long.decode(rangeStart.image).longValue();

-          long rEnd = Long.decode(rangeEnd.image).longValue();

-          newPLSQLSubType.setHasRange(true);

-          newPLSQLSubType.setRangeStart(rStart);

-          newPLSQLSubType.setRangeEnd(rEnd);

-      }

-      localTypes.put(subtypeName, newPLSQLSubType);

-  }

-

-  final public void plsqlTableDeclaration(PLSQLPackageType packageType, String typeName) throws ParseException {

-  PLSQLCollectionType plsqlTable = new PLSQLCollectionType(typeName);

-  plsqlTable.setParentType(packageType);

-  DatabaseType nestedType;

-    jj_consume_token(R_TABLE);

-    jj_consume_token(R_OF);

-    nestedType = typeSpec();

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

-    case R_NOT:

-      jj_consume_token(R_NOT);

-      jj_consume_token(R_NULL);

-      break;

-    default:

-      ;

-    }

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

-    case R_INDEX:

-      jj_consume_token(R_INDEX);

-      jj_consume_token(R_BY);

-      plsqlTableIndexByDeclaration(plsqlTable);

-      break;

-    default:

-      ;

-    }

-      if (nestedType instanceof UnresolvedType) {

-        ((UnresolvedType)nestedType).setOwningType(plsqlTable);

-      }

-      plsqlTable.setEnclosedType(nestedType);

-      packageType.addType(plsqlTable);

-      localTypes.put(typeName, plsqlTable);

-  }

-

-  final public void plsqlTableIndexByDeclaration(PLSQLCollectionType plsqlTable) throws ParseException {

-  DatabaseType indexType = null;

-  Token precision = null;

-  Token otherIndexByType = null;

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

-    case K_PLS_INTEGER:

-      jj_consume_token(K_PLS_INTEGER);

-                       indexType = PLS_INTEGER_TYPE;

-      break;

-    case K_BINARY_INTEGER:

-      jj_consume_token(K_BINARY_INTEGER);

-                           indexType = BINARY_INTEGER_TYPE;

-      break;

-    case K_VARCHAR2:

-      jj_consume_token(K_VARCHAR2);

-      jj_consume_token(O_OPENPAREN);

-      precision = jj_consume_token(S_NUMBER);

-      jj_consume_token(O_CLOSEPAREN);

-        if (precision == null) {

-            indexType = new VarChar2Type();

-        }

-        else {

-            Long pl = Long.decode(precision.image);

-            indexType = new VarChar2Type(pl);

-        }

-      break;

-    case K_STRING:

-      otherIndexByType = jj_consume_token(K_STRING);

-      jj_consume_token(O_OPENPAREN);

-      jj_consume_token(S_NUMBER);

-      jj_consume_token(O_CLOSEPAREN);

-        String indexTypename = otherIndexByType.image;

-        for (String typeName : localTypes.keySet()) {

-            if (typeName.equals(indexTypename)) {

-                indexType = localTypes.get(indexTypename);

-                break;

-            }

-        }

-        //what else can INDEX BY be? Unresolved for now ...

-        if (indexType == null) {

-            indexType = new UnresolvedType(indexTypename);

-            ((UnresolvedType)indexType).setOwningType(plsqlTable);

-        }

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-      plsqlTable.setIndexed(true);

-      plsqlTable.setIndexType(indexType);

-  }

-

-  final public void varrayDeclaration(PLSQLPackageType packageType) throws ParseException {

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

-    case K_VARRAY:

-      jj_consume_token(K_VARRAY);

-      break;

-    case K_VARYING:

-      jj_consume_token(K_VARYING);

-      jj_consume_token(K_ARRAY);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    jj_consume_token(O_OPENPAREN);

-    jj_consume_token(S_NUMBER);

-    jj_consume_token(O_CLOSEPAREN);

-    jj_consume_token(R_OF);

-    datatype();

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

-    case R_NOT:

-      jj_consume_token(R_NOT);

-      jj_consume_token(R_NULL);

-      break;

-    default:

-      ;

-    }

-  }

-

-  final public void refCursorDeclaration(PLSQLPackageType packageType, String cursorTypeName) throws ParseException {

- PLSQLCursorType cursorType = null;

-    jj_consume_token(K_REF);

-    jj_consume_token(R_CURSOR);

-        cursorType = new PLSQLCursorType(cursorTypeName);

-        packageType.addCursor(cursorType);

-        localTypes.put(cursorTypeName, cursorType);

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

-    case K_RETURN:

-      refCursorTypeSpec(cursorType, packageType);

-      break;

-    default:

-      ;

-    }

-  }

-

-  final public void refCursorTypeSpec(PLSQLCursorType cursorType, PLSQLPackageType packageType) throws ParseException {

- String s = null;

- String spec = null;

- boolean isTYPEType = false;

- boolean isROWTYPEType = false;

- DatabaseType localType = null;

-    jj_consume_token(K_RETURN);

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

-    case S_IDENTIFIER:

-    case S_QUOTED_IDENTIFIER:

-      if (jj_2_18(3)) {

-        spec = columnSpec();

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

-        case R_ANCHORED_TYPE:

-          jj_consume_token(R_ANCHORED_TYPE);

-          isTYPEType = true;

-          s = spec + tokenImage[R_ANCHORED_TYPE].substring(1, tokenImage[R_ANCHORED_TYPE].length() - 1);

-          break;

-        default:

-          ;

-        }

-      } else if (jj_2_19(3)) {

-        spec = tableSpec();

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

-        case R_ANCHORED_ROWTYPE:

-          jj_consume_token(R_ANCHORED_ROWTYPE);

-          isROWTYPEType = true;

-          s = spec + tokenImage[R_ANCHORED_ROWTYPE].substring(1, tokenImage[R_ANCHORED_ROWTYPE].length() - 1);

-          break;

-        default:

-          ;

-        }

-      } else {

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-      break;

-    default:

-      ;

-    }

-      //check local variables first

-          for (FieldType varField : packageType.getLocalVariables()) {

-              if (spec.equals(varField.getFieldName())) {

-              if (isTYPEType) {

-                  TYPEType tType = new TYPEType(s);

-                  UnresolvedType uType = new UnresolvedType(s);

-                  tType.setEnclosedType(uType);

-                  uType.setOwningType(tType);

-                  localType = tType;

-              }

-              else if (isROWTYPEType) {

-                  ROWTYPEType rType = new ROWTYPEType(s);

-                  UnresolvedType uType = new UnresolvedType(s);

-                  rType.setEnclosedType(uType);

-                  uType.setOwningType(rType);

-                  localType = rType;

-              }

-              else {

-                  localType = varField.getEnclosedType();

-              }

-              cursorType.setEnclosedType(localType);

-                  break;

-              }

-          }

-      if (localType == null) {

-          localType = localTypes.get(spec);

-          if (localType == null) {

-                  UnresolvedType uType = new UnresolvedType(spec);

-                  if (isTYPEType) {

-                      TYPEType tType = new TYPEType(s);

-                      tType.setEnclosedType(uType);

-                      uType.setOwningType(tType);

-                      cursorType.setEnclosedType(tType);

-                  }

-                  else if (isROWTYPEType) {

-                      ROWTYPEType rType = new ROWTYPEType(s);

-                      rType.setEnclosedType(uType);

-                      uType.setOwningType(rType);

-                      cursorType.setEnclosedType(rType);

-                  }

-                  else {

-                      uType.setOwningType(cursorType);

-                      cursorType.setEnclosedType(uType);

-                  }

-              }

-              else {

-                  cursorType.setEnclosedType(localType);

-              }

-          }

-  }

-

-  final public void cursorDeclaration(PLSQLPackageType packageType) throws ParseException {

- Token t = null;

-    jj_consume_token(R_CURSOR);

-    t = jj_consume_token(S_IDENTIFIER);

-    jj_consume_token(O_SEMICOLON);

-  }

-

+  final public CompositeDatabaseType parseType() throws ParseException {
+ CompositeDatabaseType databaseType = null;
+ DatabaseType enclosedType = null;
+ String dottedName = null;
+ String schema = null;
+ String typeName = null;
+ Token vsize = null;
+ boolean varray = false;
+ boolean nestedTable = false;
+    jj_consume_token(R_CREATE);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_OR:
+      orReplace();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(R_TYPE);
+    dottedName = OracleObjectNamePossiblyDotted();
+          typeName = dottedName;
+          if (dottedName.contains(".")) {
+              int idx = dottedName.indexOf(".");
+              schema = dottedName.substring(0, idx);
+              typeName = dottedName.substring(idx+1, dottedName.length());
+          }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_FORCE:
+      jj_consume_token(K_FORCE);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_OID:
+      jj_consume_token(K_OID);
+      jj_consume_token(S_CHAR_LITERAL);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_AUTHID:
+      invokerRights();
+      break;
+    default:
+      ;
+    }
+    as();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_TABLE:
+    case K_OBJECT:
+    case K_VARRAY:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_OBJECT:
+        jj_consume_token(K_OBJECT);
+        jj_consume_token(O_OPENPAREN);
+                databaseType = new ObjectType(typeName);
+                if (schema != null) {
+                    ((ObjectType)databaseType).setSchema(schema);
+                }
+        columnDeclarations(databaseType);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      case K_VARRAY:
+        jj_consume_token(K_VARRAY);
+        jj_consume_token(O_OPENPAREN);
+        vsize = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        jj_consume_token(R_OF);
+                databaseType = new VArrayType(typeName);
+                if (schema != null) {
+                    ((VArrayType)databaseType).setSchema(schema);
+                }
+                if (vsize != null) {
+                    Long size = Long.decode(vsize.image);
+                    ((VArrayType)databaseType).setSize(size);
+                }
+        enclosedType = columnTypeSpec(databaseType);
+        break;
+      case R_TABLE:
+        jj_consume_token(R_TABLE);
+        jj_consume_token(R_OF);
+                databaseType = new ObjectTableType(typeName);
+                if (schema != null) {
+                    ((ObjectTableType)databaseType).setSchema(schema);
+                }
+        enclosedType = columnTypeSpec(databaseType);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+    case K_FINAL:
+    case K_INSTANTIABLE:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_NOT:
+        jj_consume_token(R_NOT);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_FINAL:
+        jj_consume_token(K_FINAL);
+        break;
+      case K_INSTANTIABLE:
+        jj_consume_token(K_INSTANTIABLE);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_SEMICOLON:
+      jj_consume_token(O_SEMICOLON);
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(0);
+        if (enclosedType != null) {
+            ((CompositeDatabaseType)databaseType).setEnclosedType(enclosedType);
+        }
+        typesRepository.setDatabaseType(typeName, databaseType);
+        {if (true) return databaseType;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public void columnDeclarations(CompositeDatabaseType enclosingType) throws ParseException {
+    columnDeclaration(enclosingType);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_COMMA:
+      jj_consume_token(O_COMMA);
+      columnDeclarations(enclosingType);
+      break;
+    default:
+      ;
+    }
+  }
+
+  final public void columnDeclaration(CompositeDatabaseType enclosingType) throws ParseException {
+ String s = null;
+ String pk = null;
+ boolean notNull = false;
+ DatabaseType columnType = null;
+ FieldType column = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case S_IDENTIFIER:
+    case S_QUOTED_IDENTIFIER:
+      s = OracleObjectName();
+           column = new FieldType(s);
+                   if (enclosingType != null) {
+                       if (enclosingType.isPLSQLRecordType()) {
+                               ((PLSQLRecordType)enclosingType).addField(column);
+                       }
+                           else if (enclosingType.isTableType()) {
+                               ((TableType)enclosingType).addColumn(column);
+                           }
+                           else if (enclosingType.isObjectType()) {
+                               ((ObjectType)enclosingType).addField(column);
+                           }
+                   }
+      columnType = columnTypeSpec(enclosingType);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_NOT:
+        jj_consume_token(R_NOT);
+        jj_consume_token(R_NULL);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_ENABLE:
+          jj_consume_token(K_ENABLE);
+          break;
+        default:
+          ;
+        }
+                                                                                     notNull = true;
+        break;
+      default:
+        ;
+      }
+      break;
+    case R_CHECK:
+    case R_UNIQUE:
+    case K_CONSTRAINT:
+    case K_PRIMARY:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_CONSTRAINT:
+        jj_consume_token(K_CONSTRAINT);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case S_IDENTIFIER:
+      case S_QUOTED_IDENTIFIER:
+        OracleObjectName();
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_PRIMARY:
+        jj_consume_token(K_PRIMARY);
+        jj_consume_token(K_KEY);
+        jj_consume_token(O_OPENPAREN);
+        pkList((TableType)enclosingType);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      case R_CHECK:
+        jj_consume_token(R_CHECK);
+        jj_consume_token(O_OPENPAREN);
+        skipToClosingParen();
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      case R_UNIQUE:
+        jj_consume_token(R_UNIQUE);
+        jj_consume_token(O_OPENPAREN);
+        uniqList();
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      jj_consume_token(K_ENABLE);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+      if (column != null) {
+              column.setEnclosedType(columnType);
+              if (columnType instanceof UnresolvedType) {
+                  ((UnresolvedType)columnType).setOwningType(column);
+              }
+              if (notNull) {
+                  column.setNotNull();
+              }
+          }
+  }
+
+  final public DatabaseType columnTypeSpec(CompositeDatabaseType enclosingType) throws ParseException {
+ String s = null;
+ Token t = null;
+ DatabaseType dt = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_BFILE:
+    case K_BINARY_DOUBLE:
+    case K_BINARY_FLOAT:
+    case K_BINARY_INTEGER:
+    case K_BLOB:
+    case K_BOOLEAN:
+    case K_CHAR:
+    case K_CHARACTER:
+    case K_CLOB:
+    case K_DATE:
+    case K_DEC:
+    case K_DECIMAL:
+    case K_DOUBLE:
+    case K_FLOAT:
+    case K_INT:
+    case K_INTEGER:
+    case K_INTERVAL:
+    case K_LONG:
+    case K_MLSLABEL:
+    case K_NATIONAL:
+    case K_NATURAL:
+    case K_NCHAR:
+    case K_NCLOB:
+    case K_NUMBER:
+    case K_NUMERIC:
+    case K_NVARCHAR2:
+    case K_NVARCHAR:
+    case K_PLS_INTEGER:
+    case K_POSITIVE:
+    case K_RAW:
+    case K_REAL:
+    case K_ROWID:
+    case K_SIGNTYPE:
+    case K_SIMPLE_DOUBLE:
+    case K_SIMPLE_FLOAT:
+    case K_SIMPLE_INTEGER:
+    case K_SMALLINT:
+    case K_SYS_REFCURSOR:
+    case K_TIME:
+    case K_TIMESTAMP:
+    case K_UROWID:
+    case K_VARCHAR2:
+    case K_VARCHAR:
+      dt = datatype();
+      break;
+    case S_IDENTIFIER:
+    case S_QUOTED_IDENTIFIER:
+      s = columnSpec();
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        t = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_CONSTRAINT:
+      jj_consume_token(K_CONSTRAINT);
+      jj_consume_token(S_QUOTED_IDENTIFIER);
+      break;
+    default:
+      ;
+    }
+      if (s != null) {
+          for (String typeName : localTypes.keySet()) {
+              if (typeName.equals(s)) {
+                  dt = localTypes.get(s);
+                  break;
+              }
+          }
+          if (dt == null) {
+              if (t != null) {
+                  Long size = Long.decode(t.image);
+                  dt = new UnresolvedSizedType(s, size);
+              }
+              else {
+                  dt = new UnresolvedType(s);
+              }
+              ((UnresolvedType)dt).setOwningType(enclosingType);
+          }
+      }
+      {if (true) return dt;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public void uniqList() throws ParseException {
+    OracleObjectName();
+    label_2:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_COMMA:
+        ;
+        break;
+      default:
+        break label_2;
+      }
+      jj_consume_token(O_COMMA);
+      OracleObjectName();
+    }
+  }
+
+  final public void pkList(TableType tableType) throws ParseException {
+    pk(tableType);
+    label_3:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_COMMA:
+        ;
+        break;
+      default:
+        break label_3;
+      }
+      jj_consume_token(O_COMMA);
+      pk(tableType);
+    }
+  }
+
+  final public void pk(TableType tableType) throws ParseException {
+String s = null;
+    s = OracleObjectName();
+       List<FieldType> columns = tableType.getColumns();
+       for (FieldType column : columns) {
+            if (column.getFieldName().equals(s)) {
+                column.setPk();
+                break;
+            }
+       }
+  }
+
+  final public void packageDeclaration(PLSQLPackageType packageType) throws ParseException {
+    if (jj_2_1(2)) {
+      variableDeclaration(packageType);
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_SUBTYPE:
+      case R_TYPE:
+        typeOrSubTypeDeclaration(packageType);
+        break;
+      case R_CURSOR:
+        cursorDeclaration(packageType);
+        break;
+      case R_PROCEDURE:
+        procedureSpec(packageType);
+        break;
+      case R_FUNCTION:
+        functionSpec(packageType);
+        break;
+      case S_IDENTIFIER:
+        exceptionDeclaration();
+        break;
+      case K_PRAGMA:
+        pragmaDeclaration();
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    }
+  }
+
+  final public void variableDeclaration(PLSQLPackageType packageType) throws ParseException {
+ Token varName = null;
+ DatabaseType varType;
+    varName = jj_consume_token(S_IDENTIFIER);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_CONSTANT:
+      jj_consume_token(K_CONSTANT);
+      break;
+    default:
+      ;
+    }
+    varType = typeSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+      jj_consume_token(R_NOT);
+      jj_consume_token(R_NULL);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+    case R_DEFAULT:
+      variableDefaultAssignment();
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+        FieldType variable = new FieldType(varName.image);
+        variable.setEnclosedType(varType);
+        packageType.addLocalVariable(variable);
+  }
+
+  final public void variableDefaultAssignment() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+      jj_consume_token(O_ASSIGN);
+      break;
+    case R_DEFAULT:
+      jj_consume_token(R_DEFAULT);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    skipToSemiColon();
+  }
+
+  final public DatabaseType datatype() throws ParseException {
+ Token t = null;
+ DatabaseType dt = null;
+ Token precision = null;
+ Long sl;
+ Long pl;
+ Token scale = null;
+ Token withTimeZone = null;
+ Token withLocalTimeZone = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_BINARY_INTEGER:
+      jj_consume_token(K_BINARY_INTEGER);
+                          {if (true) return BINARY_INTEGER_TYPE;}
+      break;
+    case K_BINARY_FLOAT:
+      jj_consume_token(K_BINARY_FLOAT);
+                          {if (true) return BINARY_FLOAT_TYPE;}
+      break;
+    case K_BINARY_DOUBLE:
+      jj_consume_token(K_BINARY_DOUBLE);
+                          {if (true) return BINARY_DOUBLE_TYPE;}
+      break;
+    case K_NATURAL:
+      jj_consume_token(K_NATURAL);
+                          {if (true) return NATURAL_TYPE;}
+      break;
+    case K_POSITIVE:
+      jj_consume_token(K_POSITIVE);
+                          {if (true) return POSITIVE_TYPE;}
+      break;
+    case K_SIGNTYPE:
+      jj_consume_token(K_SIGNTYPE);
+                          {if (true) return SIGN_TYPE;}
+      break;
+    case K_DEC:
+    case K_DECIMAL:
+    case K_NUMBER:
+    case K_NUMERIC:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_NUMBER:
+        t = jj_consume_token(K_NUMBER);
+        break;
+      case K_NUMERIC:
+        t = jj_consume_token(K_NUMERIC);
+        break;
+      case K_DECIMAL:
+        t = jj_consume_token(K_DECIMAL);
+        break;
+      case K_DEC:
+        t = jj_consume_token(K_DEC);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case O_ASTERISK:
+        case S_NUMBER:
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case O_ASTERISK:
+            precision = jj_consume_token(O_ASTERISK);
+            break;
+          case S_NUMBER:
+            precision = jj_consume_token(S_NUMBER);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+          break;
+        default:
+          ;
+        }
+        label_4:
+        while (true) {
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case O_COMMA:
+            ;
+            break;
+          default:
+            break label_4;
+          }
+          jj_consume_token(O_COMMA);
+          scale = jj_consume_token(S_NUMBER);
+        }
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+            if (t.kind == K_NUMBER || t.kind == K_NUMERIC) {
+                if (precision != null && precision.image.equals("*")) {
+                    precision = null;
+                }
+                if (precision == null) {
+                    if (scale != null && scale.image.equals("0")) {
+                        dt = INTEGER_TYPE;
+                    }
+                    else {
+                        dt = new NumericType();
+                    }
+                }
+                    else {
+                        pl = Long.decode(precision.image);
+                        if (scale == null) {
+                        dt = new NumericType(pl);
+                    }
+                    else {
+                        sl = Long.decode(scale.image);
+                        dt = new NumericType(pl, sl);
+                        }
+                    }
+                //sometimes need to know difference between NUMERIC and NUMBER
+                if (dt != INTEGER_TYPE && t.kind == K_NUMBER) {
+                    ((NumericType)dt).setNumberSynonym(true);
+                }
+            }
+            else  if (t.kind == K_DECIMAL || t.kind == K_DEC) {
+                if (precision != null && precision.image.equals("*")) {
+                    precision = null;
+                }
+                if (precision == null) {
+                    dt = new DecimalType();
+                }
+                else {
+                    pl = Long.decode(precision.image);
+                    if (scale == null) {
+                        dt = new DecimalType(pl);
+                    }
+                    else {
+                        sl = Long.decode(scale.image);
+                        dt = new DecimalType(pl, sl);
+                    }
+                }
+            }
+            {if (true) return dt;}
+      break;
+    case K_LONG:
+      jj_consume_token(K_LONG);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_RAW:
+        t = jj_consume_token(K_RAW);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+              if (t == null) {
+              if (precision == null) {
+                  dt = new LongType();
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  dt = new LongType(pl);
+              }
+              }
+              else {
+              if (precision == null) {
+                  dt = new LongRawType();
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  dt = new LongRawType(pl);
+              }
+            }
+            {if (true) return dt;}
+      break;
+    case K_RAW:
+      jj_consume_token(K_RAW);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+            if (precision == null) {
+                dt = new RawType();
+            }
+            else {
+                pl = Long.decode(precision.image);
+                dt = new RawType(pl);
+            }
+            {if (true) return dt;}
+      break;
+    case K_BOOLEAN:
+      jj_consume_token(K_BOOLEAN);
+                    {if (true) return BOOLEAN_TYPE;}
+      break;
+    case K_DATE:
+      jj_consume_token(K_DATE);
+                 {if (true) return DATE_TYPE;}
+      break;
+    case K_INTERVAL:
+      jj_consume_token(K_INTERVAL);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_DAY:
+        jj_consume_token(K_DAY);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case O_OPENPAREN:
+          jj_consume_token(O_OPENPAREN);
+          precision = jj_consume_token(S_NUMBER);
+          jj_consume_token(O_CLOSEPAREN);
+          break;
+        default:
+          ;
+        }
+        jj_consume_token(R_TO);
+        jj_consume_token(K_SECOND);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case O_OPENPAREN:
+          jj_consume_token(O_OPENPAREN);
+          scale = jj_consume_token(S_NUMBER);
+          jj_consume_token(O_CLOSEPAREN);
+          break;
+        default:
+          ;
+        }
+                if (precision == null) {
+                        dt = new IntervalDayToSecond();
+                    }
+                    else {
+                        pl = Long.decode(precision.image);
+                        if (scale == null) {
+                            dt = new IntervalDayToSecond(pl);
+                        }
+                        else {
+                            sl = Long.decode(scale.image);
+                            dt = new IntervalDayToSecond(pl, sl);
+                        }
+                    }
+                {if (true) return dt;}
+        break;
+      case K_YEAR:
+        jj_consume_token(K_YEAR);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case O_OPENPAREN:
+          jj_consume_token(O_OPENPAREN);
+          jj_consume_token(S_NUMBER);
+          jj_consume_token(O_CLOSEPAREN);
+          break;
+        default:
+          ;
+        }
+        jj_consume_token(R_TO);
+        jj_consume_token(K_MONTH);
+                if (precision == null) {
+                    dt = new IntervalYearToMonth();
+                }
+                else {
+                    pl = Long.decode(precision.image);
+                    dt = new IntervalYearToMonth(pl);
+                }
+                {if (true) return dt;}
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      break;
+    case K_TIME:
+      jj_consume_token(K_TIME);
+                 {if (true) return TIME_TYPE;}
+      break;
+    case K_TIMESTAMP:
+      jj_consume_token(K_TIMESTAMP);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_WITH:
+        jj_consume_token(R_WITH);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_LOCAL:
+          withLocalTimeZone = jj_consume_token(K_LOCAL);
+          break;
+        default:
+          ;
+        }
+        withTimeZone = jj_consume_token(K_TIME);
+        jj_consume_token(K_ZONE);
+        break;
+      default:
+        ;
+      }
+          if (precision == null) {
+              dt = new TimeStampType();
+          }
+          else {
+              pl = Long.decode(precision.image);
+              dt = new TimeStampType(pl);
+          }
+          if (withLocalTimeZone !=  null) {
+              ((TimeStampType)dt).setWithLocalTimeZone();
+          }
+          else if (withTimeZone != null) {
+              ((TimeStampType)dt).setWithTimeZone();
+          }
+          {if (true) return dt;}
+      break;
+    case K_INTEGER:
+      jj_consume_token(K_INTEGER);
+                     {if (true) return INTEGER_TYPE;}
+      break;
+    case K_INT:
+      jj_consume_token(K_INT);
+                     {if (true) return INTEGER_TYPE;}
+      break;
+    case K_SMALLINT:
+      jj_consume_token(K_SMALLINT);
+                     {if (true) return SMALLINT_TYPE;}
+      break;
+    case K_FLOAT:
+      jj_consume_token(K_FLOAT);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+          if (precision == null) {
+              {if (true) return new FloatType();}
+          }
+          else {
+              pl = Long.decode(precision.image);
+              FloatType ft = new FloatType(pl);
+              {if (true) return ft;}
+          }
+      break;
+    case K_REAL:
+      jj_consume_token(K_REAL);
+                 {if (true) return new RealType();}
+      break;
+    case K_MLSLABEL:
+      jj_consume_token(K_MLSLABEL);
+                     {if (true) return MLSLABEL_TYPE;}
+      break;
+    case K_PLS_INTEGER:
+      jj_consume_token(K_PLS_INTEGER);
+                        {if (true) return PLS_INTEGER_TYPE;}
+      break;
+    case K_SIMPLE_INTEGER:
+      jj_consume_token(K_SIMPLE_INTEGER);
+                           {if (true) return SIMPLE_INTEGER_TYPE;}
+      break;
+    case K_SIMPLE_FLOAT:
+      jj_consume_token(K_SIMPLE_FLOAT);
+                         {if (true) return SIMPLE_FLOAT_TYPE;}
+      break;
+    case K_SIMPLE_DOUBLE:
+      jj_consume_token(K_SIMPLE_DOUBLE);
+                          {if (true) return SIMPLE_DOUBLE_TYPE;}
+      break;
+    case K_SYS_REFCURSOR:
+      jj_consume_token(K_SYS_REFCURSOR);
+                           {if (true) return SYS_REFCURSOR_TYPE;}
+      break;
+    case K_BLOB:
+      jj_consume_token(K_BLOB);
+                  {if (true) return new BlobType();}
+      break;
+    case K_NCLOB:
+      jj_consume_token(K_NCLOB);
+                  {if (true) return new NClobType();}
+      break;
+    case K_BFILE:
+      jj_consume_token(K_BFILE);
+                   {if (true) return BFILE_TYPE;}
+      break;
+    case K_ROWID:
+      jj_consume_token(K_ROWID);
+                  {if (true) return ROWID_TYPE;}
+      break;
+    case K_UROWID:
+      jj_consume_token(K_UROWID);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+          if (precision == null) {
+              {if (true) return new URowIdType();}
+          }
+          else {
+              pl = Long.decode(precision.image);
+              {if (true) return new URowIdType(pl);}
+          }
+      break;
+    case K_DOUBLE:
+      jj_consume_token(K_DOUBLE);
+      jj_consume_token(K_PRECISION);
+                                 {if (true) return new DoubleType();}
+      break;
+    case K_CHAR:
+      jj_consume_token(K_CHAR);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_VARYING:
+        t = jj_consume_token(K_VARYING);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_BYTE:
+        case K_CHAR:
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case K_BYTE:
+            jj_consume_token(K_BYTE);
+            break;
+          case K_CHAR:
+            jj_consume_token(K_CHAR);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+          break;
+        default:
+          ;
+        }
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_CHARACTER:
+        jj_consume_token(K_CHARACTER);
+        jj_consume_token(K_SET);
+        jj_consume_token(S_IDENTIFIER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_CHARSET:
+          jj_consume_token(K_CHARSET);
+          break;
+        default:
+          ;
+        }
+        break;
+      default:
+        ;
+      }
+          if (t == null) {
+              if (precision == null) {
+                  {if (true) return new CharType();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new CharType(pl);}
+              }
+          }
+          else {
+              // ANSI syntax for VARCHAR2
+              if (precision == null) {
+                  {if (true) return new VarChar2Type();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new VarChar2Type(pl);}
+              }
+          }
+      break;
+    case K_VARCHAR:
+      jj_consume_token(K_VARCHAR);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_VARYING:
+        jj_consume_token(K_VARYING);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_BYTE:
+        case K_CHAR:
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case K_BYTE:
+            jj_consume_token(K_BYTE);
+            break;
+          case K_CHAR:
+            jj_consume_token(K_CHAR);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+          break;
+        default:
+          ;
+        }
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_CHARACTER:
+        jj_consume_token(K_CHARACTER);
+        jj_consume_token(K_SET);
+        jj_consume_token(S_IDENTIFIER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_CHARSET:
+          jj_consume_token(K_CHARSET);
+          break;
+        default:
+          ;
+        }
+        break;
+      default:
+        ;
+      }
+          if (precision == null) {
+              {if (true) return new VarCharType();}
+          }
+          else {
+              pl = Long.decode(precision.image);
+              {if (true) return new VarCharType(pl);}
+          }
+      break;
+    case K_VARCHAR2:
+      jj_consume_token(K_VARCHAR2);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_VARYING:
+        jj_consume_token(K_VARYING);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_BYTE:
+        case K_CHAR:
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case K_BYTE:
+            jj_consume_token(K_BYTE);
+            break;
+          case K_CHAR:
+            jj_consume_token(K_CHAR);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+          break;
+        default:
+          ;
+        }
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_CHARACTER:
+        jj_consume_token(K_CHARACTER);
+        jj_consume_token(K_SET);
+        jj_consume_token(S_IDENTIFIER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_CHARSET:
+          jj_consume_token(K_CHARSET);
+          break;
+        default:
+          ;
+        }
+        break;
+      default:
+        ;
+      }
+            if (precision == null) {
+                {if (true) return new VarChar2Type();}
+            }
+            else {
+                pl = Long.decode(precision.image);
+                {if (true) return new VarChar2Type(pl);}
+            }
+      break;
+    case K_CHARACTER:
+      jj_consume_token(K_CHARACTER);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_VARYING:
+        t = jj_consume_token(K_VARYING);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+          if (t == null) {
+              if (precision == null) {
+                  {if (true) return new CharType();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new CharType(pl);}
+              }
+          }
+          else {
+              // ANSI syntax for VARCHAR
+              if (precision == null) {
+                  {if (true) return new VarCharType();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new VarCharType(pl);}
+              }
+          }
+      break;
+    case K_NCHAR:
+      jj_consume_token(K_NCHAR);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_VARYING:
+        t = jj_consume_token(K_VARYING);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+          if (t == null) {
+              if (precision == null) {
+                  {if (true) return new NCharType();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new NCharType(pl);}
+              }
+          }
+          else {
+              // ANSI syntax for NVARCHAR2
+              if (precision == null) {
+                  {if (true) return new NVarChar2Type();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new NVarChar2Type(pl);}
+              }
+          }
+      break;
+    case K_NVARCHAR:
+      jj_consume_token(K_NVARCHAR);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+            if (precision == null) {
+                {if (true) return new NVarChar2Type();}
+            }
+            else {
+                pl = Long.decode(precision.image);
+                {if (true) return new NVarChar2Type(pl);}
+            }
+      break;
+    case K_NVARCHAR2:
+      jj_consume_token(K_NVARCHAR2);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+            if (precision == null) {
+                {if (true) return new NVarChar2Type();}
+            }
+            else {
+                pl = Long.decode(precision.image);
+                {if (true) return new NVarChar2Type(pl);}
+            }
+      break;
+    case K_NATIONAL:
+      jj_consume_token(K_NATIONAL);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_CHARACTER:
+        jj_consume_token(K_CHARACTER);
+        break;
+      case K_CHAR:
+        jj_consume_token(K_CHAR);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_VARYING:
+        t = jj_consume_token(K_VARYING);
+        break;
+      default:
+        ;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+        jj_consume_token(O_OPENPAREN);
+        precision = jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        ;
+      }
+          if (t == null) {
+              if (precision == null) {
+                  {if (true) return new NCharType();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new NCharType(pl);}
+              }
+          }
+          else {
+              // ANSI syntax for NVARCHAR2
+              if (precision == null) {
+                  {if (true) return new NVarChar2Type();}
+              }
+              else {
+                  pl = Long.decode(precision.image);
+                  {if (true) return new NVarChar2Type(pl);}
+              }
+          }
+      break;
+    case K_CLOB:
+      jj_consume_token(K_CLOB);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_CHARACTER:
+        jj_consume_token(K_CHARACTER);
+        jj_consume_token(K_SET);
+        jj_consume_token(S_IDENTIFIER);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_CHARSET:
+          jj_consume_token(K_CHARSET);
+          break;
+        default:
+          ;
+        }
+        break;
+      default:
+        ;
+      }
+                                                                          {if (true) return new ClobType();}
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  final public DatabaseType typeSpec() throws ParseException {
+ boolean isTYPEType = false;
+ boolean isROWTYPEType = false;
+ DatabaseType dataType = null;
+ String spec = null;
+ String s = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_BFILE:
+    case K_BINARY_DOUBLE:
+    case K_BINARY_FLOAT:
+    case K_BINARY_INTEGER:
+    case K_BLOB:
+    case K_BOOLEAN:
+    case K_CHAR:
+    case K_CHARACTER:
+    case K_CLOB:
+    case K_DATE:
+    case K_DEC:
+    case K_DECIMAL:
+    case K_DOUBLE:
+    case K_FLOAT:
+    case K_INT:
+    case K_INTEGER:
+    case K_INTERVAL:
+    case K_LONG:
+    case K_MLSLABEL:
+    case K_NATIONAL:
+    case K_NATURAL:
+    case K_NCHAR:
+    case K_NCLOB:
+    case K_NUMBER:
+    case K_NUMERIC:
+    case K_NVARCHAR2:
+    case K_NVARCHAR:
+    case K_PLS_INTEGER:
+    case K_POSITIVE:
+    case K_RAW:
+    case K_REAL:
+    case K_ROWID:
+    case K_SIGNTYPE:
+    case K_SIMPLE_DOUBLE:
+    case K_SIMPLE_FLOAT:
+    case K_SIMPLE_INTEGER:
+    case K_SMALLINT:
+    case K_SYS_REFCURSOR:
+    case K_TIME:
+    case K_TIMESTAMP:
+    case K_UROWID:
+    case K_VARCHAR2:
+    case K_VARCHAR:
+      dataType = datatype();
+      break;
+    case S_IDENTIFIER:
+    case S_QUOTED_IDENTIFIER:
+      spec = columnSpec();
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_OPENPAREN:
+      case R_ANCHORED_ROWTYPE:
+      case R_ANCHORED_TYPE:
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case O_OPENPAREN:
+          jj_consume_token(O_OPENPAREN);
+          jj_consume_token(S_NUMBER);
+          jj_consume_token(O_CLOSEPAREN);
+          break;
+        case R_ANCHORED_TYPE:
+          jj_consume_token(R_ANCHORED_TYPE);
+             isTYPEType=true;
+             s = spec + removeQuotes(tokenImage[R_ANCHORED_TYPE]);
+          break;
+        case R_ANCHORED_ROWTYPE:
+          jj_consume_token(R_ANCHORED_ROWTYPE);
+             isROWTYPEType =true;
+             s = spec + removeQuotes(tokenImage[R_ANCHORED_ROWTYPE]);
+          break;
+        default:
+          jj_consume_token(-1);
+          throw new ParseException();
+        }
+        break;
+      default:
+        ;
+      }
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+      if (dataType == null && localTypes != null) {
+          for (String typeName : localTypes.keySet()) {
+              if (typeName.equals(spec)) {
+                  dataType = localTypes.get(spec);
+                  break;
+              }
+          }
+      }
+      if (dataType == null) {
+          UnresolvedType uType = new UnresolvedType(spec);
+          if (isTYPEType) {
+              TYPEType tType = new TYPEType(s);
+              tType.setEnclosedType(uType);
+              uType.setOwningType(tType);
+              dataType = tType;
+              localTypes.put(spec, dataType);
+          }
+          else if (isROWTYPEType) {
+              ROWTYPEType rType = new ROWTYPEType(s);
+              rType.setEnclosedType(uType);
+              uType.setOwningType(rType);
+              dataType = rType;
+              localTypes.put(spec, dataType);
+          }
+          else {
+              dataType = uType;
+          }
+      }
+      {if (true) return dataType;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String columnSpec() throws ParseException {
+ String s1 = null;
+ String s2 = null;
+ String s3 = null;
+    s1 = OracleObjectName();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_DOT:
+      jj_consume_token(O_DOT);
+      s2 = OracleObjectName();
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_DOT:
+        jj_consume_token(O_DOT);
+        s3 = OracleObjectName();
+        break;
+      default:
+        ;
+      }
+      break;
+    default:
+      ;
+    }
+      StringBuilder sb = new StringBuilder(s1);
+      if (s2 != null) {
+          sb.append('.');
+          sb.append(s2);
+          if (s3 != null) {
+              sb.append('.');
+              sb.append(s3);
+          }
+      }
+      {if (true) return sb.toString();}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String tableSpec() throws ParseException {
+    OracleObjectName();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_DOT:
+      jj_consume_token(O_DOT);
+      OracleObjectName();
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_ATSIGN:
+        jj_consume_token(O_ATSIGN);
+        jj_consume_token(S_IDENTIFIER);
+        break;
+      default:
+        ;
+      }
+      break;
+    default:
+      ;
+    }
+     {if (true) return token.image;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String typeName() throws ParseException {
+    OracleObjectName();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_DOT:
+      jj_consume_token(O_DOT);
+      OracleObjectName();
+      break;
+    default:
+      ;
+    }
+     {if (true) return token.image;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public void typeOrSubTypeDeclaration(PLSQLPackageType packageType) throws ParseException {
+ String s = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_TYPE:
+      typeDeclaration(packageType);
+      break;
+    case R_SUBTYPE:
+      subtypeDeclaration(packageType);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+  }
+
+  final public void typeDeclaration(PLSQLPackageType packageType) throws ParseException {
+ String s = null;
+    jj_consume_token(R_TYPE);
+    s = typeName();
+    jj_consume_token(R_IS);
+    aTypeDeclaration(packageType, s);
+    jj_consume_token(O_SEMICOLON);
+  }
+
+  final public void aTypeDeclaration(PLSQLPackageType packageType, String typeName) throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_RECORD:
+      recordDeclaration(packageType, typeName);
+      break;
+    case R_TABLE:
+      plsqlTableDeclaration(packageType, typeName);
+      break;
+    case K_VARRAY:
+    case K_VARYING:
+      varrayDeclaration(packageType);
+      break;
+    case K_REF:
+      refCursorDeclaration(packageType, typeName);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+  }
+
+  final public void recordDeclaration(PLSQLPackageType packageType, String typeName) throws ParseException {
+  PLSQLRecordType plsqlRecordType = new PLSQLRecordType(typeName);
+  plsqlRecordType.setParentType(packageType);
+    jj_consume_token(K_RECORD);
+    jj_consume_token(O_OPENPAREN);
+    fieldDeclarations(plsqlRecordType);
+    jj_consume_token(O_CLOSEPAREN);
+      packageType.addType(plsqlRecordType);
+      localTypes.put(typeName, plsqlRecordType);
+  }
+
+  final public void fieldDeclarations(PLSQLRecordType plsqlRecordType) throws ParseException {
+    fieldDeclaration(plsqlRecordType);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_COMMA:
+      jj_consume_token(O_COMMA);
+      fieldDeclarations(plsqlRecordType);
+      break;
+    default:
+      ;
+    }
+  }
+
+  final public void fieldDeclaration(PLSQLRecordType plsqlRecordType) throws ParseException {
+  String s = null;
+  DatabaseType dataType = null;
+  FieldType fieldType = null;
+    s = typeName();
+    dataType = typeSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+      jj_consume_token(R_NOT);
+      jj_consume_token(R_NULL);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+    case R_DEFAULT:
+      fieldDefaultAssignment();
+      break;
+    default:
+      ;
+    }
+      fieldType = new FieldType(s);
+      fieldType.setEnclosedType(dataType);
+      plsqlRecordType.addField(fieldType);
+      if (dataType instanceof UnresolvedType) {
+          ((UnresolvedType)dataType).setOwningType(plsqlRecordType);
+      }
+  }
+
+  final public void fieldDefaultAssignment() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+      jj_consume_token(O_ASSIGN);
+      break;
+    case R_DEFAULT:
+      jj_consume_token(R_DEFAULT);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    skipToNextArg();
+  }
+
+  final public void subtypeDeclaration(PLSQLPackageType packageType) throws ParseException {
+ String subtypeName;
+DatabaseType subtype;
+Token notNull = null;
+Token rangeStart = null;
+Token rangeEnd = null;
+    jj_consume_token(R_SUBTYPE);
+    subtypeName = OracleObjectName();
+    jj_consume_token(R_IS);
+    subtype = typeSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_RANGE:
+      jj_consume_token(K_RANGE);
+      rangeStart = jj_consume_token(S_NUMBER);
+      jj_consume_token(O_DOUBLEDOT);
+      rangeEnd = jj_consume_token(S_NUMBER);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+      jj_consume_token(R_NOT);
+      notNull = jj_consume_token(R_NULL);
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+      PLSQLSubType newPLSQLSubType = new PLSQLSubType(subtypeName);
+      newPLSQLSubType.setEnclosedType(subtype);
+      if (subtype instanceof UnresolvedType) {
+          ((UnresolvedType)subtype).setOwningType(newPLSQLSubType);
+      }
+      packageType.addType(newPLSQLSubType);
+      if (notNull != null) {
+          newPLSQLSubType.setNotNull(true);
+      }
+      if (rangeStart != null) {
+          long rStart = Long.decode(rangeStart.image).longValue();
+          long rEnd = Long.decode(rangeEnd.image).longValue();
+          newPLSQLSubType.setHasRange(true);
+          newPLSQLSubType.setRangeStart(rStart);
+          newPLSQLSubType.setRangeEnd(rEnd);
+      }
+      localTypes.put(subtypeName, newPLSQLSubType);
+  }
+
+  final public void plsqlTableDeclaration(PLSQLPackageType packageType, String typeName) throws ParseException {
+  PLSQLCollectionType plsqlTable = new PLSQLCollectionType(typeName);
+  plsqlTable.setParentType(packageType);
+  DatabaseType nestedType;
+    jj_consume_token(R_TABLE);
+    jj_consume_token(R_OF);
+    nestedType = typeSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+      jj_consume_token(R_NOT);
+      jj_consume_token(R_NULL);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_INDEX:
+      jj_consume_token(R_INDEX);
+      jj_consume_token(R_BY);
+      plsqlTableIndexByDeclaration(plsqlTable);
+      break;
+    default:
+      ;
+    }
+      if (nestedType instanceof UnresolvedType) {
+        ((UnresolvedType)nestedType).setOwningType(plsqlTable);
+      }
+      plsqlTable.setEnclosedType(nestedType);
+      packageType.addType(plsqlTable);
+      localTypes.put(typeName, plsqlTable);
+  }
+
+  final public void plsqlTableIndexByDeclaration(PLSQLCollectionType plsqlTable) throws ParseException {
+  DatabaseType indexType = null;
+  Token precision = null;
+  Token otherIndexByType = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_PLS_INTEGER:
+      jj_consume_token(K_PLS_INTEGER);
+                       indexType = PLS_INTEGER_TYPE;
+      break;
+    case K_BINARY_INTEGER:
+      jj_consume_token(K_BINARY_INTEGER);
+                           indexType = BINARY_INTEGER_TYPE;
+      break;
+    case K_VARCHAR2:
+      jj_consume_token(K_VARCHAR2);
+      jj_consume_token(O_OPENPAREN);
+      precision = jj_consume_token(S_NUMBER);
+      jj_consume_token(O_CLOSEPAREN);
+        if (precision == null) {
+            indexType = new VarChar2Type();
+        }
+        else {
+            Long pl = Long.decode(precision.image);
+            indexType = new VarChar2Type(pl);
+        }
+      break;
+    case K_STRING:
+      otherIndexByType = jj_consume_token(K_STRING);
+      jj_consume_token(O_OPENPAREN);
+      jj_consume_token(S_NUMBER);
+      jj_consume_token(O_CLOSEPAREN);
+        String indexTypename = otherIndexByType.image;
+        for (String typeName : localTypes.keySet()) {
+            if (typeName.equals(indexTypename)) {
+                indexType = localTypes.get(indexTypename);
+                break;
+            }
+        }
+        //what else can INDEX BY be? Unresolved for now ...
+        if (indexType == null) {
+            indexType = new UnresolvedType(indexTypename);
+            ((UnresolvedType)indexType).setOwningType(plsqlTable);
+        }
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+      plsqlTable.setIndexed(true);
+      plsqlTable.setIndexType(indexType);
+  }
+
+  final public void varrayDeclaration(PLSQLPackageType packageType) throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_VARRAY:
+      jj_consume_token(K_VARRAY);
+      break;
+    case K_VARYING:
+      jj_consume_token(K_VARYING);
+      jj_consume_token(K_ARRAY);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    jj_consume_token(O_OPENPAREN);
+    jj_consume_token(S_NUMBER);
+    jj_consume_token(O_CLOSEPAREN);
+    jj_consume_token(R_OF);
+    datatype();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+      jj_consume_token(R_NOT);
+      jj_consume_token(R_NULL);
+      break;
+    default:
+      ;
+    }
+  }
+
+  final public void refCursorDeclaration(PLSQLPackageType packageType, String cursorTypeName) throws ParseException {
+ PLSQLCursorType cursorType = null;
+    jj_consume_token(K_REF);
+    jj_consume_token(R_CURSOR);
+        cursorType = new PLSQLCursorType(cursorTypeName);
+        packageType.addCursor(cursorType);
+        localTypes.put(cursorTypeName, cursorType);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_RETURN:
+      refCursorTypeSpec(cursorType, packageType);
+      break;
+    default:
+      ;
+    }
+  }
+
+  final public void refCursorTypeSpec(PLSQLCursorType cursorType, PLSQLPackageType packageType) throws ParseException {
+ String s = null;
+ Token spec = null;
+ boolean isTYPEType = false;
+ boolean isROWTYPEType = false;
+ DatabaseType localType = null;
+    jj_consume_token(K_RETURN);
+    spec = jj_consume_token(S_IDENTIFIER);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_ANCHORED_ROWTYPE:
+    case R_ANCHORED_TYPE:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_ANCHORED_TYPE:
+        jj_consume_token(R_ANCHORED_TYPE);
+                  isTYPEType = true;
+                  s = spec.image + removeQuotes(tokenImage[R_ANCHORED_TYPE]);
+        break;
+      case R_ANCHORED_ROWTYPE:
+        jj_consume_token(R_ANCHORED_ROWTYPE);
+              isROWTYPEType = true;
+              s = spec.image + removeQuotes(tokenImage[R_ANCHORED_ROWTYPE]);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      break;
+    default:
+      ;
+    }
+      //check local variables first
+          for (FieldType varField : packageType.getLocalVariables()) {
+              if (spec.image.equals(varField.getFieldName())) {
+              if (isTYPEType) {
+                  TYPEType tType = new TYPEType(s);
+                  UnresolvedType uType = new UnresolvedType(s);
+                  tType.setEnclosedType(uType);
+                  uType.setOwningType(tType);
+                  localType = tType;
+              }
+              else if (isROWTYPEType) {
+                  ROWTYPEType rType = new ROWTYPEType(s);
+                  UnresolvedType uType = new UnresolvedType(s);
+                  rType.setEnclosedType(uType);
+                  uType.setOwningType(rType);
+                  localType = rType;
+              }
+              else {
+                  localType = varField.getEnclosedType();
+              }
+              cursorType.setEnclosedType(localType);
+                  break;
+              }
+          }
+      if (localType == null) {
+          localType = localTypes.get(spec.image);
+          if (localType == null) {
+                  UnresolvedType uType = new UnresolvedType(spec.image);
+                  if (isTYPEType) {
+                      TYPEType tType = new TYPEType(s);
+                      tType.setEnclosedType(uType);
+                      uType.setOwningType(tType);
+                      cursorType.setEnclosedType(tType);
+                  }
+                  else if (isROWTYPEType) {
+                      ROWTYPEType rType = new ROWTYPEType(s);
+                      rType.setEnclosedType(uType);
+                      uType.setOwningType(rType);
+                      cursorType.setEnclosedType(rType);
+                  }
+                  else {
+                      uType.setOwningType(cursorType);
+                      cursorType.setEnclosedType(uType);
+                  }
+              }
+              else {
+                  cursorType.setEnclosedType(localType);
+              }
+          }
+  }
+
+  final public void cursorDeclaration(PLSQLPackageType packageType) throws ParseException {
+ Token t = null;
+    jj_consume_token(R_CURSOR);
+    t = jj_consume_token(S_IDENTIFIER);
+    jj_consume_token(O_SEMICOLON);
+  }
+
 // Procedure Specification

-  final public void procedureSpec(PLSQLPackageType packageType) throws ParseException {

- Token t = null;

- ProcedureType procedureType = null;

-    jj_consume_token(R_PROCEDURE);

-    t = jj_consume_token(S_IDENTIFIER);

-            procedureType = new ProcedureType(t.image);

-            procedureType.setCatalogName(packageType.getPackageName());

-            procedureType.setSchema(packageType.getSchema());

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

-    case O_OPENPAREN:

-      jj_consume_token(O_OPENPAREN);

-      argumentList(procedureType);

-      jj_consume_token(O_CLOSEPAREN);

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-      packageType.addProcedure(procedureType);

-  }

-

-  final public void argumentList(ProcedureType procedureType) throws ParseException {

-    argument(procedureType);

-    label_5:

-    while (true) {

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

-      case O_COMMA:

-        ;

-        break;

-      default:

-        break label_5;

-      }

-      jj_consume_token(O_COMMA);

-      argument(procedureType);

-    }

-  }

-

+  final public void procedureSpec(PLSQLPackageType packageType) throws ParseException {
+ Token t = null;
+ ProcedureType procedureType = null;
+    jj_consume_token(R_PROCEDURE);
+    t = jj_consume_token(S_IDENTIFIER);
+            procedureType = new ProcedureType(t.image);
+            procedureType.setCatalogName(packageType.getPackageName());
+            procedureType.setSchema(packageType.getSchema());
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_OPENPAREN:
+      jj_consume_token(O_OPENPAREN);
+      argumentList(procedureType);
+      jj_consume_token(O_CLOSEPAREN);
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+      packageType.addProcedure(procedureType);
+  }
+
+  final public void argumentList(ProcedureType procedureType) throws ParseException {
+    argument(procedureType);
+    label_5:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case O_COMMA:
+        ;
+        break;
+      default:
+        break label_5;
+      }
+      jj_consume_token(O_COMMA);
+      argument(procedureType);
+    }
+  }
+
 // Function Specification

-  final public void functionSpec(PLSQLPackageType packageType) throws ParseException {

- Token t = null;

- FunctionType functionType = null;

- ArgumentType returnDataType = null;

-    jj_consume_token(R_FUNCTION);

-    t = jj_consume_token(S_IDENTIFIER);

-            functionType = new FunctionType(t.image);

-            functionType.setCatalogName(packageType.getPackageName());

-            functionType.setSchema(packageType.getSchema());

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

-    case O_OPENPAREN:

-      jj_consume_token(O_OPENPAREN);

-      argumentList(functionType);

-      jj_consume_token(O_CLOSEPAREN);

-      break;

-    default:

-      ;

-    }

-    returnDataType = functionReturnSpec();

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

-    case K_DETERMINISTIC:

-    case K_PARALLEL_ENABLE:

-    case K_PIPELINED:

-    case K_RESULT_CACHE:

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

-      case K_DETERMINISTIC:

-        jj_consume_token(K_DETERMINISTIC);

-        break;

-      case K_PIPELINED:

-        jj_consume_token(K_PIPELINED);

-        break;

-      case K_PARALLEL_ENABLE:

-        jj_consume_token(K_PARALLEL_ENABLE);

-        break;

-      case K_RESULT_CACHE:

-        jj_consume_token(K_RESULT_CACHE);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-      functionType.setReturnArgument(returnDataType);

-      packageType.addProcedure(functionType);

-  }

-

-  final public ArgumentType functionReturnSpec() throws ParseException {

- DatabaseType dataType = null;

-    jj_consume_token(K_RETURN);

-    dataType = typeSpec();

-      ArgumentType returnType = new ArgumentType(null);

-      returnType.setDirection(ArgumentTypeDirection.RETURN);

-      returnType.setEnclosedType(dataType);

-      if (dataType instanceof UnresolvedType) {

-          ((UnresolvedType)dataType).setOwningType(returnType);

-      }

-      {if (true) return returnType;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public void argument(ProcedureType procedureType) throws ParseException {

- Token t = null;

- ArgumentType argumentType = null;

- DatabaseType argumentDataType = null;

+  final public void functionSpec(PLSQLPackageType packageType) throws ParseException {
+ Token t = null;
+ FunctionType functionType = null;
+ ArgumentType returnDataType = null;
+    jj_consume_token(R_FUNCTION);
+    t = jj_consume_token(S_IDENTIFIER);
+            functionType = new FunctionType(t.image);
+            functionType.setCatalogName(packageType.getPackageName());
+            functionType.setSchema(packageType.getSchema());
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_OPENPAREN:
+      jj_consume_token(O_OPENPAREN);
+      argumentList(functionType);
+      jj_consume_token(O_CLOSEPAREN);
+      break;
+    default:
+      ;
+    }
+    returnDataType = functionReturnSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_DETERMINISTIC:
+    case K_PARALLEL_ENABLE:
+    case K_PIPELINED:
+    case K_RESULT_CACHE:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_DETERMINISTIC:
+        jj_consume_token(K_DETERMINISTIC);
+        break;
+      case K_PIPELINED:
+        jj_consume_token(K_PIPELINED);
+        break;
+      case K_PARALLEL_ENABLE:
+        jj_consume_token(K_PARALLEL_ENABLE);
+        break;
+      case K_RESULT_CACHE:
+        jj_consume_token(K_RESULT_CACHE);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+      functionType.setReturnArgument(returnDataType);
+      packageType.addProcedure(functionType);
+  }
+
+  final public ArgumentType functionReturnSpec() throws ParseException {
+ DatabaseType dataType = null;
+    jj_consume_token(K_RETURN);
+    dataType = typeSpec();
+      ArgumentType returnType = new ArgumentType(null);
+      returnType.setDirection(ArgumentTypeDirection.RETURN);
+      returnType.setEnclosedType(dataType);
+      if (dataType instanceof UnresolvedType) {
+          ((UnresolvedType)dataType).setOwningType(returnType);
+      }
+      {if (true) return returnType;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public void argument(ProcedureType procedureType) throws ParseException {
+ Token t = null;
+ ArgumentType argumentType = null;
+ DatabaseType argumentDataType = null;
  ArgumentTypeDirection argDirection = ArgumentTypeDirection.IN; // by default, arguments are IN

- String direction = null;

- boolean defaultAssignment = false;

-    t = jj_consume_token(S_IDENTIFIER);

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

-    case R_IN:

-    case K_OUT:

-      direction = direction();

-      break;

-    default:

-      ;

-    }

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

-    case K_NOCOPY:

-      jj_consume_token(K_NOCOPY);

-      break;

-    default:

-      ;

-    }

-    argumentDataType = typeSpec();

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

-    case O_ASSIGN:

-    case R_DEFAULT:

-      defaultAssignment = argumentDefaultAssignment();

-      break;

-    default:

-      ;

-    }

-      argumentType = new ArgumentType(t.image);

-      argumentType.setEnclosedType(argumentDataType);

-      if (argumentDataType instanceof UnresolvedType) {

-          ((UnresolvedType)argumentDataType).setOwningType(argumentType);

-      }

-      if (direction != null) {

-          if ("OUT".equals(direction)) {

-              argDirection = ArgumentTypeDirection.OUT;

-          }

-          else if ("IN OUT".equals(direction)) {

-              argDirection = ArgumentTypeDirection.INOUT;

-          }

-          argumentType.setDirection(argDirection);

-      }

-      if (defaultAssignment) {

-          argumentType.setOptional();

-      }

-      procedureType.addArgument(argumentType);

-  }

-

-  final public boolean argumentDefaultAssignment() throws ParseException {

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

-    case O_ASSIGN:

-      jj_consume_token(O_ASSIGN);

-      break;

-    case R_DEFAULT:

-      jj_consume_token(R_DEFAULT);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    skipToNextArg();

-      {if (true) return true;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public void exceptionDeclaration(PLSQLPackageType packageType) throws ParseException {

-    jj_consume_token(S_IDENTIFIER);

-    jj_consume_token(R_EXCEPTION);

-    jj_consume_token(O_SEMICOLON);

-  }

-

-  final public void pragmaDeclaration(PLSQLPackageType packageType) throws ParseException {

-    jj_consume_token(K_PRAGMA);

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

-    case K_AUTONOMOUS_TRANSACTION:

-    case K_EXCEPTION_INIT:

-    case K_INLINE:

-    case K_RESTRICT_REFERENCES:

-    case K_SERIALLY_REUSABLE:

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

-      case K_AUTONOMOUS_TRANSACTION:

-        jj_consume_token(K_AUTONOMOUS_TRANSACTION);

-        break;

-      case K_EXCEPTION_INIT:

-        jj_consume_token(K_EXCEPTION_INIT);

-        jj_consume_token(O_OPENPAREN);

-        jj_consume_token(S_IDENTIFIER);

-        jj_consume_token(O_COMMA);

-        jj_consume_token(S_NUMBER);

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      case K_SERIALLY_REUSABLE:

-        jj_consume_token(K_SERIALLY_REUSABLE);

-        break;

-      case K_INLINE:

-        jj_consume_token(K_INLINE);

-        jj_consume_token(O_OPENPAREN);

-        jj_consume_token(S_IDENTIFIER);

-        jj_consume_token(O_COMMA);

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

-        case R_NO:

-        case R_YES:

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

-          case R_YES:

-            jj_consume_token(R_YES);

-            break;

-          case R_NO:

-            jj_consume_token(R_NO);

-            break;

-          default:

-            jj_consume_token(-1);

-            throw new ParseException();

-          }

-          break;

-        default:

-          ;

-        }

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      case K_RESTRICT_REFERENCES:

-        jj_consume_token(K_RESTRICT_REFERENCES);

-        jj_consume_token(O_OPENPAREN);

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

-        case R_DEFAULT:

-        case S_IDENTIFIER:

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

-          case S_IDENTIFIER:

-            jj_consume_token(S_IDENTIFIER);

-            break;

-          case R_DEFAULT:

-            jj_consume_token(R_DEFAULT);

-            break;

-          default:

-            jj_consume_token(-1);

-            throw new ParseException();

-          }

-          break;

-        default:

-          ;

-        }

-        label_6:

-        while (true) {

-          jj_consume_token(O_COMMA);

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

-          case K_RNDS:

-          case K_RNPS:

-          case K_TRUST:

-          case K_WNDS:

-          case K_WNPS:

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

-            case K_RNDS:

-              jj_consume_token(K_RNDS);

-              break;

-            case K_WNDS:

-              jj_consume_token(K_WNDS);

-              break;

-            case K_RNPS:

-              jj_consume_token(K_RNPS);

-              break;

-            case K_WNPS:

-              jj_consume_token(K_WNPS);

-              break;

-            case K_TRUST:

-              jj_consume_token(K_TRUST);

-              break;

-            default:

-              jj_consume_token(-1);

-              throw new ParseException();

-            }

-            break;

-          default:

-            ;

-          }

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

-          case O_COMMA:

-            ;

-            break;

-          default:

-            break label_6;

-          }

-        }

-        jj_consume_token(O_CLOSEPAREN);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-      break;

-    default:

-      ;

-    }

-    jj_consume_token(O_SEMICOLON);

-  }

-

-  final public void orReplace() throws ParseException {

-    jj_consume_token(R_OR);

-    jj_consume_token(K_REPLACE);

-  }

-

-  final public void invokerRights() throws ParseException {

-    jj_consume_token(K_AUTHID);

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

-    case K_CURRENT_USER:

-      jj_consume_token(K_CURRENT_USER);

-      break;

-    case K_DEFINER:

-      jj_consume_token(K_DEFINER);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-  }

-

-  final public void as() throws ParseException {

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

-    case R_AS:

-      jj_consume_token(R_AS);

-      break;

-    case R_IS:

-      jj_consume_token(R_IS);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-  }

-

-  final public String direction() throws ParseException {

- String dir = "";

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

-    case R_IN:

-      jj_consume_token(R_IN);

-                dir = "IN";

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

-      case K_OUT:

-        jj_consume_token(K_OUT);

-                                        dir += " OUT";

-        break;

-      default:

-        ;

-      }

-      break;

-    case K_OUT:

-      jj_consume_token(K_OUT);

-                 dir = "OUT";

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-      {if (true) return dir;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public String OracleObjectName() throws ParseException {

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

-    case S_IDENTIFIER:

-      jj_consume_token(S_IDENTIFIER);

-                      {if (true) return token.image;}

-      break;

-    case S_QUOTED_IDENTIFIER:

-      jj_consume_token(S_QUOTED_IDENTIFIER);

-                              {if (true) return removeQuotes(token.image);}

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    throw new Error("Missing return statement in function");

-  }

-

-  final public void skipToSemiColon() throws ParseException {

-        Token t = getNextToken();

-        while (t.kind != O_SEMICOLON) {

-                t = getNextToken();

-        }

-        token_source.input_stream.backup(1);

-  }

-

-  final public void skipToClosingParen() throws ParseException {

-        Token t = getNextToken();

-        while (t.kind != O_CLOSEPAREN) {

-            t = getNextToken();

-        }

-        token_source.input_stream.backup(1);

-  }

-

-  final public void skipToNextArg() throws ParseException {

-        Token t = getNextToken();

-        while (t.kind != O_COMMA && t.kind != O_CLOSEPAREN) {

-            t = getNextToken();

-        }

-        token_source.input_stream.backup(1);

-  }

-

-  final public void skipToEnd() throws ParseException {

-      /** skip through all the tokens. */

-      Token t = getNextToken();

-      while (t.kind != EOF) {

-          t = getNextToken();

-      }

-  }

-

-  private boolean jj_2_1(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_1(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_2(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_2(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_3(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_3(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_4(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_4(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_5(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_5(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_6(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_6(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_7(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_7(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_8(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_8(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_9(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_9(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_10(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_10(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_11(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_11(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_12(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_12(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_13(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_13(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_14(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_14(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_15(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_15(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_16(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_16(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_17(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_17(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_18(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_18(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_2_19(int xla) {

-    jj_la = xla; jj_lastpos = jj_scanpos = token;

-    try { return !jj_3_19(); }

-    catch(LookaheadSuccess ls) { return true; }

-  }

-

-  private boolean jj_3R_62() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_24() {

-    if (jj_scan_token(O_DOT)) return true;

-    if (jj_3R_7()) return true;

-    return false;

-  }

-

-  private boolean jj_3_9() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_18() {

-    if (jj_3R_14()) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_15()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3_14() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3_19() {

-    if (jj_3R_16()) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_17()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_61() {

-    if (jj_scan_token(K_VARCHAR2)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_23() {

-    if (jj_scan_token(O_DOT)) return true;

-    if (jj_3R_7()) return true;

-    return false;

-  }

-

-  private boolean jj_3_12() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_16() {

-    if (jj_3R_7()) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_24()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_60() {

-    if (jj_scan_token(K_VARCHAR)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_34() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_scan_token(174)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(175)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(148)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(147)) return true;

-    }

-    }

-    }

-    return false;

-  }

-

-  private boolean jj_3R_33() {

-    if (jj_scan_token(K_SIGNTYPE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_32() {

-    if (jj_scan_token(K_POSITIVE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_31() {

-    if (jj_scan_token(K_NATURAL)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_30() {

-    if (jj_scan_token(K_BINARY_DOUBLE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_29() {

-    if (jj_scan_token(K_BINARY_FLOAT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_25() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_28()) {

-    jj_scanpos = xsp;

-    if (jj_3R_29()) {

-    jj_scanpos = xsp;

-    if (jj_3R_30()) {

-    jj_scanpos = xsp;

-    if (jj_3R_31()) {

-    jj_scanpos = xsp;

-    if (jj_3R_32()) {

-    jj_scanpos = xsp;

-    if (jj_3R_33()) {

-    jj_scanpos = xsp;

-    if (jj_3R_34()) {

-    jj_scanpos = xsp;

-    if (jj_3R_35()) {

-    jj_scanpos = xsp;

-    if (jj_3R_36()) {

-    jj_scanpos = xsp;

-    if (jj_3R_37()) {

-    jj_scanpos = xsp;

-    if (jj_3R_38()) {

-    jj_scanpos = xsp;

-    if (jj_3_17()) {

-    jj_scanpos = xsp;

-    if (jj_3R_39()) {

-    jj_scanpos = xsp;

-    if (jj_3R_40()) {

-    jj_scanpos = xsp;

-    if (jj_3R_41()) {

-    jj_scanpos = xsp;

-    if (jj_3R_42()) {

-    jj_scanpos = xsp;

-    if (jj_3R_43()) {

-    jj_scanpos = xsp;

-    if (jj_3R_44()) {

-    jj_scanpos = xsp;

-    if (jj_3R_45()) {

-    jj_scanpos = xsp;

-    if (jj_3R_46()) {

-    jj_scanpos = xsp;

-    if (jj_3R_47()) {

-    jj_scanpos = xsp;

-    if (jj_3R_48()) {

-    jj_scanpos = xsp;

-    if (jj_3R_49()) {

-    jj_scanpos = xsp;

-    if (jj_3R_50()) {

-    jj_scanpos = xsp;

-    if (jj_3R_51()) {

-    jj_scanpos = xsp;

-    if (jj_3R_52()) {

-    jj_scanpos = xsp;

-    if (jj_3R_53()) {

-    jj_scanpos = xsp;

-    if (jj_3R_54()) {

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

-    jj_scanpos = xsp;

-    if (jj_3R_59()) {

-    jj_scanpos = xsp;

-    if (jj_3R_60()) {

-    jj_scanpos = xsp;

-    if (jj_3R_61()) {

-    jj_scanpos = xsp;

-    if (jj_3R_62()) {

-    jj_scanpos = xsp;

-    if (jj_3R_63()) {

-    jj_scanpos = xsp;

-    if (jj_3R_64()) {

-    jj_scanpos = xsp;

-    if (jj_3R_65()) {

-    jj_scanpos = xsp;

-    if (jj_3R_66()) {

-    jj_scanpos = xsp;

-    if (jj_3R_67()) return true;

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    return false;

-  }

-

-  private boolean jj_3R_28() {

-    if (jj_scan_token(K_BINARY_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_5() {

-    if (jj_3R_7()) return true;

-    if (jj_scan_token(O_DOT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_14() {

-    if (jj_3R_7()) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_23()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3_10() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_59() {

-    if (jj_scan_token(K_CHAR)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_58() {

-    if (jj_scan_token(K_DOUBLE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_57() {

-    if (jj_scan_token(K_UROWID)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_56() {

-    if (jj_scan_token(K_ROWID)) return true;

-    return false;

-  }

-

-  private boolean jj_3_15() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_55() {

-    if (jj_scan_token(K_BFILE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_54() {

-    if (jj_scan_token(K_NCLOB)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_13() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    if (jj_3R_22()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_53() {

-    if (jj_scan_token(K_BLOB)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_52() {

-    if (jj_scan_token(K_SYS_REFCURSOR)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_51() {

-    if (jj_scan_token(K_SIMPLE_DOUBLE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_50() {

-    if (jj_scan_token(K_SIMPLE_FLOAT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_49() {

-    if (jj_scan_token(K_SIMPLE_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_48() {

-    if (jj_scan_token(K_PLS_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_47() {

-    if (jj_scan_token(K_MLSLABEL)) return true;

-    return false;

-  }

-

-  private boolean jj_3_4() {

-    if (jj_3R_7()) return true;

-    if (jj_scan_token(O_DOT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_46() {

-    if (jj_scan_token(K_REAL)) return true;

-    return false;

-  }

-

-  private boolean jj_3_8() {

-    if (jj_3R_13()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_45() {

-    if (jj_scan_token(K_FLOAT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_44() {

-    if (jj_scan_token(K_SMALLINT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_43() {

-    if (jj_scan_token(K_INT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_42() {

-    if (jj_scan_token(K_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_3() {

-    if (jj_3R_7()) return true;

-    if (jj_scan_token(O_DOT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_27() {

-    if (jj_3R_14()) return true;

-    return false;

-  }

-

-  private boolean jj_3_16() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_26() {

-    if (jj_3R_25()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_22() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_26()) {

-    jj_scanpos = xsp;

-    if (jj_3R_27()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_41() {

-    if (jj_scan_token(K_TIMESTAMP)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_40() {

-    if (jj_scan_token(K_TIME)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_67() {

-    if (jj_scan_token(K_CLOB)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_39() {

-    if (jj_scan_token(K_INTERVAL)) return true;

-    return false;

-  }

-

-  private boolean jj_3_2() {

-    if (jj_3R_7()) return true;

-    if (jj_scan_token(O_DOT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_66() {

-    if (jj_scan_token(K_NATIONAL)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_21() {

-    if (jj_3R_14()) return true;

-    return false;

-  }

-

-  private boolean jj_3_17() {

-    if (jj_scan_token(K_INTERVAL)) return true;

-    if (jj_scan_token(K_DAY)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_20() {

-    if (jj_3R_25()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_38() {

-    if (jj_scan_token(K_DATE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_37() {

-    if (jj_scan_token(K_BOOLEAN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_9() {

-    if (jj_3R_7()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_8() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_20()) {

-    jj_scanpos = xsp;

-    if (jj_3R_21()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_65() {

-    if (jj_scan_token(K_NVARCHAR2)) return true;

-    return false;

-  }

-

-  private boolean jj_3_1() {

-    if (jj_3R_7()) return true;

-    if (jj_scan_token(O_DOT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_36() {

-    if (jj_scan_token(K_RAW)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_12() {

-    if (jj_scan_token(R_UNIQUE)) return true;

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_11() {

-    if (jj_scan_token(R_CHECK)) return true;

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_10() {

-    if (jj_scan_token(K_PRIMARY)) return true;

-    if (jj_scan_token(K_KEY)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_64() {

-    if (jj_scan_token(K_NVARCHAR)) return true;

-    return false;

-  }

-

-  private boolean jj_3_7() {

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_9()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_10()) {

-    jj_scanpos = xsp;

-    if (jj_3R_11()) {

-    jj_scanpos = xsp;

-    if (jj_3R_12()) return true;

-    }

-    }

-    return false;

-  }

-

-  private boolean jj_3_13() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_19() {

-    if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_15() {

-    if (jj_scan_token(R_ANCHORED_TYPE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_18() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_7() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_18()) {

-    jj_scanpos = xsp;

-    if (jj_3R_19()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_35() {

-    if (jj_scan_token(K_LONG)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_17() {

-    if (jj_scan_token(R_ANCHORED_ROWTYPE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_63() {

-    if (jj_scan_token(K_NCHAR)) return true;

-    return false;

-  }

-

-  private boolean jj_3_11() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_6() {

-    if (jj_3R_7()) return true;

-    if (jj_3R_8()) return true;

-    return false;

-  }

-

-  /** Generated Token Manager. */

-  public DDLParserTokenManager token_source;

-  JavaCharStream jj_input_stream;

-  /** Current token. */

-  public Token token;

-  /** Next token. */

-  public Token jj_nt;

-  private int jj_ntk;

-  private Token jj_scanpos, jj_lastpos;

-  private int jj_la;

-

-  /** Constructor with InputStream. */

-  public DDLParser(java.io.InputStream stream) {

-     this(stream, null);

-  }

-  /** Constructor with InputStream and supplied encoding */

-  public DDLParser(java.io.InputStream stream, String encoding) {

-    try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }

-    token_source = new DDLParserTokenManager(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-  }

-

-  /** Reinitialise. */

-  public void ReInit(java.io.InputStream stream) {

-     ReInit(stream, null);

-  }

-  /** Reinitialise. */

-  public void ReInit(java.io.InputStream stream, String encoding) {

-    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }

-    token_source.ReInit(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-    jjtree.reset();

-  }

-

-  /** Constructor. */

-  public DDLParser(java.io.Reader stream) {

-    jj_input_stream = new JavaCharStream(stream, 1, 1);

-    token_source = new DDLParserTokenManager(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-  }

-

-  /** Reinitialise. */

-  public void ReInit(java.io.Reader stream) {

-    jj_input_stream.ReInit(stream, 1, 1);

-    token_source.ReInit(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-    jjtree.reset();

-  }

-

-  /** Constructor with generated Token Manager. */

-  public DDLParser(DDLParserTokenManager tm) {

-    token_source = tm;

-    token = new Token();

-    jj_ntk = -1;

-  }

-

-  /** Reinitialise. */

-  public void ReInit(DDLParserTokenManager tm) {

-    token_source = tm;

-    token = new Token();

-    jj_ntk = -1;

-    jjtree.reset();

-  }

-

-  private Token jj_consume_token(int kind) throws ParseException {

-    Token oldToken;

-    if ((oldToken = token).next != null) token = token.next;

-    else token = token.next = token_source.getNextToken();

-    jj_ntk = -1;

-    if (token.kind == kind) {

-      return token;

-    }

-    token = oldToken;

-    throw generateParseException();

-  }

-

-  static private final class LookaheadSuccess extends java.lang.Error { }

-  final private LookaheadSuccess jj_ls = new LookaheadSuccess();

-  private boolean jj_scan_token(int kind) {

-    if (jj_scanpos == jj_lastpos) {

-      jj_la--;

-      if (jj_scanpos.next == null) {

-        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();

-      } else {

-        jj_lastpos = jj_scanpos = jj_scanpos.next;

-      }

-    } else {

-      jj_scanpos = jj_scanpos.next;

-    }

-    if (jj_scanpos.kind != kind) return true;

-    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;

-    return false;

-  }

-

-

-/** Get the next Token. */

-  final public Token getNextToken() {

-    if (token.next != null) token = token.next;

-    else token = token.next = token_source.getNextToken();

-    jj_ntk = -1;

-    return token;

-  }

-

-/** Get the specific Token. */

-  final public Token getToken(int index) {

-    Token t = token;

-    for (int i = 0; i < index; i++) {

-      if (t.next != null) t = t.next;

-      else t = t.next = token_source.getNextToken();

-    }

-    return t;

-  }

-

-  private int jj_ntk() {

-    if ((jj_nt=token.next) == null)

-      return (jj_ntk = (token.next=token_source.getNextToken()).kind);

-    else

-      return (jj_ntk = jj_nt.kind);

-  }

-

-  /** Generate ParseException. */

-  public ParseException generateParseException() {

-    Token errortok = token.next;

-    int line = errortok.beginLine, column = errortok.beginColumn;

-    String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;

-    return new ParseException("Parse error at line " + line + ", column " + column + ".  Encountered: " + mess);

-  }

-

-  /** Enable tracing. */

-  final public void enable_tracing() {

-  }

-

-  /** Disable tracing. */

-  final public void disable_tracing() {

-  }

-

-}

+ String direction = null;
+ boolean defaultAssignment = false;
+    t = jj_consume_token(S_IDENTIFIER);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_IN:
+    case K_OUT:
+      direction = direction();
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_NOCOPY:
+      jj_consume_token(K_NOCOPY);
+      break;
+    default:
+      ;
+    }
+    argumentDataType = typeSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+    case R_DEFAULT:
+      defaultAssignment = argumentDefaultAssignment();
+      break;
+    default:
+      ;
+    }
+      argumentType = new ArgumentType(t.image);
+      argumentType.setEnclosedType(argumentDataType);
+      if (argumentDataType instanceof UnresolvedType) {
+          ((UnresolvedType)argumentDataType).setOwningType(argumentType);
+      }
+      if (direction != null) {
+          if ("OUT".equals(direction)) {
+              argDirection = ArgumentTypeDirection.OUT;
+          }
+          else if ("IN OUT".equals(direction)) {
+              argDirection = ArgumentTypeDirection.INOUT;
+          }
+          argumentType.setDirection(argDirection);
+      }
+      if (defaultAssignment) {
+          argumentType.setOptional();
+      }
+      procedureType.addArgument(argumentType);
+  }
+
+  final public boolean argumentDefaultAssignment() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+      jj_consume_token(O_ASSIGN);
+      break;
+    case R_DEFAULT:
+      jj_consume_token(R_DEFAULT);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    skipToNextArg();
+      {if (true) return true;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public void exceptionDeclaration() throws ParseException {
+    jj_consume_token(S_IDENTIFIER);
+    jj_consume_token(R_EXCEPTION);
+    jj_consume_token(O_SEMICOLON);
+  }
+
+  final public void pragmaDeclaration() throws ParseException {
+    jj_consume_token(K_PRAGMA);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_AUTONOMOUS_TRANSACTION:
+    case K_EXCEPTION_INIT:
+    case K_INLINE:
+    case K_RESTRICT_REFERENCES:
+    case K_SERIALLY_REUSABLE:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_AUTONOMOUS_TRANSACTION:
+        jj_consume_token(K_AUTONOMOUS_TRANSACTION);
+        break;
+      case K_EXCEPTION_INIT:
+        jj_consume_token(K_EXCEPTION_INIT);
+        jj_consume_token(O_OPENPAREN);
+        jj_consume_token(S_IDENTIFIER);
+        jj_consume_token(O_COMMA);
+        jj_consume_token(S_NUMBER);
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      case K_SERIALLY_REUSABLE:
+        jj_consume_token(K_SERIALLY_REUSABLE);
+        break;
+      case K_INLINE:
+        jj_consume_token(K_INLINE);
+        jj_consume_token(O_OPENPAREN);
+        jj_consume_token(S_IDENTIFIER);
+        jj_consume_token(O_COMMA);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case R_NO:
+        case R_YES:
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case R_YES:
+            jj_consume_token(R_YES);
+            break;
+          case R_NO:
+            jj_consume_token(R_NO);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+          break;
+        default:
+          ;
+        }
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      case K_RESTRICT_REFERENCES:
+        jj_consume_token(K_RESTRICT_REFERENCES);
+        jj_consume_token(O_OPENPAREN);
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case R_DEFAULT:
+        case S_IDENTIFIER:
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case S_IDENTIFIER:
+            jj_consume_token(S_IDENTIFIER);
+            break;
+          case R_DEFAULT:
+            jj_consume_token(R_DEFAULT);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+          break;
+        default:
+          ;
+        }
+        label_6:
+        while (true) {
+          jj_consume_token(O_COMMA);
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case K_RNDS:
+          case K_RNPS:
+          case K_TRUST:
+          case K_WNDS:
+          case K_WNPS:
+            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+            case K_RNDS:
+              jj_consume_token(K_RNDS);
+              break;
+            case K_WNDS:
+              jj_consume_token(K_WNDS);
+              break;
+            case K_RNPS:
+              jj_consume_token(K_RNPS);
+              break;
+            case K_WNPS:
+              jj_consume_token(K_WNPS);
+              break;
+            case K_TRUST:
+              jj_consume_token(K_TRUST);
+              break;
+            default:
+              jj_consume_token(-1);
+              throw new ParseException();
+            }
+            break;
+          default:
+            ;
+          }
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case O_COMMA:
+            ;
+            break;
+          default:
+            break label_6;
+          }
+        }
+        jj_consume_token(O_CLOSEPAREN);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      break;
+    default:
+      ;
+    }
+    jj_consume_token(O_SEMICOLON);
+  }
+
+  final public void orReplace() throws ParseException {
+    jj_consume_token(R_OR);
+    jj_consume_token(K_REPLACE);
+  }
+
+  final public void invokerRights() throws ParseException {
+    jj_consume_token(K_AUTHID);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_CURRENT_USER:
+      jj_consume_token(K_CURRENT_USER);
+      break;
+    case K_DEFINER:
+      jj_consume_token(K_DEFINER);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+  }
+
+  final public void as() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_AS:
+      jj_consume_token(R_AS);
+      break;
+    case R_IS:
+      jj_consume_token(R_IS);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+  }
+
+  final public void onCommit() throws ParseException {
+    jj_consume_token(R_ON);
+    jj_consume_token(K_COMMIT);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_DELETE:
+      jj_consume_token(K_DELETE);
+      break;
+    case K_PRESERVE:
+      jj_consume_token(K_PRESERVE);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    jj_consume_token(K_ROWS);
+  }
+
+  final public String direction() throws ParseException {
+ String dir = "";
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_IN:
+      jj_consume_token(R_IN);
+                dir = "IN";
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_OUT:
+        jj_consume_token(K_OUT);
+                                        dir += " OUT";
+        break;
+      default:
+        ;
+      }
+      break;
+    case K_OUT:
+      jj_consume_token(K_OUT);
+                 dir = "OUT";
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+      {if (true) return dir;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String OracleObjectName() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case S_IDENTIFIER:
+      jj_consume_token(S_IDENTIFIER);
+                      {if (true) return token.image;}
+      break;
+    case S_QUOTED_IDENTIFIER:
+      jj_consume_token(S_QUOTED_IDENTIFIER);
+                              {if (true) return removeQuotes(token.image);}
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String OracleObjectNamePossiblyDotted() throws ParseException {
+ String possiblyDottedName = "";
+ String afterDot = null;
+    possiblyDottedName = OracleObjectName();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_DOT:
+      jj_consume_token(O_DOT);
+      afterDot = OracleObjectName();
+      break;
+    default:
+      ;
+    }
+      if (afterDot != null) {
+          possiblyDottedName += "." + afterDot;
+      }
+      {if (true) return possiblyDottedName;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public void skipToSemiColon() throws ParseException {
+        Token t = getNextToken();
+        while (t.kind != O_SEMICOLON) {
+                t = getNextToken();
+        }
+        token_source.input_stream.backup(1);
+  }
+
+  final public void skipToClosingParen() throws ParseException {
+        Token t = getNextToken();
+        while (t.kind != O_CLOSEPAREN) {
+            t = getNextToken();
+        }
+        token_source.input_stream.backup(1);
+  }
+
+  final public void skipToNextArg() throws ParseException {
+        Token t = getNextToken();
+        while (t.kind != O_COMMA && t.kind != O_CLOSEPAREN) {
+            t = getNextToken();
+        }
+        token_source.input_stream.backup(1);
+  }
+
+  final public void skipToEnd() throws ParseException {
+      /** skip through all the tokens. */
+      Token t = getNextToken();
+      while (t.kind != EOF) {
+          t = getNextToken();
+      }
+  }
+
+  private boolean jj_2_1(int xla) {
+    jj_la = xla; jj_lastpos = jj_scanpos = token;
+    try { return !jj_3_1(); }
+    catch(LookaheadSuccess ls) { return true; }
+  }
+
+  private boolean jj_3R_16() {
+    if (jj_scan_token(K_NATURAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_15() {
+    if (jj_scan_token(K_BINARY_DOUBLE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_14() {
+    if (jj_scan_token(K_BINARY_FLOAT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_24() {
+    if (jj_scan_token(K_INTERVAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_11() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_13()) {
+    jj_scanpos = xsp;
+    if (jj_3R_14()) {
+    jj_scanpos = xsp;
+    if (jj_3R_15()) {
+    jj_scanpos = xsp;
+    if (jj_3R_16()) {
+    jj_scanpos = xsp;
+    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()) {
+    jj_scanpos = xsp;
+    if (jj_3R_21()) {
+    jj_scanpos = xsp;
+    if (jj_3R_22()) {
+    jj_scanpos = xsp;
+    if (jj_3R_23()) {
+    jj_scanpos = xsp;
+    if (jj_3R_24()) {
+    jj_scanpos = xsp;
+    if (jj_3R_25()) {
+    jj_scanpos = xsp;
+    if (jj_3R_26()) {
+    jj_scanpos = xsp;
+    if (jj_3R_27()) {
+    jj_scanpos = xsp;
+    if (jj_3R_28()) {
+    jj_scanpos = xsp;
+    if (jj_3R_29()) {
+    jj_scanpos = xsp;
+    if (jj_3R_30()) {
+    jj_scanpos = xsp;
+    if (jj_3R_31()) {
+    jj_scanpos = xsp;
+    if (jj_3R_32()) {
+    jj_scanpos = xsp;
+    if (jj_3R_33()) {
+    jj_scanpos = xsp;
+    if (jj_3R_34()) {
+    jj_scanpos = xsp;
+    if (jj_3R_35()) {
+    jj_scanpos = xsp;
+    if (jj_3R_36()) {
+    jj_scanpos = xsp;
+    if (jj_3R_37()) {
+    jj_scanpos = xsp;
+    if (jj_3R_38()) {
+    jj_scanpos = xsp;
+    if (jj_3R_39()) {
+    jj_scanpos = xsp;
+    if (jj_3R_40()) {
+    jj_scanpos = xsp;
+    if (jj_3R_41()) {
+    jj_scanpos = xsp;
+    if (jj_3R_42()) {
+    jj_scanpos = xsp;
+    if (jj_3R_43()) {
+    jj_scanpos = xsp;
+    if (jj_3R_44()) {
+    jj_scanpos = xsp;
+    if (jj_3R_45()) {
+    jj_scanpos = xsp;
+    if (jj_3R_46()) {
+    jj_scanpos = xsp;
+    if (jj_3R_47()) {
+    jj_scanpos = xsp;
+    if (jj_3R_48()) {
+    jj_scanpos = xsp;
+    if (jj_3R_49()) {
+    jj_scanpos = xsp;
+    if (jj_3R_50()) {
+    jj_scanpos = xsp;
+    if (jj_3R_51()) {
+    jj_scanpos = xsp;
+    if (jj_3R_52()) return true;
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    return false;
+  }
+
+  private boolean jj_3R_13() {
+    if (jj_scan_token(K_BINARY_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_23() {
+    if (jj_scan_token(K_DATE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_22() {
+    if (jj_scan_token(K_BOOLEAN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_12() {
+    if (jj_3R_53()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_50() {
+    if (jj_scan_token(K_NVARCHAR2)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_44() {
+    if (jj_scan_token(K_CHAR)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_43() {
+    if (jj_scan_token(K_DOUBLE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_21() {
+    if (jj_scan_token(K_RAW)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_49() {
+    if (jj_scan_token(K_NVARCHAR)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_55() {
+    if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_54() {
+    if (jj_scan_token(S_IDENTIFIER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_53() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_54()) {
+    jj_scanpos = xsp;
+    if (jj_3R_55()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_42() {
+    if (jj_scan_token(K_UROWID)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_41() {
+    if (jj_scan_token(K_ROWID)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_40() {
+    if (jj_scan_token(K_BFILE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_39() {
+    if (jj_scan_token(K_NCLOB)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_38() {
+    if (jj_scan_token(K_BLOB)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_37() {
+    if (jj_scan_token(K_SYS_REFCURSOR)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_36() {
+    if (jj_scan_token(K_SIMPLE_DOUBLE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_35() {
+    if (jj_scan_token(K_SIMPLE_FLOAT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_7() {
+    if (jj_scan_token(S_IDENTIFIER)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(142)) jj_scanpos = xsp;
+    if (jj_3R_8()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_34() {
+    if (jj_scan_token(K_SIMPLE_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_33() {
+    if (jj_scan_token(K_PLS_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_32() {
+    if (jj_scan_token(K_MLSLABEL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_31() {
+    if (jj_scan_token(K_REAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_20() {
+    if (jj_scan_token(K_LONG)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_48() {
+    if (jj_scan_token(K_NCHAR)) return true;
+    return false;
+  }
+
+  private boolean jj_3_1() {
+    if (jj_3R_7()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_30() {
+    if (jj_scan_token(K_FLOAT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_29() {
+    if (jj_scan_token(K_SMALLINT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_28() {
+    if (jj_scan_token(K_INT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_27() {
+    if (jj_scan_token(K_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_10() {
+    if (jj_3R_12()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_9() {
+    if (jj_3R_11()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_47() {
+    if (jj_scan_token(K_CHARACTER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_8() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_9()) {
+    jj_scanpos = xsp;
+    if (jj_3R_10()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_26() {
+    if (jj_scan_token(K_TIMESTAMP)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_25() {
+    if (jj_scan_token(K_TIME)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_52() {
+    if (jj_scan_token(K_CLOB)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_46() {
+    if (jj_scan_token(K_VARCHAR2)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_45() {
+    if (jj_scan_token(K_VARCHAR)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_19() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(174)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(175)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(148)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(147)) return true;
+    }
+    }
+    }
+    return false;
+  }
+
+  private boolean jj_3R_18() {
+    if (jj_scan_token(K_SIGNTYPE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_51() {
+    if (jj_scan_token(K_NATIONAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_17() {
+    if (jj_scan_token(K_POSITIVE)) return true;
+    return false;
+  }
+
+  /** Generated Token Manager. */
+  public DDLParserTokenManager token_source;
+  JavaCharStream jj_input_stream;
+  /** Current token. */
+  public Token token;
+  /** Next token. */
+  public Token jj_nt;
+  private int jj_ntk;
+  private Token jj_scanpos, jj_lastpos;
+  private int jj_la;
+
+  /** Constructor with InputStream. */
+  public DDLParser(java.io.InputStream stream) {
+     this(stream, null);
+  }
+  /** Constructor with InputStream and supplied encoding */
+  public DDLParser(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source = new DDLParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream) {
+     ReInit(stream, null);
+  }
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jjtree.reset();
+  }
+
+  /** Constructor. */
+  public DDLParser(java.io.Reader stream) {
+    jj_input_stream = new JavaCharStream(stream, 1, 1);
+    token_source = new DDLParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader stream) {
+    jj_input_stream.ReInit(stream, 1, 1);
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jjtree.reset();
+  }
+
+  /** Constructor with generated Token Manager. */
+  public DDLParser(DDLParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(DDLParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jjtree.reset();
+  }
+
+  private Token jj_consume_token(int kind) throws ParseException {
+    Token oldToken;
+    if ((oldToken = token).next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    if (token.kind == kind) {
+      return token;
+    }
+    token = oldToken;
+    throw generateParseException();
+  }
+
+  static private final class LookaheadSuccess extends java.lang.Error { }
+  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+  private boolean jj_scan_token(int kind) {
+    if (jj_scanpos == jj_lastpos) {
+      jj_la--;
+      if (jj_scanpos.next == null) {
+        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
+      } else {
+        jj_lastpos = jj_scanpos = jj_scanpos.next;
+      }
+    } else {
+      jj_scanpos = jj_scanpos.next;
+    }
+    if (jj_scanpos.kind != kind) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
+    return false;
+  }
+
+
+/** Get the next Token. */
+  final public Token getNextToken() {
+    if (token.next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    return token;
+  }
+
+/** Get the specific Token. */
+  final public Token getToken(int index) {
+    Token t = token;
+    for (int i = 0; i < index; i++) {
+      if (t.next != null) t = t.next;
+      else t = t.next = token_source.getNextToken();
+    }
+    return t;
+  }
+
+  private int jj_ntk() {
+    if ((jj_nt=token.next) == null)
+      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+    else
+      return (jj_ntk = jj_nt.kind);
+  }
+
+  /** Generate ParseException. */
+  public ParseException generateParseException() {
+    Token errortok = token.next;
+    int line = errortok.beginLine, column = errortok.beginColumn;
+    String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
+    return new ParseException("Parse error at line " + line + ", column " + column + ".  Encountered: " + mess);
+  }
+
+  /** Enable tracing. */
+  final public void enable_tracing() {
+  }
+
+  /** Disable tracing. */
+  final public void disable_tracing() {
+  }
+
+}
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 485f6f1..7c22814 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
Binary files differ
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 b9b60d1..04407b0 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
Binary files differ
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 47e7193..6fbbb9a 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
@@ -1,4 +1,4 @@
-/* Generated By:JJTree&JavaCC: Do not edit this line. DDLParserConstants.java */

+/* Generated By:JJTree&JavaCC: Do not edit this line. DDLParserConstants.java */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -10,715 +10,715 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

-

-

-/**

- * Token literal values and constants.

- * Generated by org.javacc.parser.OtherFilesGen#start()

- */

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
+
+
+/**
+ * Token literal values and constants.
+ * Generated by org.javacc.parser.OtherFilesGen#start()
+ */
 @SuppressWarnings("all")
-public interface DDLParserConstants {

-

-  /** End of File. */

-  int EOF = 0;

-  /** RegularExpression Id. */

-  int COMMENT_LINE = 6;

-  /** RegularExpression Id. */

-  int COMMENT_BLOCK = 7;

-  /** RegularExpression Id. */

-  int O_ASSIGN = 8;

-  /** RegularExpression Id. */

-  int O_ASTERISK = 9;

-  /** RegularExpression Id. */

-  int O_ATSIGN = 10;

-  /** RegularExpression Id. */

-  int O_CLOSEPAREN = 11;

-  /** RegularExpression Id. */

-  int O_CONCAT = 12;

-  /** RegularExpression Id. */

-  int O_COLON = 13;

-  /** RegularExpression Id. */

-  int O_COMMA = 14;

-  /** RegularExpression Id. */

-  int O_DOT = 15;

-  /** RegularExpression Id. */

-  int O_DOUBLEDOT = 16;

-  /** RegularExpression Id. */

-  int O_DOLLAR = 17;

-  /** RegularExpression Id. */

-  int O_PERCENT = 18;

-  /** RegularExpression Id. */

-  int O_EQUAL = 19;

-  /** RegularExpression Id. */

-  int O_GREATER = 20;

-  /** RegularExpression Id. */

-  int O_GREATEREQUAL = 21;

-  /** RegularExpression Id. */

-  int O_JOINPLUS = 22;

-  /** RegularExpression Id. */

-  int O_LESS = 23;

-  /** RegularExpression Id. */

-  int O_LESSEQUAL = 24;

-  /** RegularExpression Id. */

-  int O_MINUS = 25;

-  /** RegularExpression Id. */

-  int O_NOTEQUAL2 = 26;

-  /** RegularExpression Id. */

-  int O_NOTEQUAL = 27;

-  /** RegularExpression Id. */

-  int O_OPENPAREN = 28;

-  /** RegularExpression Id. */

-  int O_PLUS = 29;

-  /** RegularExpression Id. */

-  int O_POUND = 30;

-  /** RegularExpression Id. */

-  int O_QUESTIONMARK = 31;

-  /** RegularExpression Id. */

-  int O_SEMICOLON = 32;

-  /** RegularExpression Id. */

-  int O_SLASH = 33;

-  /** RegularExpression Id. */

-  int O_TILDE = 34;

-  /** RegularExpression Id. */

-  int S_NUMBER = 35;

-  /** RegularExpression Id. */

-  int FLOAT = 36;

-  /** RegularExpression Id. */

-  int INTEGER = 37;

-  /** RegularExpression Id. */

-  int DIGIT = 38;

-  /** RegularExpression Id. */

-  int R_ALL = 39;

-  /** RegularExpression Id. */

-  int R_ALTER = 40;

-  /** RegularExpression Id. */

-  int R_ANCHORED_ROWTYPE = 41;

-  /** RegularExpression Id. */

-  int R_ANCHORED_TYPE = 42;

-  /** RegularExpression Id. */

-  int R_AND = 43;

-  /** RegularExpression Id. */

-  int R_AS = 44;

-  /** RegularExpression Id. */

-  int R_ASC = 45;

-  /** RegularExpression Id. */

-  int R_AT = 46;

-  /** RegularExpression Id. */

-  int R_BEGIN = 47;

-  /** RegularExpression Id. */

-  int R_BETWEEN = 48;

-  /** RegularExpression Id. */

-  int R_BY = 49;

-  /** RegularExpression Id. */

-  int R_CASE = 50;

-  /** RegularExpression Id. */

-  int R_CHECK = 51;

-  /** RegularExpression Id. */

-  int R_CLUSTERS = 52;

-  /** RegularExpression Id. */

-  int R_CLUSTER = 53;

-  /** RegularExpression Id. */

-  int R_COLAUTH = 54;

-  /** RegularExpression Id. */

-  int R_COLUMNS = 55;

-  /** RegularExpression Id. */

-  int R_COMPRESS = 56;

-  /** RegularExpression Id. */

-  int R_CONNECT = 57;

-  /** RegularExpression Id. */

-  int R_CRASH = 58;

-  /** RegularExpression Id. */

-  int R_CREATE = 59;

-  /** RegularExpression Id. */

-  int R_CURSOR = 60;

-  /** RegularExpression Id. */

-  int R_DECLARE = 61;

-  /** RegularExpression Id. */

-  int R_DEFAULT = 62;

-  /** RegularExpression Id. */

-  int R_DESC = 63;

-  /** RegularExpression Id. */

-  int R_DISTINCT = 64;

-  /** RegularExpression Id. */

-  int R_DROP = 65;

-  /** RegularExpression Id. */

-  int R_ELSE = 66;

-  /** RegularExpression Id. */

-  int R_END = 67;

-  /** RegularExpression Id. */

-  int R_EXCEPTION = 68;

-  /** RegularExpression Id. */

-  int R_EXCLUSIVE = 69;

-  /** RegularExpression Id. */

-  int R_FETCH = 70;

-  /** RegularExpression Id. */

-  int R_FOR = 71;

-  /** RegularExpression Id. */

-  int R_FROM = 72;

-  /** RegularExpression Id. */

-  int R_FUNCTION = 73;

-  /** RegularExpression Id. */

-  int R_GOTO = 74;

-  /** RegularExpression Id. */

-  int R_GRANT = 75;

-  /** RegularExpression Id. */

-  int R_GROUP = 76;

-  /** RegularExpression Id. */

-  int R_HAVING = 77;

-  /** RegularExpression Id. */

-  int R_IDENTIFIED = 78;

-  /** RegularExpression Id. */

-  int R_IF = 79;

-  /** RegularExpression Id. */

-  int R_IN = 80;

-  /** RegularExpression Id. */

-  int R_INDEX = 81;

-  /** RegularExpression Id. */

-  int R_INDEXES = 82;

-  /** RegularExpression Id. */

-  int R_INSERT = 83;

-  /** RegularExpression Id. */

-  int R_INTERSECT = 84;

-  /** RegularExpression Id. */

-  int R_INTO = 85;

-  /** RegularExpression Id. */

-  int R_IS = 86;

-  /** RegularExpression Id. */

-  int R_LIKE = 87;

-  /** RegularExpression Id. */

-  int R_LOCK = 88;

-  /** RegularExpression Id. */

-  int R_MINUS = 89;

-  /** RegularExpression Id. */

-  int R_MODE = 90;

-  /** RegularExpression Id. */

-  int R_NOCOMPRESS = 91;

-  /** RegularExpression Id. */

-  int R_NO = 92;

-  /** RegularExpression Id. */

-  int R_NOT = 93;

-  /** RegularExpression Id. */

-  int R_NOWAIT = 94;

-  /** RegularExpression Id. */

-  int R_NULL = 95;

-  /** RegularExpression Id. */

-  int R_OF = 96;

-  /** RegularExpression Id. */

-  int R_ON = 97;

-  /** RegularExpression Id. */

-  int R_OPTION = 98;

-  /** RegularExpression Id. */

-  int R_OR = 99;

-  /** RegularExpression Id. */

-  int R_ORDER = 100;

-  /** RegularExpression Id. */

-  int R_OVERLAPS = 101;

-  /** RegularExpression Id. */

-  int R_PROCEDURE = 102;

-  /** RegularExpression Id. */

-  int R_PUBLIC = 103;

-  /** RegularExpression Id. */

-  int R_RESOURCE = 104;

-  /** RegularExpression Id. */

-  int R_REVOKE = 105;

-  /** RegularExpression Id. */

-  int R_SELECT = 106;

-  /** RegularExpression Id. */

-  int R_SHARE = 107;

-  /** RegularExpression Id. */

-  int R_SIZE = 108;

-  /** RegularExpression Id. */

-  int R_SQL = 109;

-  /** RegularExpression Id. */

-  int R_START = 110;

-  /** RegularExpression Id. */

-  int R_SUBTYPE = 111;

-  /** RegularExpression Id. */

-  int R_TABAUTH = 112;

-  /** RegularExpression Id. */

-  int R_TABLE = 113;

-  /** RegularExpression Id. */

-  int R_THEN = 114;

-  /** RegularExpression Id. */

-  int R_TO = 115;

-  /** RegularExpression Id. */

-  int R_TYPE = 116;

-  /** RegularExpression Id. */

-  int R_UNION = 117;

-  /** RegularExpression Id. */

-  int R_UNIQUE = 118;

-  /** RegularExpression Id. */

-  int R_UPDATE = 119;

-  /** RegularExpression Id. */

-  int R_VALUES = 120;

-  /** RegularExpression Id. */

-  int R_VIEW = 121;

-  /** RegularExpression Id. */

-  int R_VIEWS = 122;

-  /** RegularExpression Id. */

-  int R_WHEN = 123;

-  /** RegularExpression Id. */

-  int R_WHERE = 124;

-  /** RegularExpression Id. */

-  int R_WITH = 125;

-  /** RegularExpression Id. */

-  int R_YES = 126;

-  /** RegularExpression Id. */

-  int K_ARRAY = 127;

-  /** RegularExpression Id. */

-  int K_AUTHID = 128;

-  /** RegularExpression Id. */

-  int K_AUTONOMOUS_TRANSACTION = 129;

-  /** RegularExpression Id. */

-  int K_BFILE = 130;

-  /** RegularExpression Id. */

-  int K_BINARY_DOUBLE = 131;

-  /** RegularExpression Id. */

-  int K_BINARY_FLOAT = 132;

-  /** RegularExpression Id. */

-  int K_BINARY_INTEGER = 133;

-  /** RegularExpression Id. */

-  int K_BLOB = 134;

-  /** RegularExpression Id. */

-  int K_BOOLEAN = 135;

-  /** RegularExpression Id. */

-  int K_BYTE = 136;

-  /** RegularExpression Id. */

-  int K_CHAR = 137;

-  /** RegularExpression Id. */

-  int K_CHARACTER = 138;

-  /** RegularExpression Id. */

-  int K_CHARSET = 139;

-  /** RegularExpression Id. */

-  int K_CLOB = 140;

-  /** RegularExpression Id. */

-  int K_COMMIT = 141;

-  /** RegularExpression Id. */

-  int K_CONSTANT = 142;

-  /** RegularExpression Id. */

-  int K_CONSTRAINT = 143;

-  /** RegularExpression Id. */

-  int K_CURRENT_USER = 144;

-  /** RegularExpression Id. */

-  int K_DATE = 145;

-  /** RegularExpression Id. */

-  int K_DAY = 146;

-  /** RegularExpression Id. */

-  int K_DEC = 147;

-  /** RegularExpression Id. */

-  int K_DECIMAL = 148;

-  /** RegularExpression Id. */

-  int K_DEFINER = 149;

-  /** RegularExpression Id. */

-  int K_DELETE = 150;

-  /** RegularExpression Id. */

-  int K_DETERMINISTIC = 151;

-  /** RegularExpression Id. */

-  int K_DOUBLE = 152;

-  /** RegularExpression Id. */

-  int K_ENABLE = 153;

-  /** RegularExpression Id. */

-  int K_EXCEPTION_INIT = 154;

-  /** RegularExpression Id. */

-  int K_FINAL = 155;

-  /** RegularExpression Id. */

-  int K_FLOAT = 156;

-  /** RegularExpression Id. */

-  int K_FORCE = 157;

-  /** RegularExpression Id. */

-  int K_GLOBAL = 158;

-  /** RegularExpression Id. */

-  int K_INLINE = 159;

-  /** RegularExpression Id. */

-  int K_INSTANTIABLE = 160;

-  /** RegularExpression Id. */

-  int K_INT = 161;

-  /** RegularExpression Id. */

-  int K_INTEGER = 162;

-  /** RegularExpression Id. */

-  int K_INTERVAL = 163;

-  /** RegularExpression Id. */

-  int K_KEY = 164;

-  /** RegularExpression Id. */

-  int K_LOCAL = 165;

-  /** RegularExpression Id. */

-  int K_LONG = 166;

-  /** RegularExpression Id. */

-  int K_MLSLABEL = 167;

-  /** RegularExpression Id. */

-  int K_MONTH = 168;

-  /** RegularExpression Id. */

-  int K_NATIONAL = 169;

-  /** RegularExpression Id. */

-  int K_NATURAL = 170;

-  /** RegularExpression Id. */

-  int K_NCHAR = 171;

-  /** RegularExpression Id. */

-  int K_NCLOB = 172;

-  /** RegularExpression Id. */

-  int K_NOCOPY = 173;

-  /** RegularExpression Id. */

-  int K_NUMBER = 174;

-  /** RegularExpression Id. */

-  int K_NUMERIC = 175;

-  /** RegularExpression Id. */

-  int K_NVARCHAR2 = 176;

-  /** RegularExpression Id. */

-  int K_NVARCHAR = 177;

-  /** RegularExpression Id. */

-  int K_OBJECT = 178;

-  /** RegularExpression Id. */

-  int K_OID = 179;

-  /** RegularExpression Id. */

-  int K_ORGANIZATION = 180;

-  /** RegularExpression Id. */

-  int K_OUT = 181;

-  /** RegularExpression Id. */

-  int K_OVERFLOW = 182;

-  /** RegularExpression Id. */

-  int K_PACKAGE = 183;

-  /** RegularExpression Id. */

-  int K_PARALLEL_ENABLE = 184;

-  /** RegularExpression Id. */

-  int K_PIPELINED = 185;

-  /** RegularExpression Id. */

-  int K_PLS_INTEGER = 186;

-  /** RegularExpression Id. */

-  int K_POSITIVE = 187;

-  /** RegularExpression Id. */

-  int K_PRAGMA = 188;

-  /** RegularExpression Id. */

-  int K_PRECISION = 189;

-  /** RegularExpression Id. */

-  int K_PRESERVE = 190;

-  /** RegularExpression Id. */

-  int K_PRIMARY = 191;

-  /** RegularExpression Id. */

-  int K_RANGE = 192;

-  /** RegularExpression Id. */

-  int K_RAW = 193;

-  /** RegularExpression Id. */

-  int K_REAL = 194;

-  /** RegularExpression Id. */

-  int K_RECORD = 195;

-  /** RegularExpression Id. */

-  int K_REF = 196;

-  /** RegularExpression Id. */

-  int K_REPLACE = 197;

-  /** RegularExpression Id. */

-  int K_RESTRICT_REFERENCES = 198;

-  /** RegularExpression Id. */

-  int K_RESULT_CACHE = 199;

-  /** RegularExpression Id. */

-  int K_RETURN = 200;

-  /** RegularExpression Id. */

-  int K_RNDS = 201;

-  /** RegularExpression Id. */

-  int K_RNPS = 202;

-  /** RegularExpression Id. */

-  int K_ROWID = 203;

-  /** RegularExpression Id. */

-  int K_ROWS = 204;

-  /** RegularExpression Id. */

-  int K_SECOND = 205;

-  /** RegularExpression Id. */

-  int K_SERIALLY_REUSABLE = 206;

-  /** RegularExpression Id. */

-  int K_SET = 207;

-  /** RegularExpression Id. */

-  int K_SIGNTYPE = 208;

-  /** RegularExpression Id. */

-  int K_SIMPLE_DOUBLE = 209;

-  /** RegularExpression Id. */

-  int K_SIMPLE_FLOAT = 210;

-  /** RegularExpression Id. */

-  int K_SIMPLE_INTEGER = 211;

-  /** RegularExpression Id. */

-  int K_SMALLINT = 212;

-  /** RegularExpression Id. */

-  int K_STRING = 213;

-  /** RegularExpression Id. */

-  int K_SYS_REFCURSOR = 214;

-  /** RegularExpression Id. */

-  int K_TEMPORARY = 215;

-  /** RegularExpression Id. */

-  int K_TIME = 216;

-  /** RegularExpression Id. */

-  int K_TIMESTAMP = 217;

-  /** RegularExpression Id. */

-  int K_TRUST = 218;

-  /** RegularExpression Id. */

-  int K_UROWID = 219;

-  /** RegularExpression Id. */

-  int K_VARCHAR2 = 220;

-  /** RegularExpression Id. */

-  int K_VARCHAR = 221;

-  /** RegularExpression Id. */

-  int K_VARRAY = 222;

-  /** RegularExpression Id. */

-  int K_VARYING = 223;

-  /** RegularExpression Id. */

-  int K_WNDS = 224;

-  /** RegularExpression Id. */

-  int K_WNPS = 225;

-  /** RegularExpression Id. */

-  int K_YEAR = 226;

-  /** RegularExpression Id. */

-  int K_ZONE = 227;

-  /** RegularExpression Id. */

-  int S_IDENTIFIER = 228;

-  /** RegularExpression Id. */

-  int LETTER = 229;

-  /** RegularExpression Id. */

-  int SPECIAL_CHARS = 230;

-  /** RegularExpression Id. */

-  int S_BIND = 231;

-  /** RegularExpression Id. */

-  int S_CHAR_LITERAL = 232;

-  /** RegularExpression Id. */

-  int S_QUOTED_IDENTIFIER = 233;

-

-  /** Lexical state. */

-  int DEFAULT = 0;

-

-  /** Literal token values. */

-  String[] tokenImage = {

-    "<EOF>",

-    "\" \"",

-    "\"\\t\"",

-    "\"\\n\"",

-    "\"\\r\"",

-    "\"\\f\"",

-    "<COMMENT_LINE>",

-    "<COMMENT_BLOCK>",

-    "\":=\"",

-    "\"*\"",

-    "\"@\"",

-    "\")\"",

-    "\"||\"",

-    "\":\"",

-    "\",\"",

-    "\".\"",

-    "\"..\"",

-    "\"$\"",

-    "\"%\"",

-    "\"=\"",

-    "\">\"",

-    "\">=\"",

-    "\"(+)\"",

-    "\"<\"",

-    "\"<=\"",

-    "\"-\"",

-    "\"<>\"",

-    "\"!=\"",

-    "\"(\"",

-    "\"+\"",

-    "\"#\"",

-    "\"?\"",

-    "\";\"",

-    "\"/\"",

-    "\"~\"",

-    "<S_NUMBER>",

-    "<FLOAT>",

-    "<INTEGER>",

-    "<DIGIT>",

-    "\"ALL\"",

-    "\"ALTER\"",

-    "\"%ROWTYPE\"",

-    "\"%TYPE\"",

-    "\"AND\"",

-    "\"AS\"",

-    "\"ASC\"",

-    "\"AT\"",

-    "\"BEGIN\"",

-    "\"BETWEEN\"",

-    "\"BY\"",

-    "\"CASE\"",

-    "\"CHECK\"",

-    "\"CLUSTERS\"",

-    "\"CLUSTER\"",

-    "\"COLAUTH\"",

-    "\"COLUMNS\"",

-    "\"COMPRESS\"",

-    "\"CONNECT\"",

-    "\"CRASH\"",

-    "\"CREATE\"",

-    "\"CURSOR\"",

-    "\"DECLARE\"",

-    "\"DEFAULT\"",

-    "\"DESC\"",

-    "\"DISTINCT\"",

-    "\"DROP\"",

-    "\"ELSE\"",

-    "\"END\"",

-    "\"EXCEPTION\"",

-    "\"EXCLUSIVE\"",

-    "\"FETCH\"",

-    "\"FOR\"",

-    "\"FROM\"",

-    "\"FUNCTION\"",

-    "\"GOTO\"",

-    "\"GRANT\"",

-    "\"GROUP\"",

-    "\"HAVING\"",

-    "\"IDENTIFIED\"",

-    "\"IF\"",

-    "\"IN\"",

-    "\"INDEX\"",

-    "\"INDEXES\"",

-    "\"INSERT\"",

-    "\"INTERSECT\"",

-    "\"INTO\"",

-    "\"IS\"",

-    "\"LIKE\"",

-    "\"LOCK\"",

-    "\"MINUS\"",

-    "\"MODE\"",

-    "\"NOCOMPRESS\"",

-    "\"\\\'NO\\\'\"",

-    "\"NOT\"",

-    "\"NOWAIT\"",

-    "\"NULL\"",

-    "\"OF\"",

-    "\"ON\"",

-    "\"OPTION\"",

-    "\"OR\"",

-    "\"ORDER\"",

-    "\"OVERLAPS\"",

-    "\"PROCEDURE\"",

-    "\"PUBLIC\"",

-    "\"RESOURCE\"",

-    "\"REVOLE\"",

-    "\"SELECT\"",

-    "\"SHARE\"",

-    "\"SIZE\"",

-    "\"SQL\"",

-    "\"START\"",

-    "\"SUBTYPE\"",

-    "\"TABAUTH\"",

-    "\"TABLE\"",

-    "\"THEN\"",

-    "\"TO\"",

-    "\"TYPE\"",

-    "\"UNION\"",

-    "\"UNIQUE\"",

-    "\"UPDATE\"",

-    "\"VALUES\"",

-    "\"VIEW\"",

-    "\"VIEWS\"",

-    "\"WHEN\"",

-    "\"WHERE\"",

-    "\"WITH\"",

-    "\"\\\'YES\\\'\"",

-    "\"ARRAY\"",

-    "\"AUTHID\"",

-    "\"AUTONOMOUS_TRANSACTION\"",

-    "\"BFILE\"",

-    "\"BINARY_DOUBLE\"",

-    "\"BINARY_FLOAT\"",

-    "\"BINARY_INTEGER\"",

-    "\"BLOB\"",

-    "\"BOOLEAN\"",

-    "\"BYTE\"",

-    "\"CHAR\"",

-    "\"CHARACTER\"",

-    "\"CHARSET\"",

-    "\"CLOB\"",

-    "\"COMMIT\"",

-    "\"CONSTANT\"",

-    "\"CONSTRAINT\"",

-    "\"CURRENT_USER\"",

-    "\"DATE\"",

-    "\"DAY\"",

-    "\"DEC\"",

-    "\"DECIMAL\"",

-    "\"DEFINER\"",

-    "\"DELETE\"",

-    "\"DETERMINISTIC\"",

-    "\"DOUBLE\"",

-    "\"ENABLE\"",

-    "\"EXCEPTION_INIT\"",

-    "\"FINAL\"",

-    "\"FLOAT\"",

-    "\"FORCE\"",

-    "\"GLOBAL\"",

-    "\"INLINE\"",

-    "\"INSTANTIABLE\"",

-    "\"INT\"",

-    "\"INTEGER\"",

-    "\"INTERVAL\"",

-    "\"KEY\"",

-    "\"LOCAL\"",

-    "\"LONG\"",

-    "\"MLSLABEL\"",

-    "\"MONTH\"",

-    "\"NATIONAL\"",

-    "\"NATURAL\"",

-    "\"NCHAR\"",

-    "\"NCLOB\"",

-    "\"NOCOPY\"",

-    "\"NUMBER\"",

-    "\"NUMERIC\"",

-    "\"NVARCHAR2\"",

-    "\"NVARCHAR\"",

-    "\"OBJECT\"",

-    "\"OID\"",

-    "\"ORGANIZATION\"",

-    "\"OUT\"",

-    "\"OVERFLOW\"",

-    "\"PACKAGE\"",

-    "\"PARALLEL_ENABLE\"",

-    "\"PIPELINED\"",

-    "\"PLS_INTEGER\"",

-    "\"POSITIVE\"",

-    "\"PRAGMA\"",

-    "\"PRECISION\"",

-    "\"PRESERVE\"",

-    "\"PRIMARY\"",

-    "\"RANGE\"",

-    "\"RAW\"",

-    "\"REAL\"",

-    "\"RECORD\"",

-    "\"REF\"",

-    "\"REPLACE\"",

-    "\"RESTRICT_REFERENCES\"",

-    "\"RESULT_CACHE\"",

-    "\"RETURN\"",

-    "\"RNDS\"",

-    "\"RNPS\"",

-    "\"ROWID\"",

-    "\"ROWS\"",

-    "\"SECOND\"",

-    "\"SERIALLY_REUSABLE\"",

-    "\"SET\"",

-    "\"SIGNTYPE\"",

-    "\"SIMPLE_DOUBLE\"",

-    "\"SIMPLE_FLOAT\"",

-    "\"SIMPLE_INTEGER\"",

-    "\"SMALLINT\"",

-    "\"STRING\"",

-    "\"SYS_REFCURSOR\"",

-    "\"TEMPORARY\"",

-    "\"TIME\"",

-    "\"TIMESTAMP\"",

-    "\"TRUST\"",

-    "\"UROWID\"",

-    "\"VARCHAR2\"",

-    "\"VARCHAR\"",

-    "\"VARRAY\"",

-    "\"VARYING\"",

-    "\"WNDS\"",

-    "\"WNPS\"",

-    "\"YEAR\"",

-    "\"ZONE\"",

-    "<S_IDENTIFIER>",

-    "<LETTER>",

-    "<SPECIAL_CHARS>",

-    "<S_BIND>",

-    "<S_CHAR_LITERAL>",

-    "<S_QUOTED_IDENTIFIER>",

-  };

-

-}

+public interface DDLParserConstants {
+
+  /** End of File. */
+  int EOF = 0;
+  /** RegularExpression Id. */
+  int COMMENT_LINE = 6;
+  /** RegularExpression Id. */
+  int COMMENT_BLOCK = 7;
+  /** RegularExpression Id. */
+  int O_ASSIGN = 8;
+  /** RegularExpression Id. */
+  int O_ASTERISK = 9;
+  /** RegularExpression Id. */
+  int O_ATSIGN = 10;
+  /** RegularExpression Id. */
+  int O_CLOSEPAREN = 11;
+  /** RegularExpression Id. */
+  int O_CONCAT = 12;
+  /** RegularExpression Id. */
+  int O_COLON = 13;
+  /** RegularExpression Id. */
+  int O_COMMA = 14;
+  /** RegularExpression Id. */
+  int O_DOT = 15;
+  /** RegularExpression Id. */
+  int O_DOUBLEDOT = 16;
+  /** RegularExpression Id. */
+  int O_DOLLAR = 17;
+  /** RegularExpression Id. */
+  int O_PERCENT = 18;
+  /** RegularExpression Id. */
+  int O_EQUAL = 19;
+  /** RegularExpression Id. */
+  int O_GREATER = 20;
+  /** RegularExpression Id. */
+  int O_GREATEREQUAL = 21;
+  /** RegularExpression Id. */
+  int O_JOINPLUS = 22;
+  /** RegularExpression Id. */
+  int O_LESS = 23;
+  /** RegularExpression Id. */
+  int O_LESSEQUAL = 24;
+  /** RegularExpression Id. */
+  int O_MINUS = 25;
+  /** RegularExpression Id. */
+  int O_NOTEQUAL2 = 26;
+  /** RegularExpression Id. */
+  int O_NOTEQUAL = 27;
+  /** RegularExpression Id. */
+  int O_OPENPAREN = 28;
+  /** RegularExpression Id. */
+  int O_PLUS = 29;
+  /** RegularExpression Id. */
+  int O_POUND = 30;
+  /** RegularExpression Id. */
+  int O_QUESTIONMARK = 31;
+  /** RegularExpression Id. */
+  int O_SEMICOLON = 32;
+  /** RegularExpression Id. */
+  int O_SLASH = 33;
+  /** RegularExpression Id. */
+  int O_TILDE = 34;
+  /** RegularExpression Id. */
+  int S_NUMBER = 35;
+  /** RegularExpression Id. */
+  int FLOAT = 36;
+  /** RegularExpression Id. */
+  int INTEGER = 37;
+  /** RegularExpression Id. */
+  int DIGIT = 38;
+  /** RegularExpression Id. */
+  int R_ALL = 39;
+  /** RegularExpression Id. */
+  int R_ALTER = 40;
+  /** RegularExpression Id. */
+  int R_ANCHORED_ROWTYPE = 41;
+  /** RegularExpression Id. */
+  int R_ANCHORED_TYPE = 42;
+  /** RegularExpression Id. */
+  int R_AND = 43;
+  /** RegularExpression Id. */
+  int R_AS = 44;
+  /** RegularExpression Id. */
+  int R_ASC = 45;
+  /** RegularExpression Id. */
+  int R_AT = 46;
+  /** RegularExpression Id. */
+  int R_BEGIN = 47;
+  /** RegularExpression Id. */
+  int R_BETWEEN = 48;
+  /** RegularExpression Id. */
+  int R_BY = 49;
+  /** RegularExpression Id. */
+  int R_CASE = 50;
+  /** RegularExpression Id. */
+  int R_CHECK = 51;
+  /** RegularExpression Id. */
+  int R_CLUSTERS = 52;
+  /** RegularExpression Id. */
+  int R_CLUSTER = 53;
+  /** RegularExpression Id. */
+  int R_COLAUTH = 54;
+  /** RegularExpression Id. */
+  int R_COLUMNS = 55;
+  /** RegularExpression Id. */
+  int R_COMPRESS = 56;
+  /** RegularExpression Id. */
+  int R_CONNECT = 57;
+  /** RegularExpression Id. */
+  int R_CRASH = 58;
+  /** RegularExpression Id. */
+  int R_CREATE = 59;
+  /** RegularExpression Id. */
+  int R_CURSOR = 60;
+  /** RegularExpression Id. */
+  int R_DECLARE = 61;
+  /** RegularExpression Id. */
+  int R_DEFAULT = 62;
+  /** RegularExpression Id. */
+  int R_DESC = 63;
+  /** RegularExpression Id. */
+  int R_DISTINCT = 64;
+  /** RegularExpression Id. */
+  int R_DROP = 65;
+  /** RegularExpression Id. */
+  int R_ELSE = 66;
+  /** RegularExpression Id. */
+  int R_END = 67;
+  /** RegularExpression Id. */
+  int R_EXCEPTION = 68;
+  /** RegularExpression Id. */
+  int R_EXCLUSIVE = 69;
+  /** RegularExpression Id. */
+  int R_FETCH = 70;
+  /** RegularExpression Id. */
+  int R_FOR = 71;
+  /** RegularExpression Id. */
+  int R_FROM = 72;
+  /** RegularExpression Id. */
+  int R_FUNCTION = 73;
+  /** RegularExpression Id. */
+  int R_GOTO = 74;
+  /** RegularExpression Id. */
+  int R_GRANT = 75;
+  /** RegularExpression Id. */
+  int R_GROUP = 76;
+  /** RegularExpression Id. */
+  int R_HAVING = 77;
+  /** RegularExpression Id. */
+  int R_IDENTIFIED = 78;
+  /** RegularExpression Id. */
+  int R_IF = 79;
+  /** RegularExpression Id. */
+  int R_IN = 80;
+  /** RegularExpression Id. */
+  int R_INDEX = 81;
+  /** RegularExpression Id. */
+  int R_INDEXES = 82;
+  /** RegularExpression Id. */
+  int R_INSERT = 83;
+  /** RegularExpression Id. */
+  int R_INTERSECT = 84;
+  /** RegularExpression Id. */
+  int R_INTO = 85;
+  /** RegularExpression Id. */
+  int R_IS = 86;
+  /** RegularExpression Id. */
+  int R_LIKE = 87;
+  /** RegularExpression Id. */
+  int R_LOCK = 88;
+  /** RegularExpression Id. */
+  int R_MINUS = 89;
+  /** RegularExpression Id. */
+  int R_MODE = 90;
+  /** RegularExpression Id. */
+  int R_NOCOMPRESS = 91;
+  /** RegularExpression Id. */
+  int R_NO = 92;
+  /** RegularExpression Id. */
+  int R_NOT = 93;
+  /** RegularExpression Id. */
+  int R_NOWAIT = 94;
+  /** RegularExpression Id. */
+  int R_NULL = 95;
+  /** RegularExpression Id. */
+  int R_OF = 96;
+  /** RegularExpression Id. */
+  int R_ON = 97;
+  /** RegularExpression Id. */
+  int R_OPTION = 98;
+  /** RegularExpression Id. */
+  int R_OR = 99;
+  /** RegularExpression Id. */
+  int R_ORDER = 100;
+  /** RegularExpression Id. */
+  int R_OVERLAPS = 101;
+  /** RegularExpression Id. */
+  int R_PROCEDURE = 102;
+  /** RegularExpression Id. */
+  int R_PUBLIC = 103;
+  /** RegularExpression Id. */
+  int R_RESOURCE = 104;
+  /** RegularExpression Id. */
+  int R_REVOKE = 105;
+  /** RegularExpression Id. */
+  int R_SELECT = 106;
+  /** RegularExpression Id. */
+  int R_SHARE = 107;
+  /** RegularExpression Id. */
+  int R_SIZE = 108;
+  /** RegularExpression Id. */
+  int R_SQL = 109;
+  /** RegularExpression Id. */
+  int R_START = 110;
+  /** RegularExpression Id. */
+  int R_SUBTYPE = 111;
+  /** RegularExpression Id. */
+  int R_TABAUTH = 112;
+  /** RegularExpression Id. */
+  int R_TABLE = 113;
+  /** RegularExpression Id. */
+  int R_THEN = 114;
+  /** RegularExpression Id. */
+  int R_TO = 115;
+  /** RegularExpression Id. */
+  int R_TYPE = 116;
+  /** RegularExpression Id. */
+  int R_UNION = 117;
+  /** RegularExpression Id. */
+  int R_UNIQUE = 118;
+  /** RegularExpression Id. */
+  int R_UPDATE = 119;
+  /** RegularExpression Id. */
+  int R_VALUES = 120;
+  /** RegularExpression Id. */
+  int R_VIEW = 121;
+  /** RegularExpression Id. */
+  int R_VIEWS = 122;
+  /** RegularExpression Id. */
+  int R_WHEN = 123;
+  /** RegularExpression Id. */
+  int R_WHERE = 124;
+  /** RegularExpression Id. */
+  int R_WITH = 125;
+  /** RegularExpression Id. */
+  int R_YES = 126;
+  /** RegularExpression Id. */
+  int K_ARRAY = 127;
+  /** RegularExpression Id. */
+  int K_AUTHID = 128;
+  /** RegularExpression Id. */
+  int K_AUTONOMOUS_TRANSACTION = 129;
+  /** RegularExpression Id. */
+  int K_BFILE = 130;
+  /** RegularExpression Id. */
+  int K_BINARY_DOUBLE = 131;
+  /** RegularExpression Id. */
+  int K_BINARY_FLOAT = 132;
+  /** RegularExpression Id. */
+  int K_BINARY_INTEGER = 133;
+  /** RegularExpression Id. */
+  int K_BLOB = 134;
+  /** RegularExpression Id. */
+  int K_BOOLEAN = 135;
+  /** RegularExpression Id. */
+  int K_BYTE = 136;
+  /** RegularExpression Id. */
+  int K_CHAR = 137;
+  /** RegularExpression Id. */
+  int K_CHARACTER = 138;
+  /** RegularExpression Id. */
+  int K_CHARSET = 139;
+  /** RegularExpression Id. */
+  int K_CLOB = 140;
+  /** RegularExpression Id. */
+  int K_COMMIT = 141;
+  /** RegularExpression Id. */
+  int K_CONSTANT = 142;
+  /** RegularExpression Id. */
+  int K_CONSTRAINT = 143;
+  /** RegularExpression Id. */
+  int K_CURRENT_USER = 144;
+  /** RegularExpression Id. */
+  int K_DATE = 145;
+  /** RegularExpression Id. */
+  int K_DAY = 146;
+  /** RegularExpression Id. */
+  int K_DEC = 147;
+  /** RegularExpression Id. */
+  int K_DECIMAL = 148;
+  /** RegularExpression Id. */
+  int K_DEFINER = 149;
+  /** RegularExpression Id. */
+  int K_DELETE = 150;
+  /** RegularExpression Id. */
+  int K_DETERMINISTIC = 151;
+  /** RegularExpression Id. */
+  int K_DOUBLE = 152;
+  /** RegularExpression Id. */
+  int K_ENABLE = 153;
+  /** RegularExpression Id. */
+  int K_EXCEPTION_INIT = 154;
+  /** RegularExpression Id. */
+  int K_FINAL = 155;
+  /** RegularExpression Id. */
+  int K_FLOAT = 156;
+  /** RegularExpression Id. */
+  int K_FORCE = 157;
+  /** RegularExpression Id. */
+  int K_GLOBAL = 158;
+  /** RegularExpression Id. */
+  int K_INLINE = 159;
+  /** RegularExpression Id. */
+  int K_INSTANTIABLE = 160;
+  /** RegularExpression Id. */
+  int K_INT = 161;
+  /** RegularExpression Id. */
+  int K_INTEGER = 162;
+  /** RegularExpression Id. */
+  int K_INTERVAL = 163;
+  /** RegularExpression Id. */
+  int K_KEY = 164;
+  /** RegularExpression Id. */
+  int K_LOCAL = 165;
+  /** RegularExpression Id. */
+  int K_LONG = 166;
+  /** RegularExpression Id. */
+  int K_MLSLABEL = 167;
+  /** RegularExpression Id. */
+  int K_MONTH = 168;
+  /** RegularExpression Id. */
+  int K_NATIONAL = 169;
+  /** RegularExpression Id. */
+  int K_NATURAL = 170;
+  /** RegularExpression Id. */
+  int K_NCHAR = 171;
+  /** RegularExpression Id. */
+  int K_NCLOB = 172;
+  /** RegularExpression Id. */
+  int K_NOCOPY = 173;
+  /** RegularExpression Id. */
+  int K_NUMBER = 174;
+  /** RegularExpression Id. */
+  int K_NUMERIC = 175;
+  /** RegularExpression Id. */
+  int K_NVARCHAR2 = 176;
+  /** RegularExpression Id. */
+  int K_NVARCHAR = 177;
+  /** RegularExpression Id. */
+  int K_OBJECT = 178;
+  /** RegularExpression Id. */
+  int K_OID = 179;
+  /** RegularExpression Id. */
+  int K_ORGANIZATION = 180;
+  /** RegularExpression Id. */
+  int K_OUT = 181;
+  /** RegularExpression Id. */
+  int K_OVERFLOW = 182;
+  /** RegularExpression Id. */
+  int K_PACKAGE = 183;
+  /** RegularExpression Id. */
+  int K_PARALLEL_ENABLE = 184;
+  /** RegularExpression Id. */
+  int K_PIPELINED = 185;
+  /** RegularExpression Id. */
+  int K_PLS_INTEGER = 186;
+  /** RegularExpression Id. */
+  int K_POSITIVE = 187;
+  /** RegularExpression Id. */
+  int K_PRAGMA = 188;
+  /** RegularExpression Id. */
+  int K_PRECISION = 189;
+  /** RegularExpression Id. */
+  int K_PRESERVE = 190;
+  /** RegularExpression Id. */
+  int K_PRIMARY = 191;
+  /** RegularExpression Id. */
+  int K_RANGE = 192;
+  /** RegularExpression Id. */
+  int K_RAW = 193;
+  /** RegularExpression Id. */
+  int K_REAL = 194;
+  /** RegularExpression Id. */
+  int K_RECORD = 195;
+  /** RegularExpression Id. */
+  int K_REF = 196;
+  /** RegularExpression Id. */
+  int K_REPLACE = 197;
+  /** RegularExpression Id. */
+  int K_RESTRICT_REFERENCES = 198;
+  /** RegularExpression Id. */
+  int K_RESULT_CACHE = 199;
+  /** RegularExpression Id. */
+  int K_RETURN = 200;
+  /** RegularExpression Id. */
+  int K_RNDS = 201;
+  /** RegularExpression Id. */
+  int K_RNPS = 202;
+  /** RegularExpression Id. */
+  int K_ROWID = 203;
+  /** RegularExpression Id. */
+  int K_ROWS = 204;
+  /** RegularExpression Id. */
+  int K_SECOND = 205;
+  /** RegularExpression Id. */
+  int K_SERIALLY_REUSABLE = 206;
+  /** RegularExpression Id. */
+  int K_SET = 207;
+  /** RegularExpression Id. */
+  int K_SIGNTYPE = 208;
+  /** RegularExpression Id. */
+  int K_SIMPLE_DOUBLE = 209;
+  /** RegularExpression Id. */
+  int K_SIMPLE_FLOAT = 210;
+  /** RegularExpression Id. */
+  int K_SIMPLE_INTEGER = 211;
+  /** RegularExpression Id. */
+  int K_SMALLINT = 212;
+  /** RegularExpression Id. */
+  int K_STRING = 213;
+  /** RegularExpression Id. */
+  int K_SYS_REFCURSOR = 214;
+  /** RegularExpression Id. */
+  int K_TEMPORARY = 215;
+  /** RegularExpression Id. */
+  int K_TIME = 216;
+  /** RegularExpression Id. */
+  int K_TIMESTAMP = 217;
+  /** RegularExpression Id. */
+  int K_TRUST = 218;
+  /** RegularExpression Id. */
+  int K_UROWID = 219;
+  /** RegularExpression Id. */
+  int K_VARCHAR2 = 220;
+  /** RegularExpression Id. */
+  int K_VARCHAR = 221;
+  /** RegularExpression Id. */
+  int K_VARRAY = 222;
+  /** RegularExpression Id. */
+  int K_VARYING = 223;
+  /** RegularExpression Id. */
+  int K_WNDS = 224;
+  /** RegularExpression Id. */
+  int K_WNPS = 225;
+  /** RegularExpression Id. */
+  int K_YEAR = 226;
+  /** RegularExpression Id. */
+  int K_ZONE = 227;
+  /** RegularExpression Id. */
+  int S_IDENTIFIER = 228;
+  /** RegularExpression Id. */
+  int LETTER = 229;
+  /** RegularExpression Id. */
+  int SPECIAL_CHARS = 230;
+  /** RegularExpression Id. */
+  int S_BIND = 231;
+  /** RegularExpression Id. */
+  int S_CHAR_LITERAL = 232;
+  /** RegularExpression Id. */
+  int S_QUOTED_IDENTIFIER = 233;
+
+  /** Lexical state. */
+  int DEFAULT = 0;
+
+  /** Literal token values. */
+  String[] tokenImage = {
+    "<EOF>",
+    "\" \"",
+    "\"\\t\"",
+    "\"\\n\"",
+    "\"\\r\"",
+    "\"\\f\"",
+    "<COMMENT_LINE>",
+    "<COMMENT_BLOCK>",
+    "\":=\"",
+    "\"*\"",
+    "\"@\"",
+    "\")\"",
+    "\"||\"",
+    "\":\"",
+    "\",\"",
+    "\".\"",
+    "\"..\"",
+    "\"$\"",
+    "\"%\"",
+    "\"=\"",
+    "\">\"",
+    "\">=\"",
+    "\"(+)\"",
+    "\"<\"",
+    "\"<=\"",
+    "\"-\"",
+    "\"<>\"",
+    "\"!=\"",
+    "\"(\"",
+    "\"+\"",
+    "\"#\"",
+    "\"?\"",
+    "\";\"",
+    "\"/\"",
+    "\"~\"",
+    "<S_NUMBER>",
+    "<FLOAT>",
+    "<INTEGER>",
+    "<DIGIT>",
+    "\"ALL\"",
+    "\"ALTER\"",
+    "\"%ROWTYPE\"",
+    "\"%TYPE\"",
+    "\"AND\"",
+    "\"AS\"",
+    "\"ASC\"",
+    "\"AT\"",
+    "\"BEGIN\"",
+    "\"BETWEEN\"",
+    "\"BY\"",
+    "\"CASE\"",
+    "\"CHECK\"",
+    "\"CLUSTERS\"",
+    "\"CLUSTER\"",
+    "\"COLAUTH\"",
+    "\"COLUMNS\"",
+    "\"COMPRESS\"",
+    "\"CONNECT\"",
+    "\"CRASH\"",
+    "\"CREATE\"",
+    "\"CURSOR\"",
+    "\"DECLARE\"",
+    "\"DEFAULT\"",
+    "\"DESC\"",
+    "\"DISTINCT\"",
+    "\"DROP\"",
+    "\"ELSE\"",
+    "\"END\"",
+    "\"EXCEPTION\"",
+    "\"EXCLUSIVE\"",
+    "\"FETCH\"",
+    "\"FOR\"",
+    "\"FROM\"",
+    "\"FUNCTION\"",
+    "\"GOTO\"",
+    "\"GRANT\"",
+    "\"GROUP\"",
+    "\"HAVING\"",
+    "\"IDENTIFIED\"",
+    "\"IF\"",
+    "\"IN\"",
+    "\"INDEX\"",
+    "\"INDEXES\"",
+    "\"INSERT\"",
+    "\"INTERSECT\"",
+    "\"INTO\"",
+    "\"IS\"",
+    "\"LIKE\"",
+    "\"LOCK\"",
+    "\"MINUS\"",
+    "\"MODE\"",
+    "\"NOCOMPRESS\"",
+    "\"\\\'NO\\\'\"",
+    "\"NOT\"",
+    "\"NOWAIT\"",
+    "\"NULL\"",
+    "\"OF\"",
+    "\"ON\"",
+    "\"OPTION\"",
+    "\"OR\"",
+    "\"ORDER\"",
+    "\"OVERLAPS\"",
+    "\"PROCEDURE\"",
+    "\"PUBLIC\"",
+    "\"RESOURCE\"",
+    "\"REVOLE\"",
+    "\"SELECT\"",
+    "\"SHARE\"",
+    "\"SIZE\"",
+    "\"SQL\"",
+    "\"START\"",
+    "\"SUBTYPE\"",
+    "\"TABAUTH\"",
+    "\"TABLE\"",
+    "\"THEN\"",
+    "\"TO\"",
+    "\"TYPE\"",
+    "\"UNION\"",
+    "\"UNIQUE\"",
+    "\"UPDATE\"",
+    "\"VALUES\"",
+    "\"VIEW\"",
+    "\"VIEWS\"",
+    "\"WHEN\"",
+    "\"WHERE\"",
+    "\"WITH\"",
+    "\"\\\'YES\\\'\"",
+    "\"ARRAY\"",
+    "\"AUTHID\"",
+    "\"AUTONOMOUS_TRANSACTION\"",
+    "\"BFILE\"",
+    "\"BINARY_DOUBLE\"",
+    "\"BINARY_FLOAT\"",
+    "\"BINARY_INTEGER\"",
+    "\"BLOB\"",
+    "\"BOOLEAN\"",
+    "\"BYTE\"",
+    "\"CHAR\"",
+    "\"CHARACTER\"",
+    "\"CHARSET\"",
+    "\"CLOB\"",
+    "\"COMMIT\"",
+    "\"CONSTANT\"",
+    "\"CONSTRAINT\"",
+    "\"CURRENT_USER\"",
+    "\"DATE\"",
+    "\"DAY\"",
+    "\"DEC\"",
+    "\"DECIMAL\"",
+    "\"DEFINER\"",
+    "\"DELETE\"",
+    "\"DETERMINISTIC\"",
+    "\"DOUBLE\"",
+    "\"ENABLE\"",
+    "\"EXCEPTION_INIT\"",
+    "\"FINAL\"",
+    "\"FLOAT\"",
+    "\"FORCE\"",
+    "\"GLOBAL\"",
+    "\"INLINE\"",
+    "\"INSTANTIABLE\"",
+    "\"INT\"",
+    "\"INTEGER\"",
+    "\"INTERVAL\"",
+    "\"KEY\"",
+    "\"LOCAL\"",
+    "\"LONG\"",
+    "\"MLSLABEL\"",
+    "\"MONTH\"",
+    "\"NATIONAL\"",
+    "\"NATURAL\"",
+    "\"NCHAR\"",
+    "\"NCLOB\"",
+    "\"NOCOPY\"",
+    "\"NUMBER\"",
+    "\"NUMERIC\"",
+    "\"NVARCHAR2\"",
+    "\"NVARCHAR\"",
+    "\"OBJECT\"",
+    "\"OID\"",
+    "\"ORGANIZATION\"",
+    "\"OUT\"",
+    "\"OVERFLOW\"",
+    "\"PACKAGE\"",
+    "\"PARALLEL_ENABLE\"",
+    "\"PIPELINED\"",
+    "\"PLS_INTEGER\"",
+    "\"POSITIVE\"",
+    "\"PRAGMA\"",
+    "\"PRECISION\"",
+    "\"PRESERVE\"",
+    "\"PRIMARY\"",
+    "\"RANGE\"",
+    "\"RAW\"",
+    "\"REAL\"",
+    "\"RECORD\"",
+    "\"REF\"",
+    "\"REPLACE\"",
+    "\"RESTRICT_REFERENCES\"",
+    "\"RESULT_CACHE\"",
+    "\"RETURN\"",
+    "\"RNDS\"",
+    "\"RNPS\"",
+    "\"ROWID\"",
+    "\"ROWS\"",
+    "\"SECOND\"",
+    "\"SERIALLY_REUSABLE\"",
+    "\"SET\"",
+    "\"SIGNTYPE\"",
+    "\"SIMPLE_DOUBLE\"",
+    "\"SIMPLE_FLOAT\"",
+    "\"SIMPLE_INTEGER\"",
+    "\"SMALLINT\"",
+    "\"STRING\"",
+    "\"SYS_REFCURSOR\"",
+    "\"TEMPORARY\"",
+    "\"TIME\"",
+    "\"TIMESTAMP\"",
+    "\"TRUST\"",
+    "\"UROWID\"",
+    "\"VARCHAR2\"",
+    "\"VARCHAR\"",
+    "\"VARRAY\"",
+    "\"VARYING\"",
+    "\"WNDS\"",
+    "\"WNPS\"",
+    "\"YEAR\"",
+    "\"ZONE\"",
+    "<S_IDENTIFIER>",
+    "<LETTER>",
+    "<SPECIAL_CHARS>",
+    "<S_BIND>",
+    "<S_CHAR_LITERAL>",
+    "<S_QUOTED_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 00b33f4..bfe2599 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
@@ -1,4 +1,4 @@
-/* Generated By:JJTree&JavaCC: Do not edit this line. DDLParserTokenManager.java */

+/* Generated By:JJTree&JavaCC: Do not edit this line. DDLParserTokenManager.java */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -10,4147 +10,4147 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
 //javase imports

-import java.io.InputStream;

-import java.util.List;

-import java.util.HashMap;

-import java.util.Map;

+import java.io.InputStream;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 //metadata imports

-import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentTypeDirection;

-import org.eclipse.persistence.tools.oracleddl.metadata.BlobType;

-import org.eclipse.persistence.tools.oracleddl.metadata.CharType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ClobType;

-import org.eclipse.persistence.tools.oracleddl.metadata.CompositeDatabaseType;

-import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseType;

-import org.eclipse.persistence.tools.oracleddl.metadata.DecimalType;

-import org.eclipse.persistence.tools.oracleddl.metadata.DoubleType;

-import org.eclipse.persistence.tools.oracleddl.metadata.FieldType;

-import org.eclipse.persistence.tools.oracleddl.metadata.FloatType;

-import org.eclipse.persistence.tools.oracleddl.metadata.FunctionType;

-import org.eclipse.persistence.tools.oracleddl.metadata.IntervalDayToSecond;

-import org.eclipse.persistence.tools.oracleddl.metadata.IntervalYearToMonth;

-import org.eclipse.persistence.tools.oracleddl.metadata.LongType;

-import org.eclipse.persistence.tools.oracleddl.metadata.LongRawType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NCharType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NClobType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NumericType;

-import org.eclipse.persistence.tools.oracleddl.metadata.NVarChar2Type;

-import org.eclipse.persistence.tools.oracleddl.metadata.ObjectType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ObjectTableType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCollectionType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCursorType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLPackageType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLRecordType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLType;

-import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLSubType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ProcedureType;

-import org.eclipse.persistence.tools.oracleddl.metadata.RawType;

-import org.eclipse.persistence.tools.oracleddl.metadata.RealType;

-import org.eclipse.persistence.tools.oracleddl.metadata.ROWTYPEType;

-import org.eclipse.persistence.tools.oracleddl.metadata.TableType;

-import org.eclipse.persistence.tools.oracleddl.metadata.TimeStampType;

-import org.eclipse.persistence.tools.oracleddl.metadata.TYPEType;

-import org.eclipse.persistence.tools.oracleddl.metadata.URowIdType;

-import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedSizedType;

-import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedType;

-import org.eclipse.persistence.tools.oracleddl.metadata.VarCharType;

-import org.eclipse.persistence.tools.oracleddl.metadata.VarChar2Type;

-import org.eclipse.persistence.tools.oracleddl.metadata.VArrayType;

-import org.eclipse.persistence.tools.oracleddl.util.DatabaseTypesRepository;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BFILE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_FLOAT_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_DOUBLE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BOOLEAN_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.DATE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.MLSLABEL_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.NATURAL_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.PLS_INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.POSITIVE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.ROWID_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIGN_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_INTEGER_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_DOUBLE_TYPE;

-import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_FLOAT_TYPE;

-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;

-

-/** Token Manager. */

+import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ArgumentTypeDirection;
+import org.eclipse.persistence.tools.oracleddl.metadata.BlobType;
+import org.eclipse.persistence.tools.oracleddl.metadata.CharType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ClobType;
+import org.eclipse.persistence.tools.oracleddl.metadata.CompositeDatabaseType;
+import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseType;
+import org.eclipse.persistence.tools.oracleddl.metadata.DecimalType;
+import org.eclipse.persistence.tools.oracleddl.metadata.DoubleType;
+import org.eclipse.persistence.tools.oracleddl.metadata.FieldType;
+import org.eclipse.persistence.tools.oracleddl.metadata.FloatType;
+import org.eclipse.persistence.tools.oracleddl.metadata.FunctionType;
+import org.eclipse.persistence.tools.oracleddl.metadata.IntervalDayToSecond;
+import org.eclipse.persistence.tools.oracleddl.metadata.IntervalYearToMonth;
+import org.eclipse.persistence.tools.oracleddl.metadata.LongType;
+import org.eclipse.persistence.tools.oracleddl.metadata.LongRawType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NCharType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NClobType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NumericType;
+import org.eclipse.persistence.tools.oracleddl.metadata.NVarChar2Type;
+import org.eclipse.persistence.tools.oracleddl.metadata.ObjectType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ObjectTableType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCollectionType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCursorType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLPackageType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLRecordType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLSubType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ProcedureType;
+import org.eclipse.persistence.tools.oracleddl.metadata.RawType;
+import org.eclipse.persistence.tools.oracleddl.metadata.RealType;
+import org.eclipse.persistence.tools.oracleddl.metadata.ROWTYPEType;
+import org.eclipse.persistence.tools.oracleddl.metadata.TableType;
+import org.eclipse.persistence.tools.oracleddl.metadata.TimeStampType;
+import org.eclipse.persistence.tools.oracleddl.metadata.TYPEType;
+import org.eclipse.persistence.tools.oracleddl.metadata.URowIdType;
+import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedSizedType;
+import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedType;
+import org.eclipse.persistence.tools.oracleddl.metadata.VarCharType;
+import org.eclipse.persistence.tools.oracleddl.metadata.VarChar2Type;
+import org.eclipse.persistence.tools.oracleddl.metadata.VArrayType;
+import org.eclipse.persistence.tools.oracleddl.util.DatabaseTypesRepository;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BFILE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_FLOAT_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BINARY_DOUBLE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.BOOLEAN_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.DATE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.MLSLABEL_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.NATURAL_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.PLS_INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.POSITIVE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.ROWID_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIGN_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_INTEGER_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_DOUBLE_TYPE;
+import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SIMPLE_FLOAT_TYPE;
+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;
+
+/** Token Manager. */
 @SuppressWarnings("all")
-public class DDLParserTokenManager implements DDLParserConstants

-{

-

-  /** Debug output. */

-  public  java.io.PrintStream debugStream = System.out;

-  /** Set debug output. */

-  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }

-private int jjStopAtPos(int pos, int kind)

-{

-   jjmatchedKind = kind;

-   jjmatchedPos = pos;

-   return pos + 1;

-}

-private int jjMoveStringLiteralDfa0_0()

-{

-   switch(curChar)

-   {

-      case 9:

-         jjmatchedKind = 2;

-         return jjMoveNfa_0(5, 0);

-      case 10:

-         jjmatchedKind = 3;

-         return jjMoveNfa_0(5, 0);

-      case 12:

-         jjmatchedKind = 5;

-         return jjMoveNfa_0(5, 0);

-      case 13:

-         jjmatchedKind = 4;

-         return jjMoveNfa_0(5, 0);

-      case 32:

-         jjmatchedKind = 1;

-         return jjMoveNfa_0(5, 0);

-      case 33:

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

-      case 35:

-         jjmatchedKind = 30;

-         return jjMoveNfa_0(5, 0);

-      case 36:

-         jjmatchedKind = 17;

-         return jjMoveNfa_0(5, 0);

-      case 37:

-         jjmatchedKind = 18;

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

-      case 39:

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

-      case 40:

-         jjmatchedKind = 28;

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

-      case 41:

-         jjmatchedKind = 11;

-         return jjMoveNfa_0(5, 0);

-      case 42:

-         jjmatchedKind = 9;

-         return jjMoveNfa_0(5, 0);

-      case 43:

-         jjmatchedKind = 29;

-         return jjMoveNfa_0(5, 0);

-      case 44:

-         jjmatchedKind = 14;

-         return jjMoveNfa_0(5, 0);

-      case 45:

-         jjmatchedKind = 25;

-         return jjMoveNfa_0(5, 0);

-      case 46:

-         jjmatchedKind = 15;

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

-      case 47:

-         jjmatchedKind = 33;

-         return jjMoveNfa_0(5, 0);

-      case 58:

-         jjmatchedKind = 13;

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

-      case 59:

-         jjmatchedKind = 32;

-         return jjMoveNfa_0(5, 0);

-      case 60:

-         jjmatchedKind = 23;

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

-      case 61:

-         jjmatchedKind = 19;

-         return jjMoveNfa_0(5, 0);

-      case 62:

-         jjmatchedKind = 20;

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

-      case 63:

-         jjmatchedKind = 31;

-         return jjMoveNfa_0(5, 0);

-      case 64:

-         jjmatchedKind = 10;

-         return jjMoveNfa_0(5, 0);

-      case 65:

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

-      case 66:

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

-      case 67:

-         return jjMoveStringLiteralDfa1_0(0x1ffc000000000000L, 0x0L, 0x1fe00L, 0x0L);

-      case 68:

-         return jjMoveStringLiteralDfa1_0(0xe000000000000000L, 0x3L, 0x1fe0000L, 0x0L);

-      case 69:

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

-      case 70:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x3c0L, 0x38000000L, 0x0L);

-      case 71:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00L, 0x40000000L, 0x0L);

-      case 72:

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

-      case 73:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7fc000L, 0xf80000000L, 0x0L);

-      case 75:

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

-      case 76:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1800000L, 0x6000000000L, 0x0L);

-      case 77:

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

-      case 78:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xe8000000L, 0x3fe0000000000L, 0x0L);

-      case 79:

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

-      case 80:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xc000000000L, 0xff80000000000000L, 0x0L);

-      case 82:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x30000000000L, 0x0L, 0x1fffL);

-      case 83:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xfc0000000000L, 0x0L, 0x7fe000L);

-      case 84:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1f000000000000L, 0x0L, 0x7800000L);

-      case 85:

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

-      case 86:

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

-      case 87:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x3800000000000000L, 0x0L, 0x300000000L);

-      case 89:

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

-      case 90:

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

-      case 97:

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

-      case 98:

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

-      case 99:

-         return jjMoveStringLiteralDfa1_0(0x1ffc000000000000L, 0x0L, 0x1fe00L, 0x0L);

-      case 100:

-         return jjMoveStringLiteralDfa1_0(0xe000000000000000L, 0x3L, 0x1fe0000L, 0x0L);

-      case 101:

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

-      case 102:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x3c0L, 0x38000000L, 0x0L);

-      case 103:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00L, 0x40000000L, 0x0L);

-      case 104:

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

-      case 105:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x7fc000L, 0xf80000000L, 0x0L);

-      case 107:

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

-      case 108:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1800000L, 0x6000000000L, 0x0L);

-      case 109:

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

-      case 110:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xe8000000L, 0x3fe0000000000L, 0x0L);

-      case 111:

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

-      case 112:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xc000000000L, 0xff80000000000000L, 0x0L);

-      case 114:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x30000000000L, 0x0L, 0x1fffL);

-      case 115:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0xfc0000000000L, 0x0L, 0x7fe000L);

-      case 116:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x1f000000000000L, 0x0L, 0x7800000L);

-      case 117:

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

-      case 118:

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

-      case 119:

-         return jjMoveStringLiteralDfa1_0(0x0L, 0x3800000000000000L, 0x0L, 0x300000000L);

-      case 121:

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

-      case 122:

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

-      case 124:

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

-      case 126:

-         jjmatchedKind = 34;

-         return jjMoveNfa_0(5, 0);

-      default :

-         return jjMoveNfa_0(5, 0);

-   }

-}

-private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2, long active3)

-{

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 0);

-   }

-   switch(curChar)

-   {

-      case 43:

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

-      case 46:

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

-         {

-            jjmatchedKind = 16;

-            jjmatchedPos = 1;

-         }

-         break;

-      case 61:

-         if ((active0 & 0x100L) != 0L)

-         {

-            jjmatchedKind = 8;

-            jjmatchedPos = 1;

-         }

-         else if ((active0 & 0x200000L) != 0L)

-         {

-            jjmatchedKind = 21;

-            jjmatchedPos = 1;

-         }

-         else if ((active0 & 0x1000000L) != 0L)

-         {

-            jjmatchedKind = 24;

-            jjmatchedPos = 1;

-         }

-         else if ((active0 & 0x8000000L) != 0L)

-         {

-            jjmatchedKind = 27;

-            jjmatchedPos = 1;

-         }

-         break;

-      case 62:

-         if ((active0 & 0x4000000L) != 0L)

-         {

-            jjmatchedKind = 26;

-            jjmatchedPos = 1;

-         }

-         break;

-      case 65:

-         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x103000000002000L, active2, 0x180060000060000L, active3, 0xf0000003L);

-      case 66:

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

-      case 67:

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

-      case 68:

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

-      case 69:

-         return jjMoveStringLiteralDfa2_0(active0, 0xe001800000000000L, active1, 0x70000000040L, active2, 0x1000f80000L, active3, 0x40080e1fcL);

-      case 70:

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

-         {

-            jjmatchedKind = 79;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 96;

-            jjmatchedPos = 1;

-         }

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

-      case 72:

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

-      case 73:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2600100002800001L, active2, 0x208000008000038L, active3, 0x30f0000L);

-      case 76:

-         return jjMoveStringLiteralDfa2_0(active0, 0x30018000000000L, active1, 0x4L, active2, 0x400008050001040L, active3, 0L);

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 80;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 97;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x600000103e0008L, active2, 0xf82000000L, active3, 0x300000600L);

-      case 79:

-         if ((active1 & 0x8000000000000L) != 0L)

-         {

-            jjmatchedKind = 115;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0x3c0000000000000L, active1, 0x6d000480L, active2, 0x80021602100e080L, active3, 0x800001800L);

-      case 80:

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

-      case 81:

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

-      case 82:

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

-         {

-            jjmatchedKind = 99;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0xc00020000000000L, active1, 0x8000005000001902L, active2, 0xf010000000000000L, active3, 0xc000000L);

-      case 83:

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

-         {

-            jjmatchedKind = 44;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 86;

-            jjmatchedPos = 1;

-         }

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

-      case 84:

-         if ((active0 & 0x400000000000L) != 0L)

-         {

-            jjmatchedKind = 46;

-            jjmatchedPos = 1;

-         }

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

-      case 85:

-         return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000000L, active1, 0x808080000200L, active2, 0x20c00000010003L, active3, 0L);

-      case 86:

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

-      case 88:

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

-      case 89:

-         if ((active0 & 0x2000000000000L) != 0L)

-         {

-            jjmatchedKind = 49;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4010000000000000L, active2, 0x100L, active3, 0x400000L);

-      case 97:

-         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x103000000002000L, active2, 0x180060000060000L, active3, 0xf0000003L);

-      case 98:

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

-      case 99:

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

-      case 100:

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

-      case 101:

-         return jjMoveStringLiteralDfa2_0(active0, 0xe001800000000000L, active1, 0x70000000040L, active2, 0x1000f80000L, active3, 0x40080e1fcL);

-      case 102:

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

-         {

-            jjmatchedKind = 79;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 96;

-            jjmatchedPos = 1;

-         }

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

-      case 104:

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

-      case 105:

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2600100002800001L, active2, 0x208000008000038L, active3, 0x30f0000L);

-      case 108:

-         return jjMoveStringLiteralDfa2_0(active0, 0x30018000000000L, active1, 0x4L, active2, 0x400008050001040L, active3, 0L);

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 80;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 97;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x600000103e0008L, active2, 0xf82000000L, active3, 0x300000600L);

-      case 111:

-         if ((active1 & 0x8000000000000L) != 0L)

-         {

-            jjmatchedKind = 115;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0x3c0000000000000L, active1, 0x6d000480L, active2, 0x80021602100e080L, active3, 0x800001800L);

-      case 112:

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

-      case 113:

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

-      case 114:

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

-         {

-            jjmatchedKind = 99;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0xc00020000000000L, active1, 0x8000005000001902L, active2, 0xf010000000000000L, active3, 0xc000000L);

-      case 115:

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

-         {

-            jjmatchedKind = 44;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 86;

-            jjmatchedPos = 1;

-         }

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

-      case 116:

-         if ((active0 & 0x400000000000L) != 0L)

-         {

-            jjmatchedKind = 46;

-            jjmatchedPos = 1;

-         }

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

-      case 117:

-         return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000000L, active1, 0x808080000200L, active2, 0x20c00000010003L, active3, 0L);

-      case 118:

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

-      case 120:

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

-      case 121:

-         if ((active0 & 0x2000000000000L) != 0L)

-         {

-            jjmatchedKind = 49;

-            jjmatchedPos = 1;

-         }

-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4010000000000000L, active2, 0x100L, active3, 0x400000L);

-      case 124:

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

-         {

-            jjmatchedKind = 12;

-            jjmatchedPos = 1;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 1);

-}

-private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 1);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 1);

-   }

-   switch(curChar)

-   {

-      case 41:

-         if ((active0 & 0x400000L) != 0L)

-         {

-            jjmatchedKind = 22;

-            jjmatchedPos = 2;

-         }

-         break;

-      case 65:

-         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000000L, active1, 0x480000000800L, active2, 0x1003000002000e00L, active3, 0x400100004L);

-      case 66:

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

-      case 67:

-         if ((active0 & 0x200000000000L) != 0L)

-         {

-            jjmatchedKind = 45;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 147;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000000L, active1, 0x9000030L, active2, 0x80202004100000L, active3, 0x2008L);

-      case 68:

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

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 67;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 179;

-            jjmatchedPos = 2;

-         }

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

-      case 69:

-         return jjMoveStringLiteralDfa3_0(active0, 0x808000000000000L, active1, 0x5e04002000004000L, active2, 0x6040000000000000L, active3, 0L);

-      case 70:

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

-         {

-            jjmatchedKind = 196;

-            jjmatchedPos = 2;

-         }

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

-      case 71:

-         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x10000000000000L, active3, 0x10000L);

-      case 72:

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

-      case 73:

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

-      case 74:

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

-      case 75:

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

-      case 76:

-         if ((active0 & 0x8000000000L) != 0L)

-         {

-            jjmatchedKind = 39;

-            jjmatchedPos = 2;

-         }

-         else if ((active1 & 0x200000000000L) != 0L)

-         {

-            jjmatchedKind = 109;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0xc0000000000000L, active1, 0x100040080000000L, active2, 0x100080400000L, active3, 0L);

-      case 77:

-         return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0L, active2, 0xc00000002000L, active3, 0x38e0000L);

-      case 78:

-         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0x2000200L, active2, 0x1400800c038L, active3, 0x800000001L);

-      case 79:

-         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x4010001102L, active2, 0x500010c0L, active3, 0x8000000L);

-      case 80:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10000000000000L, active2, 0x200000000000000L, active3, 0x200000420L);

-      case 82:

-         if ((active1 & 0x80L) != 0L)

-         {

-            jjmatchedKind = 71;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x8000000000000000L, active2, 0x100000020010000L, active3, 0xf0204000L);

-      case 83:

-         return jjMoveStringLiteralDfa3_0(active0, 0x8004000000000000L, active1, 0x10000080005L, active2, 0xc00008100000000L, active3, 0x4000c0L);

-      case 84:

-         if ((active1 & 0x20000000L) != 0L)

-         {

-            jjmatchedKind = 93;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 161;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 181;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 207;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x2000000400300440L, active2, 0x60c00820103L, active3, 0x100L);

-      case 85:

-         return jjMoveStringLiteralDfa3_0(active0, 0x30000000000000L, active1, 0L, active2, 0x1000000L, active3, 0x4000000L);

-      case 86:

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

-      case 87:

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

-         {

-            jjmatchedKind = 193;

-            jjmatchedPos = 2;

-         }

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

-      case 89:

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

-         {

-            jjmatchedKind = 146;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 164;

-            jjmatchedPos = 2;

-         }

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

-      case 90:

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

-      case 97:

-         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000000L, active1, 0x480000000800L, active2, 0x1003000002000e00L, active3, 0x400100004L);

-      case 98:

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

-      case 99:

-         if ((active0 & 0x200000000000L) != 0L)

-         {

-            jjmatchedKind = 45;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 147;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000000L, active1, 0x9000030L, active2, 0x80202004100000L, active3, 0x2008L);

-      case 100:

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

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 67;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 179;

-            jjmatchedPos = 2;

-         }

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

-      case 101:

-         return jjMoveStringLiteralDfa3_0(active0, 0x808000000000000L, active1, 0x5e04002000004000L, active2, 0x6040000000000000L, active3, 0L);

-      case 102:

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

-         {

-            jjmatchedKind = 196;

-            jjmatchedPos = 2;

-         }

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

-      case 103:

-         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x10000000000000L, active3, 0x10000L);

-      case 104:

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

-      case 105:

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

-      case 106:

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

-      case 107:

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

-      case 108:

-         if ((active0 & 0x8000000000L) != 0L)

-         {

-            jjmatchedKind = 39;

-            jjmatchedPos = 2;

-         }

-         else if ((active1 & 0x200000000000L) != 0L)

-         {

-            jjmatchedKind = 109;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0xc0000000000000L, active1, 0x100040080000000L, active2, 0x100080400000L, active3, 0L);

-      case 109:

-         return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0L, active2, 0xc00000002000L, active3, 0x38e0000L);

-      case 110:

-         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0x2000200L, active2, 0x1400800c038L, active3, 0x800000001L);

-      case 111:

-         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x4010001102L, active2, 0x500010c0L, active3, 0x8000000L);

-      case 112:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10000000000000L, active2, 0x200000000000000L, active3, 0x200000420L);

-      case 114:

-         if ((active1 & 0x80L) != 0L)

-         {

-            jjmatchedKind = 71;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x8000000000000000L, active2, 0x100000020010000L, active3, 0xf0204000L);

-      case 115:

-         return jjMoveStringLiteralDfa3_0(active0, 0x8004000000000000L, active1, 0x10000080005L, active2, 0xc00008100000000L, active3, 0x4000c0L);

-      case 116:

-         if ((active1 & 0x20000000L) != 0L)

-         {

-            jjmatchedKind = 93;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 161;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 181;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 207;

-            jjmatchedPos = 2;

-         }

-         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x2000000400300440L, active2, 0x60c00820103L, active3, 0x100L);

-      case 117:

-         return jjMoveStringLiteralDfa3_0(active0, 0x30000000000000L, active1, 0L, active2, 0x1000000L, active3, 0x4000000L);

-      case 118:

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

-      case 119:

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

-         {

-            jjmatchedKind = 193;

-            jjmatchedPos = 2;

-         }

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

-      case 121:

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

-         {

-            jjmatchedKind = 146;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 164;

-            jjmatchedPos = 2;

-         }

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

-      case 122:

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

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 2);

-}

-private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 2);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 2);

-   }

-   switch(curChar)

-   {

-      case 39:

-         if ((active1 & 0x10000000L) != 0L)

-         {

-            jjmatchedKind = 92;

-            jjmatchedPos = 3;

-         }

-         break;

-      case 65:

-         return jjMoveStringLiteralDfa4_0(active0, 0x4840000000000000L, active1, 0x8081000040000000L, active2, 0x110082018000038L, active3, 0L);

-      case 66:

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

-         {

-            jjmatchedKind = 134;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 140;

-            jjmatchedPos = 3;

-         }

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

-      case 67:

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

-         {

-            jjmatchedKind = 63;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x4000000240L, active2, 0x2000000020000000L, active3, 0x30000000L);

-      case 69:

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

-         {

-            jjmatchedKind = 50;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 66;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 87;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 90;

-            jjmatchedPos = 3;

-         }

-         else if ((active1 & 0x100000000000L) != 0L)

-         {

-            jjmatchedKind = 108;

-            jjmatchedPos = 3;

-         }

-         else if ((active1 & 0x10000000000000L) != 0L)

-         {

-            jjmatchedKind = 116;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 136;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 145;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 216;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 227;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x410001e0010L, active2, 0x204800c04c00000L, active3, 0x2000000L);

-      case 71:

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

-         {

-            jjmatchedKind = 166;

-            jjmatchedPos = 3;

-         }

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

-      case 72:

-         if ((active1 & 0x2000000000000000L) != 0L)

-         {

-            jjmatchedKind = 125;

-            jjmatchedPos = 3;

-         }

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

-      case 73:

-         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x400002000L, active2, 0x800020080300000L, active3, 0x204800L);

-      case 75:

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

-         {

-            jjmatchedKind = 88;

-            jjmatchedPos = 3;

-         }

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

-      case 76:

-         if ((active1 & 0x80000000L) != 0L)

-         {

-            jjmatchedKind = 95;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 194;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000000L, active1, 0x2008000000020L, active2, 0x8000000084L, active3, 0x100020L);

-      case 77:

-         if ((active1 & 0x100L) != 0L)

-         {

-            jjmatchedKind = 72;

-            jjmatchedPos = 3;

-         }

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

-      case 78:

-         if ((active1 & 0x4000000000000L) != 0L)

-         {

-            jjmatchedKind = 114;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 123;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0x4800L, active2, 0L, active3, 0x10000L);

-      case 79:

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

-         {

-            jjmatchedKind = 74;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 85;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20030008000000L, active2, 0x300000000002L, active3, 0x2008L);

-      case 80:

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

-         {

-            jjmatchedKind = 65;

-            jjmatchedPos = 3;

-         }

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

-      case 81:

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

-      case 82:

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

-         {

-            jjmatchedKind = 137;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 226;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1000482000000000L, active2, 0x43000000010c00L, active3, 0x40000000L);

-      case 83:

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

-         {

-            jjmatchedKind = 201;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 202;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 204;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 224;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 225;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x1430000000000000L, active1, 0x4000000000000000L, active2, 0x400000000000c000L, active3, 0x4000000L);

-      case 84:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000001L, active2, 0x10100000000L, active3, 0x40L);

-      case 85:

-         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L, active1, 0x100000002001000L, active2, 0x40000000000L, active3, 0x180L);

-      case 87:

-         if ((active1 & 0x200000000000000L) != 0L)

-         {

-            jjmatchedKind = 121;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x400000000000000L, active2, 0L, active3, 0x8000000L);

-      case 89:

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

-      case 95:

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

-      case 97:

-         return jjMoveStringLiteralDfa4_0(active0, 0x4840000000000000L, active1, 0x8081000040000000L, active2, 0x110082018000038L, active3, 0L);

-      case 98:

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

-         {

-            jjmatchedKind = 134;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 140;

-            jjmatchedPos = 3;

-         }

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

-      case 99:

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

-         {

-            jjmatchedKind = 63;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x4000000240L, active2, 0x2000000020000000L, active3, 0x30000000L);

-      case 101:

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

-         {

-            jjmatchedKind = 50;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 66;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 87;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 90;

-            jjmatchedPos = 3;

-         }

-         else if ((active1 & 0x100000000000L) != 0L)

-         {

-            jjmatchedKind = 108;

-            jjmatchedPos = 3;

-         }

-         else if ((active1 & 0x10000000000000L) != 0L)

-         {

-            jjmatchedKind = 116;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 136;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 145;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 216;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 227;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x410001e0010L, active2, 0x204800c04c00000L, active3, 0x2000000L);

-      case 103:

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

-         {

-            jjmatchedKind = 166;

-            jjmatchedPos = 3;

-         }

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

-      case 104:

-         if ((active1 & 0x2000000000000000L) != 0L)

-         {

-            jjmatchedKind = 125;

-            jjmatchedPos = 3;

-         }

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

-      case 105:

-         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x400002000L, active2, 0x800020080300000L, active3, 0x204800L);

-      case 107:

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

-         {

-            jjmatchedKind = 88;

-            jjmatchedPos = 3;

-         }

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

-      case 108:

-         if ((active1 & 0x80000000L) != 0L)

-         {

-            jjmatchedKind = 95;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 194;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000000L, active1, 0x2008000000020L, active2, 0x8000000084L, active3, 0x100020L);

-      case 109:

-         if ((active1 & 0x100L) != 0L)

-         {

-            jjmatchedKind = 72;

-            jjmatchedPos = 3;

-         }

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

-      case 110:

-         if ((active1 & 0x4000000000000L) != 0L)

-         {

-            jjmatchedKind = 114;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 123;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0x4800L, active2, 0L, active3, 0x10000L);

-      case 111:

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

-         {

-            jjmatchedKind = 74;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 85;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20030008000000L, active2, 0x300000000002L, active3, 0x2008L);

-      case 112:

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

-         {

-            jjmatchedKind = 65;

-            jjmatchedPos = 3;

-         }

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

-      case 113:

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

-      case 114:

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

-         {

-            jjmatchedKind = 137;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 226;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1000482000000000L, active2, 0x43000000010c00L, active3, 0x40000000L);

-      case 115:

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

-         {

-            jjmatchedKind = 201;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 202;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 204;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 224;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 225;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x1430000000000000L, active1, 0x4000000000000000L, active2, 0x400000000000c000L, active3, 0x4000000L);

-      case 116:

-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000001L, active2, 0x10100000000L, active3, 0x40L);

-      case 117:

-         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L, active1, 0x100000002001000L, active2, 0x40000000000L, active3, 0x180L);

-      case 119:

-         if ((active1 & 0x200000000000000L) != 0L)

-         {

-            jjmatchedKind = 121;

-            jjmatchedPos = 3;

-         }

-         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x400000000000000L, active2, 0L, active3, 0x8000000L);

-      case 121:

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

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 3);

-}

-private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 3);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 3);

-   }

-   switch(curChar)

-   {

-      case 39:

-         if ((active1 & 0x4000000000000000L) != 0L)

-         {

-            jjmatchedKind = 126;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 65:

-         return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000000L, active1, 0L, active2, 0x8080008140000400L, active3, 0x40004020L);

-      case 66:

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

-         {

-            jjmatchedKind = 172;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 67:

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

-      case 68:

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

-         {

-            jjmatchedKind = 203;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 69:

-         if ((active0 & 0x40000000000L) != 0L)

-         {

-            jjmatchedKind = 42;

-            jjmatchedPos = 4;

-         }

-         else if ((active1 & 0x80000000000L) != 0L)

-         {

-            jjmatchedKind = 107;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 113;

-            jjmatchedPos = 4;

-         }

-         else if ((active1 & 0x1000000000000000L) != 0L)

-         {

-            jjmatchedKind = 124;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 130;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 157;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 192;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0x201000000000000L, active1, 0x100004000000000L, active2, 0x4000400000010080L, active3, 0L);

-      case 70:

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

-      case 71:

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

-      case 72:

-         if ((active0 & 0x400000000000000L) != 0L)

-         {

-            jjmatchedKind = 58;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 70;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 168;

-            jjmatchedPos = 4;

-         }

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

-      case 73:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8040000001L, active2, 0x2400000000002001L, active3, 0x88000000L);

-      case 75:

-         if ((active0 & 0x8000000000000L) != 0L)

-         {

-            jjmatchedKind = 51;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 76:

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

-         {

-            jjmatchedKind = 155;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 165;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x22000000000L, active2, 0x300000003000000L, active3, 0x1e0080L);

-      case 77:

-         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x8000000L, active2, 0x1000000000100000L, active3, 0L);

-      case 78:

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

-         {

-            jjmatchedKind = 47;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 117;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000L, active2, 0x10000080200002L, active3, 0x202000L);

-      case 79:

-         return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000000L, active1, 0x400000000L, active2, 0x20000000000L, active3, 0x800000L);

-      case 80:

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

-         {

-            jjmatchedKind = 76;

-            jjmatchedPos = 4;

-         }

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

-      case 82:

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

-         {

-            jjmatchedKind = 40;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 100;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 171;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x180000L, active2, 0x840800800038L, active3, 0x400148L);

-      case 83:

-         if ((active1 & 0x2000000L) != 0L)

-         {

-            jjmatchedKind = 89;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 122;

-            jjmatchedPos = 4;

-         }

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

-      case 84:

-         if ((active1 & 0x800L) != 0L)

-         {

-            jjmatchedKind = 75;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 110;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 156;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 218;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0x830020000000000L, active1, 0x80000000004200L, active2, 0x80000000040c000L, active3, 0x10000L);

-      case 85:

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

-      case 88:

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

-         {

-            jjmatchedKind = 81;

-            jjmatchedPos = 4;

-         }

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

-      case 89:

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

-         {

-            jjmatchedKind = 127;

-            jjmatchedPos = 4;

-         }

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

-      case 97:

-         return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000000L, active1, 0L, active2, 0x8080008140000400L, active3, 0x40004020L);

-      case 98:

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

-         {

-            jjmatchedKind = 172;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 99:

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

-      case 100:

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

-         {

-            jjmatchedKind = 203;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 101:

-         if ((active0 & 0x40000000000L) != 0L)

-         {

-            jjmatchedKind = 42;

-            jjmatchedPos = 4;

-         }

-         else if ((active1 & 0x80000000000L) != 0L)

-         {

-            jjmatchedKind = 107;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 113;

-            jjmatchedPos = 4;

-         }

-         else if ((active1 & 0x1000000000000000L) != 0L)

-         {

-            jjmatchedKind = 124;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 130;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 157;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 192;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0x201000000000000L, active1, 0x100004000000000L, active2, 0x4000400000010080L, active3, 0L);

-      case 102:

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

-      case 103:

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

-      case 104:

-         if ((active0 & 0x400000000000000L) != 0L)

-         {

-            jjmatchedKind = 58;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 70;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 168;

-            jjmatchedPos = 4;

-         }

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

-      case 105:

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8040000001L, active2, 0x2400000000002001L, active3, 0x88000000L);

-      case 107:

-         if ((active0 & 0x8000000000000L) != 0L)

-         {

-            jjmatchedKind = 51;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 108:

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

-         {

-            jjmatchedKind = 155;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 165;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x22000000000L, active2, 0x300000003000000L, active3, 0x1e0080L);

-      case 109:

-         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x8000000L, active2, 0x1000000000100000L, active3, 0L);

-      case 110:

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

-         {

-            jjmatchedKind = 47;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 117;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000L, active2, 0x10000080200002L, active3, 0x202000L);

-      case 111:

-         return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000000L, active1, 0x400000000L, active2, 0x20000000000L, active3, 0x800000L);

-      case 112:

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

-         {

-            jjmatchedKind = 76;

-            jjmatchedPos = 4;

-         }

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

-      case 114:

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

-         {

-            jjmatchedKind = 40;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 100;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 171;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x180000L, active2, 0x840800800038L, active3, 0x400148L);

-      case 115:

-         if ((active1 & 0x2000000L) != 0L)

-         {

-            jjmatchedKind = 89;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 122;

-            jjmatchedPos = 4;

-         }

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

-      case 116:

-         if ((active1 & 0x800L) != 0L)

-         {

-            jjmatchedKind = 75;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 110;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 156;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 218;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0x830020000000000L, active1, 0x80000000004200L, active2, 0x80000000040c000L, active3, 0x10000L);

-      case 117:

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

-      case 120:

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

-         {

-            jjmatchedKind = 81;

-            jjmatchedPos = 4;

-         }

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

-      case 121:

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

-         {

-            jjmatchedKind = 127;

-            jjmatchedPos = 4;

-         }

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

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 4);

-}

-private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 4);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 4);

-   }

-   switch(curChar)

-   {

-      case 65:

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

-         {

-            jjmatchedKind = 188;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000000000L, active2, 0x40000104080L, active3, 0x30000000L);

-      case 66:

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

-      case 67:

-         if ((active1 & 0x8000000000L) != 0L)

-         {

-            jjmatchedKind = 103;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0L, active2, 0x400L, active3, 0x20L);

-      case 68:

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

-         {

-            jjmatchedKind = 128;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 195;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 205;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 219;

-            jjmatchedPos = 5;

-         }

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

-      case 69:

-         if ((active0 & 0x800000000000000L) != 0L)

-         {

-            jjmatchedKind = 59;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 105;

-            jjmatchedPos = 5;

-         }

-         else if ((active1 & 0x40000000000000L) != 0L)

-         {

-            jjmatchedKind = 118;

-            jjmatchedPos = 5;

-         }

-         else if ((active1 & 0x80000000000000L) != 0L)

-         {

-            jjmatchedKind = 119;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 150;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 152;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 153;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 159;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x131000000000000L, active1, 0x40000L, active2, 0x400200800L, active3, 0x4e0000L);

-      case 71:

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

-         {

-            jjmatchedKind = 77;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 213;

-            jjmatchedPos = 5;

-         }

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

-      case 72:

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

-      case 73:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4200L, active2, 0xa10800000000000L, active3, 0x100040L);

-      case 76:

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

-         {

-            jjmatchedKind = 158;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x140000000000000L, active3, 0x4000L);

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 98;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 200;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x1L, active2, 0x400020100010000L, active3, 0x80000000L);

-      case 79:

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

-      case 80:

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

-      case 82:

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

-         {

-            jjmatchedKind = 60;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 174;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000000L, active1, 0x10000000000L, active2, 0xc000000000008000L, active3, 0x800000L);

-      case 83:

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

-         {

-            jjmatchedKind = 120;

-            jjmatchedPos = 5;

-         }

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

-      case 84:

-         if ((active1 & 0x80000L) != 0L)

-         {

-            jjmatchedKind = 83;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 94;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 106;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 141;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 178;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x40000000000000L, active1, 0x1000000000010L, active2, 0x4000000L, active3, 0x2000080L);

-      case 86:

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

-      case 89:

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

-         {

-            jjmatchedKind = 173;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 222;

-            jjmatchedPos = 5;

-         }

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

-      case 97:

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

-         {

-            jjmatchedKind = 188;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000000000L, active2, 0x40000104080L, active3, 0x30000000L);

-      case 98:

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

-      case 99:

-         if ((active1 & 0x8000000000L) != 0L)

-         {

-            jjmatchedKind = 103;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0L, active2, 0x400L, active3, 0x20L);

-      case 100:

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

-         {

-            jjmatchedKind = 128;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 195;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 205;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 219;

-            jjmatchedPos = 5;

-         }

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

-      case 101:

-         if ((active0 & 0x800000000000000L) != 0L)

-         {

-            jjmatchedKind = 59;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 105;

-            jjmatchedPos = 5;

-         }

-         else if ((active1 & 0x40000000000000L) != 0L)

-         {

-            jjmatchedKind = 118;

-            jjmatchedPos = 5;

-         }

-         else if ((active1 & 0x80000000000000L) != 0L)

-         {

-            jjmatchedKind = 119;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 150;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 152;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 153;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 159;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x131000000000000L, active1, 0x40000L, active2, 0x400200800L, active3, 0x4e0000L);

-      case 103:

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

-         {

-            jjmatchedKind = 77;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 213;

-            jjmatchedPos = 5;

-         }

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

-      case 104:

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

-      case 105:

-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4200L, active2, 0xa10800000000000L, active3, 0x100040L);

-      case 108:

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

-         {

-            jjmatchedKind = 158;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x140000000000000L, active3, 0x4000L);

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 98;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 200;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x1L, active2, 0x400020100010000L, active3, 0x80000000L);

-      case 111:

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

-      case 112:

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

-      case 114:

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

-         {

-            jjmatchedKind = 60;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 174;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000000L, active1, 0x10000000000L, active2, 0xc000000000008000L, active3, 0x800000L);

-      case 115:

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

-         {

-            jjmatchedKind = 120;

-            jjmatchedPos = 5;

-         }

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

-      case 116:

-         if ((active1 & 0x80000L) != 0L)

-         {

-            jjmatchedKind = 83;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 94;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 106;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 141;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 178;

-            jjmatchedPos = 5;

-         }

-         return jjMoveStringLiteralDfa6_0(active0, 0x40000000000000L, active1, 0x1000000000010L, active2, 0x4000000L, active3, 0x2000080L);

-      case 118:

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

-      case 121:

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

-         {

-            jjmatchedKind = 173;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 222;

-            jjmatchedPos = 5;

-         }

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

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 5);

-}

-private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 5);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 5);

-   }

-   switch(curChar)

-   {

-      case 65:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x3020800008000L, active3, 0x2800000L);

-      case 67:

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

-         {

-            jjmatchedKind = 175;

-            jjmatchedPos = 6;

-         }

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000001L, active2, 0L, active3, 0x40L);

-      case 69:

-         if ((active0 & 0x2000000000000000L) != 0L)

-         {

-            jjmatchedKind = 61;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 111;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 183;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 197;

-            jjmatchedPos = 6;

-         }

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

-      case 70:

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

-      case 71:

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

-         {

-            jjmatchedKind = 223;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 72:

-         if ((active0 & 0x40000000000000L) != 0L)

-         {

-            jjmatchedKind = 54;

-            jjmatchedPos = 6;

-         }

-         else if ((active1 & 0x1000000000000L) != 0L)

-         {

-            jjmatchedKind = 112;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 73:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x30L, active2, 0x2000000004800000L, active3, 0L);

-      case 76:

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

-         {

-            jjmatchedKind = 148;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 170;

-            jjmatchedPos = 6;

-         }

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

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 48;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 135;

-            jjmatchedPos = 6;

-         }

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

-      case 79:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200L, active2, 0x40000000000000L, active3, 0L);

-      case 80:

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

-      case 82:

-         if ((active0 & 0x20000000000000L) != 0L)

-         {

-            jjmatchedKind = 53;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 149;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 162;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 221;

-            jjmatchedPos = 6;

-         }

-         return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L, active1, 0x8000000L, active2, 0L, active3, 0x10000000L);

-      case 83:

-         if ((active0 & 0x80000000000000L) != 0L)

-         {

-            jjmatchedKind = 55;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 82;

-            jjmatchedPos = 6;

-         }

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

-      case 84:

-         if ((active0 & 0x200000000000000L) != 0L)

-         {

-            jjmatchedKind = 57;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 62;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 139;

-            jjmatchedPos = 6;

-         }

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

-      case 85:

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

-      case 86:

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

-      case 89:

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

-         {

-            jjmatchedKind = 191;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 90:

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

-      case 95:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x38L, active3, 0xe0080L);

-      case 97:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x3020800008000L, active3, 0x2800000L);

-      case 99:

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

-         {

-            jjmatchedKind = 175;

-            jjmatchedPos = 6;

-         }

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000001L, active2, 0L, active3, 0x40L);

-      case 101:

-         if ((active0 & 0x2000000000000000L) != 0L)

-         {

-            jjmatchedKind = 61;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 111;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 183;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 197;

-            jjmatchedPos = 6;

-         }

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

-      case 102:

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

-      case 103:

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

-         {

-            jjmatchedKind = 223;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 104:

-         if ((active0 & 0x40000000000000L) != 0L)

-         {

-            jjmatchedKind = 54;

-            jjmatchedPos = 6;

-         }

-         else if ((active1 & 0x1000000000000L) != 0L)

-         {

-            jjmatchedKind = 112;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 105:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x30L, active2, 0x2000000004800000L, active3, 0L);

-      case 108:

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

-         {

-            jjmatchedKind = 148;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 170;

-            jjmatchedPos = 6;

-         }

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

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 48;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 135;

-            jjmatchedPos = 6;

-         }

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

-      case 111:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200L, active2, 0x40000000000000L, active3, 0L);

-      case 112:

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

-      case 114:

-         if ((active0 & 0x20000000000000L) != 0L)

-         {

-            jjmatchedKind = 53;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 149;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 162;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 221;

-            jjmatchedPos = 6;

-         }

-         return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L, active1, 0x8000000L, active2, 0L, active3, 0x10000000L);

-      case 115:

-         if ((active0 & 0x80000000000000L) != 0L)

-         {

-            jjmatchedKind = 55;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 82;

-            jjmatchedPos = 6;

-         }

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

-      case 116:

-         if ((active0 & 0x200000000000000L) != 0L)

-         {

-            jjmatchedKind = 57;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 62;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 139;

-            jjmatchedPos = 6;

-         }

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

-      case 117:

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

-      case 118:

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

-      case 121:

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

-         {

-            jjmatchedKind = 191;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 122:

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

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 6);

-}

-private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 6);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 6);

-   }

-   switch(curChar)

-   {

-      case 50:

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

-         {

-            jjmatchedKind = 220;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 65:

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

-      case 67:

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

-      case 68:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x20000L);

-      case 69:

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

-         {

-            jjmatchedKind = 41;

-            jjmatchedPos = 7;

-         }

-         else if ((active1 & 0x10000000000L) != 0L)

-         {

-            jjmatchedKind = 104;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 187;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 190;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 208;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000000L, active2, 0x600000000000400L, active3, 0L);

-      case 70:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x40000L);

-      case 73:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000L, active2, 0x100008020L, active3, 0x80000L);

-      case 76:

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

-         {

-            jjmatchedKind = 163;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 167;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 169;

-            jjmatchedPos = 7;

-         }

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

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 73;

-            jjmatchedPos = 7;

-         }

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

-      case 79:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L, active2, 0x2000000004000002L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 177;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000000000L, active2, 0x1000000000000L, active3, 0x800000L);

-      case 83:

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

-         {

-            jjmatchedKind = 52;

-            jjmatchedPos = 7;

-         }

-         else if ((active0 & 0x100000000000000L) != 0L)

-         {

-            jjmatchedKind = 56;

-            jjmatchedPos = 7;

-         }

-         else if ((active1 & 0x2000000000L) != 0L)

-         {

-            jjmatchedKind = 101;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 84:

-         if ((active1 & 0x1L) != 0L)

-         {

-            jjmatchedKind = 64;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 142;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 212;

-            jjmatchedPos = 7;

-         }

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

-      case 86:

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

-      case 87:

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

-         {

-            jjmatchedKind = 182;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 89:

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

-      case 95:

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

-      case 97:

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

-      case 99:

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

-      case 100:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x20000L);

-      case 101:

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

-         {

-            jjmatchedKind = 41;

-            jjmatchedPos = 7;

-         }

-         else if ((active1 & 0x10000000000L) != 0L)

-         {

-            jjmatchedKind = 104;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 187;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 190;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 208;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000000L, active2, 0x600000000000400L, active3, 0L);

-      case 102:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x40000L);

-      case 105:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000L, active2, 0x100008020L, active3, 0x80000L);

-      case 108:

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

-         {

-            jjmatchedKind = 163;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 167;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 169;

-            jjmatchedPos = 7;

-         }

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

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 73;

-            jjmatchedPos = 7;

-         }

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

-      case 111:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L, active2, 0x2000000004000002L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 177;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000000000L, active2, 0x1000000000000L, active3, 0x800000L);

-      case 115:

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

-         {

-            jjmatchedKind = 52;

-            jjmatchedPos = 7;

-         }

-         else if ((active0 & 0x100000000000000L) != 0L)

-         {

-            jjmatchedKind = 56;

-            jjmatchedPos = 7;

-         }

-         else if ((active1 & 0x2000000000L) != 0L)

-         {

-            jjmatchedKind = 101;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 116:

-         if ((active1 & 0x1L) != 0L)

-         {

-            jjmatchedKind = 64;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 142;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 212;

-            jjmatchedPos = 7;

-         }

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

-      case 118:

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

-      case 119:

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

-         {

-            jjmatchedKind = 182;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 121:

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

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 7);

-}

-private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 7);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 7);

-   }

-   switch(curChar)

-   {

-      case 50:

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

-         {

-            jjmatchedKind = 176;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 65:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x100000000L, active3, 0x80L);

-      case 68:

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

-         {

-            jjmatchedKind = 185;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 69:

-         if ((active1 & 0x20L) != 0L)

-         {

-            jjmatchedKind = 69;

-            jjmatchedPos = 8;

-         }

-         else if ((active1 & 0x4000000000L) != 0L)

-         {

-            jjmatchedKind = 102;

-            jjmatchedPos = 8;

-         }

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

-      case 71:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x400000000000000L, active3, 0L);

-      case 73:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x800000L, active3, 0L);

-      case 76:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10L, active3, 0x40000L);

-      case 78:

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

-         {

-            jjmatchedKind = 68;

-            jjmatchedPos = 8;

-         }

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

-         {

-            jjmatchedKind = 189;

-            jjmatchedPos = 8;

-         }

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x4008020L, active3, 0x80000L);

-      case 79:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x8L, active3, 0x20000L);

-      case 80:

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

-         {

-            jjmatchedKind = 217;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 82:

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

-         {

-            jjmatchedKind = 138;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 83:

-         return jjMoveStringLiteralDfa9_0(active1, 0x8000000L, active2, 0L, active3, 0L);

-      case 84:

-         if ((active1 & 0x100000L) != 0L)

-         {

-            jjmatchedKind = 84;

-            jjmatchedPos = 8;

-         }

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);

-      case 85:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10002L, active3, 0x400000L);

-      case 89:

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

-         {

-            jjmatchedKind = 215;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 95:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x100000000000000L, active3, 0x4040L);

-      case 97:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x100000000L, active3, 0x80L);

-      case 100:

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

-         {

-            jjmatchedKind = 185;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 101:

-         if ((active1 & 0x20L) != 0L)

-         {

-            jjmatchedKind = 69;

-            jjmatchedPos = 8;

-         }

-         else if ((active1 & 0x4000000000L) != 0L)

-         {

-            jjmatchedKind = 102;

-            jjmatchedPos = 8;

-         }

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

-      case 103:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x400000000000000L, active3, 0L);

-      case 105:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x800000L, active3, 0L);

-      case 108:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10L, active3, 0x40000L);

-      case 110:

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

-         {

-            jjmatchedKind = 68;

-            jjmatchedPos = 8;

-         }

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

-         {

-            jjmatchedKind = 189;

-            jjmatchedPos = 8;

-         }

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x4008020L, active3, 0x80000L);

-      case 111:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x8L, active3, 0x20000L);

-      case 112:

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

-         {

-            jjmatchedKind = 217;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 114:

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

-         {

-            jjmatchedKind = 138;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 115:

-         return jjMoveStringLiteralDfa9_0(active1, 0x8000000L, active2, 0L, active3, 0L);

-      case 116:

-         if ((active1 & 0x100000L) != 0L)

-         {

-            jjmatchedKind = 84;

-            jjmatchedPos = 8;

-         }

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);

-      case 117:

-         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10002L, active3, 0x400000L);

-      case 121:

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

-         {

-            jjmatchedKind = 215;

-            jjmatchedPos = 8;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 8);

-}

-private int jjMoveStringLiteralDfa9_0(long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 8);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 8);

-   }

-   switch(curChar)

-   {

-      case 66:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x100000000L, active3, 0L);

-      case 67:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x80L);

-      case 68:

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

-         {

-            jjmatchedKind = 78;

-            jjmatchedPos = 9;

-         }

-         break;

-      case 69:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x500000000000000L, active3, 0L);

-      case 73:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);

-      case 79:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10L, active3, 0x40000L);

-      case 82:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x404040L);

-      case 83:

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

-         {

-            jjmatchedKind = 91;

-            jjmatchedPos = 9;

-         }

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x810002L, active3, 0L);

-      case 84:

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

-         {

-            jjmatchedKind = 143;

-            jjmatchedPos = 9;

-         }

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x20L, active3, 0x80000L);

-      case 85:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x8L, active3, 0x20000L);

-      case 95:

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

-      case 98:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x100000000L, active3, 0L);

-      case 99:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x80L);

-      case 100:

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

-         {

-            jjmatchedKind = 78;

-            jjmatchedPos = 9;

-         }

-         break;

-      case 101:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x500000000000000L, active3, 0L);

-      case 105:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);

-      case 111:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10L, active3, 0x40000L);

-      case 114:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x404040L);

-      case 115:

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

-         {

-            jjmatchedKind = 91;

-            jjmatchedPos = 9;

-         }

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x810002L, active3, 0L);

-      case 116:

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

-         {

-            jjmatchedKind = 143;

-            jjmatchedPos = 9;

-         }

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x20L, active3, 0x80000L);

-      case 117:

-         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x8L, active3, 0x20000L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 9);

-}

-private int jjMoveStringLiteralDfa10_0(long old1, long active1, long old2, long active2, long old3, long active3)

-{

-   if (((active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 9);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 9);

-   }

-   switch(curChar)

-   {

-      case 65:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x40000L);

-      case 66:

-         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x20000L);

-      case 69:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10020L, active3, 0x84040L);

-      case 72:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x80L);

-      case 73:

-         return jjMoveStringLiteralDfa11_0(active2, 0x4000000L, active3, 0L);

-      case 76:

-         return jjMoveStringLiteralDfa11_0(active2, 0x100000000L, active3, 0L);

-      case 78:

-         return jjMoveStringLiteralDfa11_0(active2, 0x100000000000000L, active3, 0L);

-      case 79:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 186;

-            jjmatchedPos = 10;

-         }

-         break;

-      case 83:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x400000L);

-      case 84:

-         return jjMoveStringLiteralDfa11_0(active2, 0x800000L, active3, 0L);

-      case 95:

-         return jjMoveStringLiteralDfa11_0(active2, 0x2L, active3, 0L);

-      case 97:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x40000L);

-      case 98:

-         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x20000L);

-      case 101:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10020L, active3, 0x84040L);

-      case 104:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x80L);

-      case 105:

-         return jjMoveStringLiteralDfa11_0(active2, 0x4000000L, active3, 0L);

-      case 108:

-         return jjMoveStringLiteralDfa11_0(active2, 0x100000000L, active3, 0L);

-      case 110:

-         return jjMoveStringLiteralDfa11_0(active2, 0x100000000000000L, active3, 0L);

-      case 111:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 186;

-            jjmatchedPos = 10;

-         }

-         break;

-      case 115:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x400000L);

-      case 116:

-         return jjMoveStringLiteralDfa11_0(active2, 0x800000L, active3, 0L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 10);

-}

-private int jjMoveStringLiteralDfa11_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 10);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 10);

-   }

-   switch(curChar)

-   {

-      case 65:

-         return jjMoveStringLiteralDfa12_0(active2, 0x100000000000000L, active3, 0L);

-      case 69:

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

-         {

-            jjmatchedKind = 160;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 199;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 70:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x40L);

-      case 71:

-         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x80000L);

-      case 73:

-         return jjMoveStringLiteralDfa12_0(active2, 0x800000L, active3, 0L);

-      case 76:

-         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x20000L);

-      case 78:

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

-         {

-            jjmatchedKind = 180;

-            jjmatchedPos = 11;

-         }

-         return jjMoveStringLiteralDfa12_0(active2, 0x4000000L, active3, 0L);

-      case 79:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x400000L);

-      case 82:

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

-         {

-            jjmatchedKind = 144;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 84:

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

-         {

-            jjmatchedKind = 132;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 210;

-            jjmatchedPos = 11;

-         }

-         return jjMoveStringLiteralDfa12_0(active2, 0x2L, active3, 0L);

-      case 85:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x4000L);

-      case 97:

-         return jjMoveStringLiteralDfa12_0(active2, 0x100000000000000L, active3, 0L);

-      case 101:

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

-         {

-            jjmatchedKind = 160;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 199;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 102:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x40L);

-      case 103:

-         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x80000L);

-      case 105:

-         return jjMoveStringLiteralDfa12_0(active2, 0x800000L, active3, 0L);

-      case 108:

-         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x20000L);

-      case 110:

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

-         {

-            jjmatchedKind = 180;

-            jjmatchedPos = 11;

-         }

-         return jjMoveStringLiteralDfa12_0(active2, 0x4000000L, active3, 0L);

-      case 111:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x400000L);

-      case 114:

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

-         {

-            jjmatchedKind = 144;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 116:

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

-         {

-            jjmatchedKind = 132;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 210;

-            jjmatchedPos = 11;

-         }

-         return jjMoveStringLiteralDfa12_0(active2, 0x2L, active3, 0L);

-      case 117:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x4000L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 11);

-}

-private int jjMoveStringLiteralDfa12_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 11);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 11);

-   }

-   switch(curChar)

-   {

-      case 66:

-         return jjMoveStringLiteralDfa13_0(active2, 0x100000000000000L, active3, 0L);

-      case 67:

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

-         {

-            jjmatchedKind = 151;

-            jjmatchedPos = 12;

-         }

-         break;

-      case 69:

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

-         {

-            jjmatchedKind = 131;

-            jjmatchedPos = 12;

-         }

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

-         {

-            jjmatchedKind = 209;

-            jjmatchedPos = 12;

-         }

-         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x80040L);

-      case 73:

-         return jjMoveStringLiteralDfa13_0(active2, 0x4000000L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 214;

-            jjmatchedPos = 12;

-         }

-         return jjMoveStringLiteralDfa13_0(active2, 0x2L, active3, 0L);

-      case 83:

-         return jjMoveStringLiteralDfa13_0(active2, 0L, active3, 0x4000L);

-      case 98:

-         return jjMoveStringLiteralDfa13_0(active2, 0x100000000000000L, active3, 0L);

-      case 99:

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

-         {

-            jjmatchedKind = 151;

-            jjmatchedPos = 12;

-         }

-         break;

-      case 101:

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

-         {

-            jjmatchedKind = 131;

-            jjmatchedPos = 12;

-         }

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

-         {

-            jjmatchedKind = 209;

-            jjmatchedPos = 12;

-         }

-         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x80040L);

-      case 105:

-         return jjMoveStringLiteralDfa13_0(active2, 0x4000000L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 214;

-            jjmatchedPos = 12;

-         }

-         return jjMoveStringLiteralDfa13_0(active2, 0x2L, active3, 0L);

-      case 115:

-         return jjMoveStringLiteralDfa13_0(active2, 0L, active3, 0x4000L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 12);

-}

-private int jjMoveStringLiteralDfa13_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 12);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 12);

-   }

-   switch(curChar)

-   {

-      case 65:

-         return jjMoveStringLiteralDfa14_0(active2, 0x2L, active3, 0x4000L);

-      case 76:

-         return jjMoveStringLiteralDfa14_0(active2, 0x100000000000000L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 133;

-            jjmatchedPos = 13;

-         }

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

-         {

-            jjmatchedKind = 211;

-            jjmatchedPos = 13;

-         }

-         return jjMoveStringLiteralDfa14_0(active2, 0L, active3, 0x40L);

-      case 84:

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

-         {

-            jjmatchedKind = 154;

-            jjmatchedPos = 13;

-         }

-         break;

-      case 97:

-         return jjMoveStringLiteralDfa14_0(active2, 0x2L, active3, 0x4000L);

-      case 108:

-         return jjMoveStringLiteralDfa14_0(active2, 0x100000000000000L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 133;

-            jjmatchedPos = 13;

-         }

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

-         {

-            jjmatchedKind = 211;

-            jjmatchedPos = 13;

-         }

-         return jjMoveStringLiteralDfa14_0(active2, 0L, active3, 0x40L);

-      case 116:

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

-         {

-            jjmatchedKind = 154;

-            jjmatchedPos = 13;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 13);

-}

-private int jjMoveStringLiteralDfa14_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 13);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 13);

-   }

-   switch(curChar)

-   {

-      case 66:

-         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x4000L);

-      case 69:

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

-         {

-            jjmatchedKind = 184;

-            jjmatchedPos = 14;

-         }

-         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x40L);

-      case 78:

-         return jjMoveStringLiteralDfa15_0(active2, 0x2L, active3, 0L);

-      case 98:

-         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x4000L);

-      case 101:

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

-         {

-            jjmatchedKind = 184;

-            jjmatchedPos = 14;

-         }

-         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x40L);

-      case 110:

-         return jjMoveStringLiteralDfa15_0(active2, 0x2L, active3, 0L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 14);

-}

-private int jjMoveStringLiteralDfa15_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 14);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 14);

-   }

-   switch(curChar)

-   {

-      case 76:

-         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x4000L);

-      case 78:

-         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x40L);

-      case 83:

-         return jjMoveStringLiteralDfa16_0(active2, 0x2L, active3, 0L);

-      case 108:

-         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x4000L);

-      case 110:

-         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x40L);

-      case 115:

-         return jjMoveStringLiteralDfa16_0(active2, 0x2L, active3, 0L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 15);

-}

-private int jjMoveStringLiteralDfa16_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 15);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 15);

-   }

-   switch(curChar)

-   {

-      case 65:

-         return jjMoveStringLiteralDfa17_0(active2, 0x2L, active3, 0L);

-      case 67:

-         return jjMoveStringLiteralDfa17_0(active2, 0L, active3, 0x40L);

-      case 69:

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

-         {

-            jjmatchedKind = 206;

-            jjmatchedPos = 16;

-         }

-         break;

-      case 97:

-         return jjMoveStringLiteralDfa17_0(active2, 0x2L, active3, 0L);

-      case 99:

-         return jjMoveStringLiteralDfa17_0(active2, 0L, active3, 0x40L);

-      case 101:

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

-         {

-            jjmatchedKind = 206;

-            jjmatchedPos = 16;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 16);

-}

-private int jjMoveStringLiteralDfa17_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 16);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 16);

-   }

-   switch(curChar)

-   {

-      case 67:

-         return jjMoveStringLiteralDfa18_0(active2, 0x2L, active3, 0L);

-      case 69:

-         return jjMoveStringLiteralDfa18_0(active2, 0L, active3, 0x40L);

-      case 99:

-         return jjMoveStringLiteralDfa18_0(active2, 0x2L, active3, 0L);

-      case 101:

-         return jjMoveStringLiteralDfa18_0(active2, 0L, active3, 0x40L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 17);

-}

-private int jjMoveStringLiteralDfa18_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 17);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 17);

-   }

-   switch(curChar)

-   {

-      case 83:

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

-         {

-            jjmatchedKind = 198;

-            jjmatchedPos = 18;

-         }

-         break;

-      case 84:

-         return jjMoveStringLiteralDfa19_0(active2, 0x2L, active3, 0L);

-      case 115:

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

-         {

-            jjmatchedKind = 198;

-            jjmatchedPos = 18;

-         }

-         break;

-      case 116:

-         return jjMoveStringLiteralDfa19_0(active2, 0x2L, active3, 0L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 18);

-}

-private int jjMoveStringLiteralDfa19_0(long old2, long active2, long old3, long active3)

-{

-   if (((active2 &= old2) | (active3 &= old3)) == 0L)

-      return jjMoveNfa_0(5, 18);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 18);

-   }

-   switch(curChar)

-   {

-      case 73:

-         return jjMoveStringLiteralDfa20_0(active2, 0x2L);

-      case 105:

-         return jjMoveStringLiteralDfa20_0(active2, 0x2L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 19);

-}

-private int jjMoveStringLiteralDfa20_0(long old2, long active2)

-{

-   if (((active2 &= old2)) == 0L)

-      return jjMoveNfa_0(5, 19);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 19);

-   }

-   switch(curChar)

-   {

-      case 79:

-         return jjMoveStringLiteralDfa21_0(active2, 0x2L);

-      case 111:

-         return jjMoveStringLiteralDfa21_0(active2, 0x2L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 20);

-}

-private int jjMoveStringLiteralDfa21_0(long old2, long active2)

-{

-   if (((active2 &= old2)) == 0L)

-      return jjMoveNfa_0(5, 20);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 20);

-   }

-   switch(curChar)

-   {

-      case 78:

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

-         {

-            jjmatchedKind = 129;

-            jjmatchedPos = 21;

-         }

-         break;

-      case 110:

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

-         {

-            jjmatchedKind = 129;

-            jjmatchedPos = 21;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 21);

-}

+public class DDLParserTokenManager implements DDLParserConstants
+{
+
+  /** Debug output. */
+  public  java.io.PrintStream debugStream = System.out;
+  /** Set debug output. */
+  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private int jjStopAtPos(int pos, int kind)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0()
+{
+   switch(curChar)
+   {
+      case 9:
+         jjmatchedKind = 2;
+         return jjMoveNfa_0(5, 0);
+      case 10:
+         jjmatchedKind = 3;
+         return jjMoveNfa_0(5, 0);
+      case 12:
+         jjmatchedKind = 5;
+         return jjMoveNfa_0(5, 0);
+      case 13:
+         jjmatchedKind = 4;
+         return jjMoveNfa_0(5, 0);
+      case 32:
+         jjmatchedKind = 1;
+         return jjMoveNfa_0(5, 0);
+      case 33:
+         return jjMoveStringLiteralDfa1_0(0x8000000L, 0x0L, 0x0L, 0x0L);
+      case 35:
+         jjmatchedKind = 30;
+         return jjMoveNfa_0(5, 0);
+      case 36:
+         jjmatchedKind = 17;
+         return jjMoveNfa_0(5, 0);
+      case 37:
+         jjmatchedKind = 18;
+         return jjMoveStringLiteralDfa1_0(0x60000000000L, 0x0L, 0x0L, 0x0L);
+      case 39:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000010000000L, 0x0L, 0x0L);
+      case 40:
+         jjmatchedKind = 28;
+         return jjMoveStringLiteralDfa1_0(0x400000L, 0x0L, 0x0L, 0x0L);
+      case 41:
+         jjmatchedKind = 11;
+         return jjMoveNfa_0(5, 0);
+      case 42:
+         jjmatchedKind = 9;
+         return jjMoveNfa_0(5, 0);
+      case 43:
+         jjmatchedKind = 29;
+         return jjMoveNfa_0(5, 0);
+      case 44:
+         jjmatchedKind = 14;
+         return jjMoveNfa_0(5, 0);
+      case 45:
+         jjmatchedKind = 25;
+         return jjMoveNfa_0(5, 0);
+      case 46:
+         jjmatchedKind = 15;
+         return jjMoveStringLiteralDfa1_0(0x10000L, 0x0L, 0x0L, 0x0L);
+      case 47:
+         jjmatchedKind = 33;
+         return jjMoveNfa_0(5, 0);
+      case 58:
+         jjmatchedKind = 13;
+         return jjMoveStringLiteralDfa1_0(0x100L, 0x0L, 0x0L, 0x0L);
+      case 59:
+         jjmatchedKind = 32;
+         return jjMoveNfa_0(5, 0);
+      case 60:
+         jjmatchedKind = 23;
+         return jjMoveStringLiteralDfa1_0(0x5000000L, 0x0L, 0x0L, 0x0L);
+      case 61:
+         jjmatchedKind = 19;
+         return jjMoveNfa_0(5, 0);
+      case 62:
+         jjmatchedKind = 20;
+         return jjMoveStringLiteralDfa1_0(0x200000L, 0x0L, 0x0L, 0x0L);
+      case 63:
+         jjmatchedKind = 31;
+         return jjMoveNfa_0(5, 0);
+      case 64:
+         jjmatchedKind = 10;
+         return jjMoveNfa_0(5, 0);
+      case 65:
+         return jjMoveStringLiteralDfa1_0(0x798000000000L, 0x8000000000000000L, 0x3L, 0x0L);
+      case 66:
+         return jjMoveStringLiteralDfa1_0(0x3800000000000L, 0x0L, 0x1fcL, 0x0L);
+      case 67:
+         return jjMoveStringLiteralDfa1_0(0x1ffc000000000000L, 0x0L, 0x1fe00L, 0x0L);
+      case 68:
+         return jjMoveStringLiteralDfa1_0(0xe000000000000000L, 0x3L, 0x1fe0000L, 0x0L);
+      case 69:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3cL, 0x6000000L, 0x0L);
+      case 70:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3c0L, 0x38000000L, 0x0L);
+      case 71:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00L, 0x40000000L, 0x0L);
+      case 72:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x2000L, 0x0L, 0x0L);
+      case 73:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7fc000L, 0xf80000000L, 0x0L);
+      case 75:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x1000000000L, 0x0L);
+      case 76:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1800000L, 0x6000000000L, 0x0L);
+      case 77:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0x18000000000L, 0x0L);
+      case 78:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xe8000000L, 0x3fe0000000000L, 0x0L);
+      case 79:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000L, 0x7c000000000000L, 0x0L);
+      case 80:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xc000000000L, 0xff80000000000000L, 0x0L);
+      case 82:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x30000000000L, 0x0L, 0x1fffL);
+      case 83:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xfc0000000000L, 0x0L, 0x7fe000L);
+      case 84:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1f000000000000L, 0x0L, 0x7800000L);
+      case 85:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xe0000000000000L, 0x0L, 0x8000000L);
+      case 86:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x700000000000000L, 0x0L, 0xf0000000L);
+      case 87:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3800000000000000L, 0x0L, 0x300000000L);
+      case 89:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x400000000L);
+      case 90:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x800000000L);
+      case 97:
+         return jjMoveStringLiteralDfa1_0(0x798000000000L, 0x8000000000000000L, 0x3L, 0x0L);
+      case 98:
+         return jjMoveStringLiteralDfa1_0(0x3800000000000L, 0x0L, 0x1fcL, 0x0L);
+      case 99:
+         return jjMoveStringLiteralDfa1_0(0x1ffc000000000000L, 0x0L, 0x1fe00L, 0x0L);
+      case 100:
+         return jjMoveStringLiteralDfa1_0(0xe000000000000000L, 0x3L, 0x1fe0000L, 0x0L);
+      case 101:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3cL, 0x6000000L, 0x0L);
+      case 102:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3c0L, 0x38000000L, 0x0L);
+      case 103:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00L, 0x40000000L, 0x0L);
+      case 104:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x2000L, 0x0L, 0x0L);
+      case 105:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7fc000L, 0xf80000000L, 0x0L);
+      case 107:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x1000000000L, 0x0L);
+      case 108:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1800000L, 0x6000000000L, 0x0L);
+      case 109:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0x18000000000L, 0x0L);
+      case 110:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xe8000000L, 0x3fe0000000000L, 0x0L);
+      case 111:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000L, 0x7c000000000000L, 0x0L);
+      case 112:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xc000000000L, 0xff80000000000000L, 0x0L);
+      case 114:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x30000000000L, 0x0L, 0x1fffL);
+      case 115:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xfc0000000000L, 0x0L, 0x7fe000L);
+      case 116:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1f000000000000L, 0x0L, 0x7800000L);
+      case 117:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xe0000000000000L, 0x0L, 0x8000000L);
+      case 118:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x700000000000000L, 0x0L, 0xf0000000L);
+      case 119:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3800000000000000L, 0x0L, 0x300000000L);
+      case 121:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x400000000L);
+      case 122:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x800000000L);
+      case 124:
+         return jjMoveStringLiteralDfa1_0(0x1000L, 0x0L, 0x0L, 0x0L);
+      case 126:
+         jjmatchedKind = 34;
+         return jjMoveNfa_0(5, 0);
+      default :
+         return jjMoveNfa_0(5, 0);
+   }
+}
+private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2, long active3)
+{
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 0);
+   }
+   switch(curChar)
+   {
+      case 43:
+         return jjMoveStringLiteralDfa2_0(active0, 0x400000L, active1, 0L, active2, 0L, active3, 0L);
+      case 46:
+         if ((active0 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 16;
+            jjmatchedPos = 1;
+         }
+         break;
+      case 61:
+         if ((active0 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 8;
+            jjmatchedPos = 1;
+         }
+         else if ((active0 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 21;
+            jjmatchedPos = 1;
+         }
+         else if ((active0 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 24;
+            jjmatchedPos = 1;
+         }
+         else if ((active0 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 27;
+            jjmatchedPos = 1;
+         }
+         break;
+      case 62:
+         if ((active0 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 26;
+            jjmatchedPos = 1;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x103000000002000L, active2, 0x180060000060000L, active3, 0xf0000003L);
+      case 66:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x180000000000L, active3, 0L);
+      case 68:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000L, active2, 0L, active3, 0L);
+      case 69:
+         return jjMoveStringLiteralDfa2_0(active0, 0xe001800000000000L, active1, 0x70000000040L, active2, 0x1000f80000L, active3, 0x40080e1fcL);
+      case 70:
+         if ((active1 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 79;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 96;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x4L, active3, 0L);
+      case 72:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0x1804080000000000L, active2, 0xe00L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2600100002800001L, active2, 0x208000008000038L, active3, 0x30f0000L);
+      case 76:
+         return jjMoveStringLiteralDfa2_0(active0, 0x30018000000000L, active1, 0x4L, active2, 0x400008050001040L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x100000L);
+      case 78:
+         if ((active1 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 80;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 97;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x600000103e0008L, active2, 0xf82000000L, active3, 0x300000600L);
+      case 79:
+         if ((active1 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 115;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x3c0000000000000L, active1, 0x6d000480L, active2, 0x80021602100e080L, active3, 0x800001800L);
+      case 80:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x80000400000000L, active2, 0L, active3, 0L);
+      case 81:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000000L, active2, 0L, active3, 0L);
+      case 82:
+         if ((active1 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 99;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0xc00020000000000L, active1, 0x8000005000001902L, active2, 0xf010000000000000L, active3, 0xc000000L);
+      case 83:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 44;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 86;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x200000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 84:
+         if ((active0 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 46;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0x400000000000L, active2, 0L, active3, 0x200000L);
+      case 85:
+         return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000000L, active1, 0x808080000200L, active2, 0x20c00000010003L, active3, 0L);
+      case 86:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2000000000L, active2, 0x43000000000000L, active3, 0L);
+      case 88:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x30L, active2, 0x4000000L, active3, 0L);
+      case 89:
+         if ((active0 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 49;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4010000000000000L, active2, 0x100L, active3, 0x400000L);
+      case 97:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x103000000002000L, active2, 0x180060000060000L, active3, 0xf0000003L);
+      case 98:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x180000000000L, active3, 0L);
+      case 100:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000L, active2, 0L, active3, 0L);
+      case 101:
+         return jjMoveStringLiteralDfa2_0(active0, 0xe001800000000000L, active1, 0x70000000040L, active2, 0x1000f80000L, active3, 0x40080e1fcL);
+      case 102:
+         if ((active1 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 79;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 96;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x4L, active3, 0L);
+      case 104:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0x1804080000000000L, active2, 0xe00L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2600100002800001L, active2, 0x208000008000038L, active3, 0x30f0000L);
+      case 108:
+         return jjMoveStringLiteralDfa2_0(active0, 0x30018000000000L, active1, 0x4L, active2, 0x400008050001040L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x100000L);
+      case 110:
+         if ((active1 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 80;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 97;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x600000103e0008L, active2, 0xf82000000L, active3, 0x300000600L);
+      case 111:
+         if ((active1 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 115;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x3c0000000000000L, active1, 0x6d000480L, active2, 0x80021602100e080L, active3, 0x800001800L);
+      case 112:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x80000400000000L, active2, 0L, active3, 0L);
+      case 113:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000000L, active2, 0L, active3, 0L);
+      case 114:
+         if ((active1 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 99;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0xc00020000000000L, active1, 0x8000005000001902L, active2, 0xf010000000000000L, active3, 0xc000000L);
+      case 115:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 44;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 86;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x200000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 116:
+         if ((active0 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 46;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0x400000000000L, active2, 0L, active3, 0x200000L);
+      case 117:
+         return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000000L, active1, 0x808080000200L, active2, 0x20c00000010003L, active3, 0L);
+      case 118:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2000000000L, active2, 0x43000000000000L, active3, 0L);
+      case 120:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x30L, active2, 0x4000000L, active3, 0L);
+      case 121:
+         if ((active0 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 49;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4010000000000000L, active2, 0x100L, active3, 0x400000L);
+      case 124:
+         if ((active0 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 12;
+            jjmatchedPos = 1;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 1);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 1);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 1);
+   }
+   switch(curChar)
+   {
+      case 41:
+         if ((active0 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 22;
+            jjmatchedPos = 2;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000000L, active1, 0x480000000800L, active2, 0x1003000002000e00L, active3, 0x400100004L);
+      case 66:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x3808000000000L, active2, 0L, active3, 0L);
+      case 67:
+         if ((active0 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 45;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 147;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000000L, active1, 0x9000030L, active2, 0x80202004100000L, active3, 0x2008L);
+      case 68:
+         if ((active0 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 67;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 179;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80001004060000L, active2, 0L, active3, 0x100000200L);
+      case 69:
+         return jjMoveStringLiteralDfa3_0(active0, 0x808000000000000L, active1, 0x5e04002000004000L, active2, 0x6040000000000000L, active3, 0L);
+      case 70:
+         if ((active3 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 196;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 71:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x10000000000000L, active3, 0x10000L);
+      case 72:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x80000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x60000000000000L, active2, 0x8000000000000004L, active3, 0L);
+      case 74:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);
+      case 75:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000L, active2, 0L, active3, 0L);
+      case 76:
+         if ((active0 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 39;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 109;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0xc0000000000000L, active1, 0x100040080000000L, active2, 0x100080400000L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0L, active2, 0xc00000002000L, active3, 0x38e0000L);
+      case 78:
+         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0x2000200L, active2, 0x1400800c038L, active3, 0x800000001L);
+      case 79:
+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x4010001102L, active2, 0x500010c0L, active3, 0x8000000L);
+      case 80:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10000000000000L, active2, 0x200000000000000L, active3, 0x200000420L);
+      case 82:
+         if ((active1 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 71;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x8000000000000000L, active2, 0x100000020010000L, active3, 0xf0204000L);
+      case 83:
+         return jjMoveStringLiteralDfa3_0(active0, 0x8004000000000000L, active1, 0x10000080005L, active2, 0xc00008100000000L, active3, 0x4000c0L);
+      case 84:
+         if ((active1 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 93;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 161;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 181;
+            jjmatchedPos = 2;
+         }
+         else if ((active3 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 207;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x2000000400300440L, active2, 0x60c00820103L, active3, 0x100L);
+      case 85:
+         return jjMoveStringLiteralDfa3_0(active0, 0x30000000000000L, active1, 0L, active2, 0x1000000L, active3, 0x4000000L);
+      case 86:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x20000002000L, active2, 0L, active3, 0L);
+      case 87:
+         if ((active3 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 193;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000L, active2, 0L, active3, 0x1800L);
+      case 89:
+         if ((active2 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 146;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 164;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 90:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x100000000000L, active2, 0L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000000L, active1, 0x480000000800L, active2, 0x1003000002000e00L, active3, 0x400100004L);
+      case 98:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x3808000000000L, active2, 0L, active3, 0L);
+      case 99:
+         if ((active0 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 45;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 147;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000000L, active1, 0x9000030L, active2, 0x80202004100000L, active3, 0x2008L);
+      case 100:
+         if ((active0 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 67;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 179;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80001004060000L, active2, 0L, active3, 0x100000200L);
+      case 101:
+         return jjMoveStringLiteralDfa3_0(active0, 0x808000000000000L, active1, 0x5e04002000004000L, active2, 0x6040000000000000L, active3, 0L);
+      case 102:
+         if ((active3 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 196;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 103:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x10000000000000L, active3, 0x10000L);
+      case 104:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x80000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x60000000000000L, active2, 0x8000000000000004L, active3, 0L);
+      case 106:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);
+      case 107:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000L, active2, 0L, active3, 0L);
+      case 108:
+         if ((active0 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 39;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 109;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0xc0000000000000L, active1, 0x100040080000000L, active2, 0x100080400000L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0L, active2, 0xc00000002000L, active3, 0x38e0000L);
+      case 110:
+         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0x2000200L, active2, 0x1400800c038L, active3, 0x800000001L);
+      case 111:
+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x4010001102L, active2, 0x500010c0L, active3, 0x8000000L);
+      case 112:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10000000000000L, active2, 0x200000000000000L, active3, 0x200000420L);
+      case 114:
+         if ((active1 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 71;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x8000000000000000L, active2, 0x100000020010000L, active3, 0xf0204000L);
+      case 115:
+         return jjMoveStringLiteralDfa3_0(active0, 0x8004000000000000L, active1, 0x10000080005L, active2, 0xc00008100000000L, active3, 0x4000c0L);
+      case 116:
+         if ((active1 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 93;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 161;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 181;
+            jjmatchedPos = 2;
+         }
+         else if ((active3 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 207;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x2000000400300440L, active2, 0x60c00820103L, active3, 0x100L);
+      case 117:
+         return jjMoveStringLiteralDfa3_0(active0, 0x30000000000000L, active1, 0L, active2, 0x1000000L, active3, 0x4000000L);
+      case 118:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x20000002000L, active2, 0L, active3, 0L);
+      case 119:
+         if ((active3 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 193;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000L, active2, 0L, active3, 0x1800L);
+      case 121:
+         if ((active2 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 146;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 164;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 122:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x100000000000L, active2, 0L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 2);
+}
+private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 2);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 2);
+   }
+   switch(curChar)
+   {
+      case 39:
+         if ((active1 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 92;
+            jjmatchedPos = 3;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa4_0(active0, 0x4840000000000000L, active1, 0x8081000040000000L, active2, 0x110082018000038L, active3, 0L);
+      case 66:
+         if ((active2 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 134;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 140;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x400043000000L, active3, 0L);
+      case 67:
+         if ((active0 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 63;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x4000000240L, active2, 0x2000000020000000L, active3, 0x30000000L);
+      case 69:
+         if ((active0 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 50;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 66;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 87;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 90;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 108;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 116;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 136;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 145;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 216;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 227;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x410001e0010L, active2, 0x204800c04c00000L, active3, 0x2000000L);
+      case 71:
+         if ((active2 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 166;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x1000000000000000L, active3, 0x1L);
+      case 72:
+         if ((active1 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 125;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x1L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x400002000L, active2, 0x800020080300000L, active3, 0x204800L);
+      case 75:
+         if ((active1 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 88;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0L);
+      case 76:
+         if ((active1 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 95;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 194;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000000L, active1, 0x2008000000020L, active2, 0x8000000084L, active3, 0x100020L);
+      case 77:
+         if ((active1 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 72;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x8000000000002000L, active3, 0L);
+      case 78:
+         if ((active1 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 114;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 123;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0x4800L, active2, 0L, active3, 0x10000L);
+      case 79:
+         if ((active1 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 74;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 85;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20030008000000L, active2, 0x300000000002L, active3, 0x2008L);
+      case 80:
+         if ((active1 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 65;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x100040000000000L, active1, 0L, active2, 0L, active3, 0x8e0000L);
+      case 81:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x40000000000000L, active2, 0L, active3, 0L);
+      case 82:
+         if ((active2 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 137;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 226;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1000482000000000L, active2, 0x43000000010c00L, active3, 0x40000000L);
+      case 83:
+         if ((active3 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 201;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 202;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 204;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 224;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 225;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x1430000000000000L, active1, 0x4000000000000000L, active2, 0x400000000000c000L, active3, 0x4000000L);
+      case 84:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000001L, active2, 0x10100000000L, active3, 0x40L);
+      case 85:
+         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L, active1, 0x100000002001000L, active2, 0x40000000000L, active3, 0x180L);
+      case 87:
+         if ((active1 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 121;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x400000000000000L, active2, 0L, active3, 0x8000000L);
+      case 89:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x80000000L);
+      case 95:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x400000000000000L, active3, 0x400000L);
+      case 97:
+         return jjMoveStringLiteralDfa4_0(active0, 0x4840000000000000L, active1, 0x8081000040000000L, active2, 0x110082018000038L, active3, 0L);
+      case 98:
+         if ((active2 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 134;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 140;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x400043000000L, active3, 0L);
+      case 99:
+         if ((active0 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 63;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x4000000240L, active2, 0x2000000020000000L, active3, 0x30000000L);
+      case 101:
+         if ((active0 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 50;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 66;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 87;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 90;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 108;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 116;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 136;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 145;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 216;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 227;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x410001e0010L, active2, 0x204800c04c00000L, active3, 0x2000000L);
+      case 103:
+         if ((active2 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 166;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x1000000000000000L, active3, 0x1L);
+      case 104:
+         if ((active1 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 125;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x1L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x400002000L, active2, 0x800020080300000L, active3, 0x204800L);
+      case 107:
+         if ((active1 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 88;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0L);
+      case 108:
+         if ((active1 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 95;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 194;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000000L, active1, 0x2008000000020L, active2, 0x8000000084L, active3, 0x100020L);
+      case 109:
+         if ((active1 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 72;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x8000000000002000L, active3, 0L);
+      case 110:
+         if ((active1 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 114;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 123;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0x4800L, active2, 0L, active3, 0x10000L);
+      case 111:
+         if ((active1 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 74;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 85;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20030008000000L, active2, 0x300000000002L, active3, 0x2008L);
+      case 112:
+         if ((active1 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 65;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x100040000000000L, active1, 0L, active2, 0L, active3, 0x8e0000L);
+      case 113:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x40000000000000L, active2, 0L, active3, 0L);
+      case 114:
+         if ((active2 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 137;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 226;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1000482000000000L, active2, 0x43000000010c00L, active3, 0x40000000L);
+      case 115:
+         if ((active3 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 201;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 202;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 204;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 224;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 225;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x1430000000000000L, active1, 0x4000000000000000L, active2, 0x400000000000c000L, active3, 0x4000000L);
+      case 116:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000001L, active2, 0x10100000000L, active3, 0x40L);
+      case 117:
+         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L, active1, 0x100000002001000L, active2, 0x40000000000L, active3, 0x180L);
+      case 119:
+         if ((active1 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 121;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x400000000000000L, active2, 0L, active3, 0x8000000L);
+      case 121:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x80000000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 3);
+}
+private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 3);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 3);
+   }
+   switch(curChar)
+   {
+      case 39:
+         if ((active1 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 126;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000000L, active1, 0L, active2, 0x8080008140000400L, active3, 0x40004020L);
+      case 66:
+         if ((active2 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 172;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 67:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000000000L, active2, 0x7000000000000L, active3, 0L);
+      case 68:
+         if ((active3 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 203;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 69:
+         if ((active0 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 42;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 107;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 113;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 124;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 130;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 157;
+            jjmatchedPos = 4;
+         }
+         else if ((active3 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 192;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x201000000000000L, active1, 0x100004000000000L, active2, 0x4000400000010080L, active3, 0L);
+      case 70:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0L);
+      case 71:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x400000000L, active3, 0L);
+      case 72:
+         if ((active0 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 58;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 70;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 168;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x30000000L);
+      case 73:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8040000001L, active2, 0x2400000000002001L, active3, 0x88000000L);
+      case 75:
+         if ((active0 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 51;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 76:
+         if ((active2 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 155;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 165;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x22000000000L, active2, 0x300000003000000L, active3, 0x1e0080L);
+      case 77:
+         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x8000000L, active2, 0x1000000000100000L, active3, 0L);
+      case 78:
+         if ((active0 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 47;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 117;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000L, active2, 0x10000080200002L, active3, 0x202000L);
+      case 79:
+         return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000000L, active1, 0x400000000L, active2, 0x20000000000L, active3, 0x800000L);
+      case 80:
+         if ((active1 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 76;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x10L, active2, 0x200004000000L, active3, 0L);
+      case 82:
+         if ((active0 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 40;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 100;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 171;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x180000L, active2, 0x840800800038L, active3, 0x400148L);
+      case 83:
+         if ((active1 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 89;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 122;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x800L, active3, 0x2000000L);
+      case 84:
+         if ((active1 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 75;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 110;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 156;
+            jjmatchedPos = 4;
+         }
+         else if ((active3 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 218;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x830020000000000L, active1, 0x80000000004200L, active2, 0x80000000040c000L, active3, 0x10000L);
+      case 85:
+         return jjMoveStringLiteralDfa5_0(active0, 0x4040000000000000L, active1, 0x41010000000020L, active2, 0L, active3, 0L);
+      case 88:
+         if ((active1 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 81;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000L, active2, 0L, active3, 0L);
+      case 89:
+         if ((active1 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 127;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000000L, active2, 0L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000000L, active1, 0L, active2, 0x8080008140000400L, active3, 0x40004020L);
+      case 98:
+         if ((active2 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 172;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 99:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000000000L, active2, 0x7000000000000L, active3, 0L);
+      case 100:
+         if ((active3 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 203;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 101:
+         if ((active0 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 42;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 107;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 113;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 124;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 130;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 157;
+            jjmatchedPos = 4;
+         }
+         else if ((active3 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 192;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x201000000000000L, active1, 0x100004000000000L, active2, 0x4000400000010080L, active3, 0L);
+      case 102:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0L);
+      case 103:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x400000000L, active3, 0L);
+      case 104:
+         if ((active0 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 58;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 70;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 168;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x30000000L);
+      case 105:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8040000001L, active2, 0x2400000000002001L, active3, 0x88000000L);
+      case 107:
+         if ((active0 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 51;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 108:
+         if ((active2 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 155;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 165;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x22000000000L, active2, 0x300000003000000L, active3, 0x1e0080L);
+      case 109:
+         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x8000000L, active2, 0x1000000000100000L, active3, 0L);
+      case 110:
+         if ((active0 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 47;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 117;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000L, active2, 0x10000080200002L, active3, 0x202000L);
+      case 111:
+         return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000000L, active1, 0x400000000L, active2, 0x20000000000L, active3, 0x800000L);
+      case 112:
+         if ((active1 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 76;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x10L, active2, 0x200004000000L, active3, 0L);
+      case 114:
+         if ((active0 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 40;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 100;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 171;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x180000L, active2, 0x840800800038L, active3, 0x400148L);
+      case 115:
+         if ((active1 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 89;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 122;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x800L, active3, 0x2000000L);
+      case 116:
+         if ((active1 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 75;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 110;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 156;
+            jjmatchedPos = 4;
+         }
+         else if ((active3 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 218;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x830020000000000L, active1, 0x80000000004200L, active2, 0x80000000040c000L, active3, 0x10000L);
+      case 117:
+         return jjMoveStringLiteralDfa5_0(active0, 0x4040000000000000L, active1, 0x41010000000020L, active2, 0L, active3, 0L);
+      case 120:
+         if ((active1 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 81;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000L, active2, 0L, active3, 0L);
+      case 121:
+         if ((active1 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 127;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000000L, active2, 0L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 4);
+}
+private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 4);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 4);
+   }
+   switch(curChar)
+   {
+      case 65:
+         if ((active2 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 188;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000000000L, active2, 0x40000104080L, active3, 0x30000000L);
+      case 66:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x8000000000L, active3, 0L);
+      case 67:
+         if ((active1 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 103;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0L, active2, 0x400L, active3, 0x20L);
+      case 68:
+         if ((active2 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 128;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 195;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 205;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 219;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0L, active3, 0L);
+      case 69:
+         if ((active0 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 59;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 105;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 118;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 119;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 150;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 152;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 153;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 159;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x131000000000000L, active1, 0x40000L, active2, 0x400200800L, active3, 0x4e0000L);
+      case 71:
+         if ((active1 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 77;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 213;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0L);
+      case 72:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x3000000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4200L, active2, 0xa10800000000000L, active3, 0x100040L);
+      case 76:
+         if ((active2 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 158;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x140000000000000L, active3, 0x4000L);
+      case 77:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000L, active3, 0L);
+      case 78:
+         if ((active1 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 98;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 200;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x1L, active2, 0x400020100010000L, active3, 0x80000000L);
+      case 79:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);
+      case 80:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800008000000L, active2, 0L, active3, 0L);
+      case 82:
+         if ((active0 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 60;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 174;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000000L, active1, 0x10000000000L, active2, 0xc000000000008000L, active3, 0x800000L);
+      case 83:
+         if ((active1 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 120;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x100020L, active2, 0x2000000000000000L, active3, 0L);
+      case 84:
+         if ((active1 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 83;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 94;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 106;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 141;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 178;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x40000000000000L, active1, 0x1000000000010L, active2, 0x4000000L, active3, 0x2000080L);
+      case 86:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000000L, active3, 0L);
+      case 89:
+         if ((active2 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 173;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 222;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x10000L);
+      case 97:
+         if ((active2 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 188;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000000000L, active2, 0x40000104080L, active3, 0x30000000L);
+      case 98:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x8000000000L, active3, 0L);
+      case 99:
+         if ((active1 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 103;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0L, active2, 0x400L, active3, 0x20L);
+      case 100:
+         if ((active2 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 128;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 195;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 205;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 219;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0L, active3, 0L);
+      case 101:
+         if ((active0 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 59;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 105;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 118;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 119;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 150;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 152;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 153;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 159;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x131000000000000L, active1, 0x40000L, active2, 0x400200800L, active3, 0x4e0000L);
+      case 103:
+         if ((active1 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 77;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 213;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x80000000000000L, active3, 0L);
+      case 104:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x3000000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4200L, active2, 0xa10800000000000L, active3, 0x100040L);
+      case 108:
+         if ((active2 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 158;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x140000000000000L, active3, 0x4000L);
+      case 109:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000L, active3, 0L);
+      case 110:
+         if ((active1 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 98;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 200;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x1L, active2, 0x400020100010000L, active3, 0x80000000L);
+      case 111:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);
+      case 112:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800008000000L, active2, 0L, active3, 0L);
+      case 114:
+         if ((active0 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 60;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 174;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000000L, active1, 0x10000000000L, active2, 0xc000000000008000L, active3, 0x800000L);
+      case 115:
+         if ((active1 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 120;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x100020L, active2, 0x2000000000000000L, active3, 0L);
+      case 116:
+         if ((active1 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 83;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 94;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 106;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 141;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 178;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x40000000000000L, active1, 0x1000000000010L, active2, 0x4000000L, active3, 0x2000080L);
+      case 118:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000000L, active3, 0L);
+      case 121:
+         if ((active2 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 173;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 222;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x10000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 5);
+}
+private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 5);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 5);
+   }
+   switch(curChar)
+   {
+      case 65:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x3020800008000L, active3, 0x2800000L);
+      case 67:
+         if ((active2 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 175;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000001L, active2, 0L, active3, 0x40L);
+      case 69:
+         if ((active0 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 61;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 111;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 183;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 197;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x100000L, active2, 0x100008000000000L, active3, 0L);
+      case 70:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x4000L, active2, 0L, active3, 0x400000L);
+      case 71:
+         if ((active3 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 223;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 72:
+         if ((active0 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 54;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 112;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 73:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x30L, active2, 0x2000000004800000L, active3, 0L);
+      case 76:
+         if ((active2 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 148;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 170;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000L);
+      case 77:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);
+      case 78:
+         if ((active0 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 48;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 135;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x200000000004000L, active3, 0x100000L);
+      case 79:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200L, active2, 0x40000000000000L, active3, 0L);
+      case 80:
+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x2000000000L, active2, 0L, active3, 0x10000L);
+      case 82:
+         if ((active0 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 149;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 162;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 221;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L, active1, 0x8000000L, active2, 0L, active3, 0x10000000L);
+      case 83:
+         if ((active0 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 55;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 82;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x100000000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 84:
+         if ((active0 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 57;
+            jjmatchedPos = 6;
+         }
+         else if ((active0 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 62;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 139;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x400000100010400L, active3, 0L);
+      case 85:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x4000000000L, active2, 0L, active3, 0L);
+      case 86:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x4800000000000000L, active3, 0L);
+      case 89:
+         if ((active2 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 191;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 90:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 95:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x38L, active3, 0xe0080L);
+      case 97:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x3020800008000L, active3, 0x2800000L);
+      case 99:
+         if ((active2 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 175;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000001L, active2, 0L, active3, 0x40L);
+      case 101:
+         if ((active0 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 61;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 111;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 183;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 197;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x100000L, active2, 0x100008000000000L, active3, 0L);
+      case 102:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x4000L, active2, 0L, active3, 0x400000L);
+      case 103:
+         if ((active3 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 223;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 104:
+         if ((active0 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 54;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 112;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 105:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x30L, active2, 0x2000000004800000L, active3, 0L);
+      case 108:
+         if ((active2 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 148;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 170;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000L);
+      case 109:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);
+      case 110:
+         if ((active0 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 48;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 135;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x200000000004000L, active3, 0x100000L);
+      case 111:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200L, active2, 0x40000000000000L, active3, 0L);
+      case 112:
+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x2000000000L, active2, 0L, active3, 0x10000L);
+      case 114:
+         if ((active0 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 149;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 162;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 221;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L, active1, 0x8000000L, active2, 0L, active3, 0x10000000L);
+      case 115:
+         if ((active0 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 55;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 82;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x100000000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 116:
+         if ((active0 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 57;
+            jjmatchedPos = 6;
+         }
+         else if ((active0 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 62;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 139;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x400000100010400L, active3, 0L);
+      case 117:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x4000000000L, active2, 0L, active3, 0L);
+      case 118:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x4800000000000000L, active3, 0L);
+      case 121:
+         if ((active2 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 191;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 122:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 6);
+}
+private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 6);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 6);
+   }
+   switch(curChar)
+   {
+      case 50:
+         if ((active3 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 220;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x100000L, active2, 0L, active3, 0x400080L);
+      case 68:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x20000L);
+      case 69:
+         if ((active0 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 41;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 104;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 187;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 190;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 208;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000000L, active2, 0x600000000000400L, active3, 0L);
+      case 70:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x40000L);
+      case 73:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000L, active2, 0x100008020L, active3, 0x80000L);
+      case 76:
+         if ((active2 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 163;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 167;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 169;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x100000000000000L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2000000L);
+      case 78:
+         if ((active1 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 73;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x800000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L, active2, 0x2000000004000002L, active3, 0L);
+      case 82:
+         if ((active2 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 177;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000000000L, active2, 0x1000000000000L, active3, 0x800000L);
+      case 83:
+         if ((active0 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 52;
+            jjmatchedPos = 7;
+         }
+         else if ((active0 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 56;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 101;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 84:
+         if ((active1 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 64;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 142;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 212;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x40L);
+      case 86:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20L, active2, 0L, active3, 0L);
+      case 87:
+         if ((active2 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 182;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 89:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000L);
+      case 95:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x100000L, active2, 0L, active3, 0x400080L);
+      case 100:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x20000L);
+      case 101:
+         if ((active0 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 41;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 104;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 187;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 190;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 208;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000000L, active2, 0x600000000000400L, active3, 0L);
+      case 102:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x40000L);
+      case 105:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000L, active2, 0x100008020L, active3, 0x80000L);
+      case 108:
+         if ((active2 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 163;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 167;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 169;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x100000000000000L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2000000L);
+      case 110:
+         if ((active1 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 73;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x800000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L, active2, 0x2000000004000002L, active3, 0L);
+      case 114:
+         if ((active2 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 177;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x4000000000L, active2, 0x1000000000000L, active3, 0x800000L);
+      case 115:
+         if ((active0 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 52;
+            jjmatchedPos = 7;
+         }
+         else if ((active0 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 56;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 101;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 116:
+         if ((active1 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 64;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 142;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 212;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x40L);
+      case 118:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20L, active2, 0L, active3, 0L);
+      case 119:
+         if ((active2 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 182;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 121:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x4000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 7);
+}
+private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 7);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 7);
+   }
+   switch(curChar)
+   {
+      case 50:
+         if ((active2 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 176;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x100000000L, active3, 0x80L);
+      case 68:
+         if ((active2 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 185;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 69:
+         if ((active1 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 69;
+            jjmatchedPos = 8;
+         }
+         else if ((active1 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 102;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active1, 0x4000L, active2, 0L, active3, 0L);
+      case 71:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x400000000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x800000L, active3, 0L);
+      case 76:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10L, active3, 0x40000L);
+      case 78:
+         if ((active1 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 68;
+            jjmatchedPos = 8;
+         }
+         else if ((active2 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 189;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x4008020L, active3, 0x80000L);
+      case 79:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x8L, active3, 0x20000L);
+      case 80:
+         if ((active3 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 217;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 82:
+         if ((active2 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 138;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 83:
+         return jjMoveStringLiteralDfa9_0(active1, 0x8000000L, active2, 0L, active3, 0L);
+      case 84:
+         if ((active1 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 84;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 85:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10002L, active3, 0x400000L);
+      case 89:
+         if ((active3 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 215;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 95:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x100000000000000L, active3, 0x4040L);
+      case 97:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x100000000L, active3, 0x80L);
+      case 100:
+         if ((active2 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 185;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 101:
+         if ((active1 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 69;
+            jjmatchedPos = 8;
+         }
+         else if ((active1 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 102;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active1, 0x4000L, active2, 0L, active3, 0L);
+      case 103:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x400000000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x800000L, active3, 0L);
+      case 108:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10L, active3, 0x40000L);
+      case 110:
+         if ((active1 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 68;
+            jjmatchedPos = 8;
+         }
+         else if ((active2 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 189;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x4008020L, active3, 0x80000L);
+      case 111:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x8L, active3, 0x20000L);
+      case 112:
+         if ((active3 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 217;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 114:
+         if ((active2 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 138;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 115:
+         return jjMoveStringLiteralDfa9_0(active1, 0x8000000L, active2, 0L, active3, 0L);
+      case 116:
+         if ((active1 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 84;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 117:
+         return jjMoveStringLiteralDfa9_0(active1, 0L, active2, 0x10002L, active3, 0x400000L);
+      case 121:
+         if ((active3 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 215;
+            jjmatchedPos = 8;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 8);
+}
+private int jjMoveStringLiteralDfa9_0(long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 8);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 8);
+   }
+   switch(curChar)
+   {
+      case 66:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x100000000L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x80L);
+      case 68:
+         if ((active1 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 78;
+            jjmatchedPos = 9;
+         }
+         break;
+      case 69:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x500000000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10L, active3, 0x40000L);
+      case 82:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x404040L);
+      case 83:
+         if ((active1 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 91;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x810002L, active3, 0L);
+      case 84:
+         if ((active2 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 143;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x20L, active3, 0x80000L);
+      case 85:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x8L, active3, 0x20000L);
+      case 95:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x4000000L, active3, 0L);
+      case 98:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x100000000L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x80L);
+      case 100:
+         if ((active1 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 78;
+            jjmatchedPos = 9;
+         }
+         break;
+      case 101:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x500000000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x10L, active3, 0x40000L);
+      case 114:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0L, active3, 0x404040L);
+      case 115:
+         if ((active1 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 91;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x810002L, active3, 0L);
+      case 116:
+         if ((active2 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 143;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x20L, active3, 0x80000L);
+      case 117:
+         return jjMoveStringLiteralDfa10_0(active1, 0L, active2, 0x8L, active3, 0x20000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 9);
+}
+private int jjMoveStringLiteralDfa10_0(long old1, long active1, long old2, long active2, long old3, long active3)
+{
+   if (((active1 &= old1) | (active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 9);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 9);
+   }
+   switch(curChar)
+   {
+      case 65:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x40000L);
+      case 66:
+         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x20000L);
+      case 69:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10020L, active3, 0x84040L);
+      case 72:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x80L);
+      case 73:
+         return jjMoveStringLiteralDfa11_0(active2, 0x4000000L, active3, 0L);
+      case 76:
+         return jjMoveStringLiteralDfa11_0(active2, 0x100000000L, active3, 0L);
+      case 78:
+         return jjMoveStringLiteralDfa11_0(active2, 0x100000000000000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);
+      case 82:
+         if ((active2 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 186;
+            jjmatchedPos = 10;
+         }
+         break;
+      case 83:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x400000L);
+      case 84:
+         return jjMoveStringLiteralDfa11_0(active2, 0x800000L, active3, 0L);
+      case 95:
+         return jjMoveStringLiteralDfa11_0(active2, 0x2L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x40000L);
+      case 98:
+         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x20000L);
+      case 101:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10020L, active3, 0x84040L);
+      case 104:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x80L);
+      case 105:
+         return jjMoveStringLiteralDfa11_0(active2, 0x4000000L, active3, 0L);
+      case 108:
+         return jjMoveStringLiteralDfa11_0(active2, 0x100000000L, active3, 0L);
+      case 110:
+         return jjMoveStringLiteralDfa11_0(active2, 0x100000000000000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);
+      case 114:
+         if ((active2 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 186;
+            jjmatchedPos = 10;
+         }
+         break;
+      case 115:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x400000L);
+      case 116:
+         return jjMoveStringLiteralDfa11_0(active2, 0x800000L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 10);
+}
+private int jjMoveStringLiteralDfa11_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 10);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 10);
+   }
+   switch(curChar)
+   {
+      case 65:
+         return jjMoveStringLiteralDfa12_0(active2, 0x100000000000000L, active3, 0L);
+      case 69:
+         if ((active2 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 160;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 199;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 70:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x40L);
+      case 71:
+         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x80000L);
+      case 73:
+         return jjMoveStringLiteralDfa12_0(active2, 0x800000L, active3, 0L);
+      case 76:
+         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x20000L);
+      case 78:
+         if ((active2 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 180;
+            jjmatchedPos = 11;
+         }
+         return jjMoveStringLiteralDfa12_0(active2, 0x4000000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x400000L);
+      case 82:
+         if ((active2 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 144;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 84:
+         if ((active2 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 132;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 210;
+            jjmatchedPos = 11;
+         }
+         return jjMoveStringLiteralDfa12_0(active2, 0x2L, active3, 0L);
+      case 85:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x4000L);
+      case 97:
+         return jjMoveStringLiteralDfa12_0(active2, 0x100000000000000L, active3, 0L);
+      case 101:
+         if ((active2 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 160;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 199;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 102:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x40L);
+      case 103:
+         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x80000L);
+      case 105:
+         return jjMoveStringLiteralDfa12_0(active2, 0x800000L, active3, 0L);
+      case 108:
+         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x20000L);
+      case 110:
+         if ((active2 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 180;
+            jjmatchedPos = 11;
+         }
+         return jjMoveStringLiteralDfa12_0(active2, 0x4000000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x400000L);
+      case 114:
+         if ((active2 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 144;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 116:
+         if ((active2 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 132;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 210;
+            jjmatchedPos = 11;
+         }
+         return jjMoveStringLiteralDfa12_0(active2, 0x2L, active3, 0L);
+      case 117:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x4000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 11);
+}
+private int jjMoveStringLiteralDfa12_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 11);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 11);
+   }
+   switch(curChar)
+   {
+      case 66:
+         return jjMoveStringLiteralDfa13_0(active2, 0x100000000000000L, active3, 0L);
+      case 67:
+         if ((active2 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 151;
+            jjmatchedPos = 12;
+         }
+         break;
+      case 69:
+         if ((active2 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 131;
+            jjmatchedPos = 12;
+         }
+         else if ((active3 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 209;
+            jjmatchedPos = 12;
+         }
+         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x80040L);
+      case 73:
+         return jjMoveStringLiteralDfa13_0(active2, 0x4000000L, active3, 0L);
+      case 82:
+         if ((active3 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 214;
+            jjmatchedPos = 12;
+         }
+         return jjMoveStringLiteralDfa13_0(active2, 0x2L, active3, 0L);
+      case 83:
+         return jjMoveStringLiteralDfa13_0(active2, 0L, active3, 0x4000L);
+      case 98:
+         return jjMoveStringLiteralDfa13_0(active2, 0x100000000000000L, active3, 0L);
+      case 99:
+         if ((active2 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 151;
+            jjmatchedPos = 12;
+         }
+         break;
+      case 101:
+         if ((active2 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 131;
+            jjmatchedPos = 12;
+         }
+         else if ((active3 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 209;
+            jjmatchedPos = 12;
+         }
+         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x80040L);
+      case 105:
+         return jjMoveStringLiteralDfa13_0(active2, 0x4000000L, active3, 0L);
+      case 114:
+         if ((active3 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 214;
+            jjmatchedPos = 12;
+         }
+         return jjMoveStringLiteralDfa13_0(active2, 0x2L, active3, 0L);
+      case 115:
+         return jjMoveStringLiteralDfa13_0(active2, 0L, active3, 0x4000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 12);
+}
+private int jjMoveStringLiteralDfa13_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 12);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 12);
+   }
+   switch(curChar)
+   {
+      case 65:
+         return jjMoveStringLiteralDfa14_0(active2, 0x2L, active3, 0x4000L);
+      case 76:
+         return jjMoveStringLiteralDfa14_0(active2, 0x100000000000000L, active3, 0L);
+      case 82:
+         if ((active2 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 133;
+            jjmatchedPos = 13;
+         }
+         else if ((active3 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 211;
+            jjmatchedPos = 13;
+         }
+         return jjMoveStringLiteralDfa14_0(active2, 0L, active3, 0x40L);
+      case 84:
+         if ((active2 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 154;
+            jjmatchedPos = 13;
+         }
+         break;
+      case 97:
+         return jjMoveStringLiteralDfa14_0(active2, 0x2L, active3, 0x4000L);
+      case 108:
+         return jjMoveStringLiteralDfa14_0(active2, 0x100000000000000L, active3, 0L);
+      case 114:
+         if ((active2 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 133;
+            jjmatchedPos = 13;
+         }
+         else if ((active3 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 211;
+            jjmatchedPos = 13;
+         }
+         return jjMoveStringLiteralDfa14_0(active2, 0L, active3, 0x40L);
+      case 116:
+         if ((active2 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 154;
+            jjmatchedPos = 13;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 13);
+}
+private int jjMoveStringLiteralDfa14_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 13);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 13);
+   }
+   switch(curChar)
+   {
+      case 66:
+         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x4000L);
+      case 69:
+         if ((active2 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 184;
+            jjmatchedPos = 14;
+         }
+         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x40L);
+      case 78:
+         return jjMoveStringLiteralDfa15_0(active2, 0x2L, active3, 0L);
+      case 98:
+         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x4000L);
+      case 101:
+         if ((active2 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 184;
+            jjmatchedPos = 14;
+         }
+         return jjMoveStringLiteralDfa15_0(active2, 0L, active3, 0x40L);
+      case 110:
+         return jjMoveStringLiteralDfa15_0(active2, 0x2L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 14);
+}
+private int jjMoveStringLiteralDfa15_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 14);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 14);
+   }
+   switch(curChar)
+   {
+      case 76:
+         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x4000L);
+      case 78:
+         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x40L);
+      case 83:
+         return jjMoveStringLiteralDfa16_0(active2, 0x2L, active3, 0L);
+      case 108:
+         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x4000L);
+      case 110:
+         return jjMoveStringLiteralDfa16_0(active2, 0L, active3, 0x40L);
+      case 115:
+         return jjMoveStringLiteralDfa16_0(active2, 0x2L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 15);
+}
+private int jjMoveStringLiteralDfa16_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 15);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 15);
+   }
+   switch(curChar)
+   {
+      case 65:
+         return jjMoveStringLiteralDfa17_0(active2, 0x2L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa17_0(active2, 0L, active3, 0x40L);
+      case 69:
+         if ((active3 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 206;
+            jjmatchedPos = 16;
+         }
+         break;
+      case 97:
+         return jjMoveStringLiteralDfa17_0(active2, 0x2L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa17_0(active2, 0L, active3, 0x40L);
+      case 101:
+         if ((active3 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 206;
+            jjmatchedPos = 16;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 16);
+}
+private int jjMoveStringLiteralDfa17_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 16);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 16);
+   }
+   switch(curChar)
+   {
+      case 67:
+         return jjMoveStringLiteralDfa18_0(active2, 0x2L, active3, 0L);
+      case 69:
+         return jjMoveStringLiteralDfa18_0(active2, 0L, active3, 0x40L);
+      case 99:
+         return jjMoveStringLiteralDfa18_0(active2, 0x2L, active3, 0L);
+      case 101:
+         return jjMoveStringLiteralDfa18_0(active2, 0L, active3, 0x40L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 17);
+}
+private int jjMoveStringLiteralDfa18_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 17);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 17);
+   }
+   switch(curChar)
+   {
+      case 83:
+         if ((active3 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 198;
+            jjmatchedPos = 18;
+         }
+         break;
+      case 84:
+         return jjMoveStringLiteralDfa19_0(active2, 0x2L, active3, 0L);
+      case 115:
+         if ((active3 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 198;
+            jjmatchedPos = 18;
+         }
+         break;
+      case 116:
+         return jjMoveStringLiteralDfa19_0(active2, 0x2L, active3, 0L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 18);
+}
+private int jjMoveStringLiteralDfa19_0(long old2, long active2, long old3, long active3)
+{
+   if (((active2 &= old2) | (active3 &= old3)) == 0L)
+      return jjMoveNfa_0(5, 18);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 18);
+   }
+   switch(curChar)
+   {
+      case 73:
+         return jjMoveStringLiteralDfa20_0(active2, 0x2L);
+      case 105:
+         return jjMoveStringLiteralDfa20_0(active2, 0x2L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 19);
+}
+private int jjMoveStringLiteralDfa20_0(long old2, long active2)
+{
+   if (((active2 &= old2)) == 0L)
+      return jjMoveNfa_0(5, 19);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 19);
+   }
+   switch(curChar)
+   {
+      case 79:
+         return jjMoveStringLiteralDfa21_0(active2, 0x2L);
+      case 111:
+         return jjMoveStringLiteralDfa21_0(active2, 0x2L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 20);
+}
+private int jjMoveStringLiteralDfa21_0(long old2, long active2)
+{
+   if (((active2 &= old2)) == 0L)
+      return jjMoveNfa_0(5, 20);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 20);
+   }
+   switch(curChar)
+   {
+      case 78:
+         if ((active2 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 129;
+            jjmatchedPos = 21;
+         }
+         break;
+      case 110:
+         if ((active2 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 129;
+            jjmatchedPos = 21;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 21);
+}
 static final long[] jjbitVec0 = {
    0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
-};

+};
 static final long[] jjbitVec2 = {
    0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
-};

-private int jjMoveNfa_0(int startState, int curPos)

-{

-   int strKind = jjmatchedKind;

-   int strPos = jjmatchedPos;

-   int seenUpto;

-   input_stream.backup(seenUpto = curPos + 1);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) { throw new Error("Internal Error"); }

-   curPos = 0;

-   int startsAt = 0;

-   jjnewStateCnt = 71;

-   int i = 1;

-   jjstateSet[0] = startState;

-   int kind = 0x7fffffff;

-   for (;;)

-   {

-      if (++jjround == 0x7fffffff)

-         ReInitRounds();

-      if (curChar < 64)

-      {

-         long l = 1L << curChar;

-         do

-         {

-            switch(jjstateSet[--i])

-            {

-               case 5:

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

-                  {

-                     if (kind > 35)

-                        kind = 35;

-                     jjCheckNAddStates(0, 6);

-                  }

-                  else if (curChar == 46)

-                     jjCheckNAddTwoStates(51, 61);

-                  else if (curChar == 34)

-                     jjCheckNAddTwoStates(48, 49);

-                  else if (curChar == 39)

-                     jjCheckNAddTwoStates(43, 44);

-                  else if (curChar == 58)

-                     jjAddStates(7, 9);

-                  else if (curChar == 47)

-                     jjstateSet[jjnewStateCnt++] = 6;

-                  else if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 0;

-                  break;

-               case 0:

-                  if (curChar == 45)

-                     jjCheckNAddStates(10, 12);

-                  break;

-               case 1:

-                  if ((0xffffffffffffdbffL & l) != 0L)

-                     jjCheckNAddStates(10, 12);

-                  break;

-               case 2:

-                  if ((0x2400L & l) != 0L && kind > 6)

-                     kind = 6;

-                  break;

-               case 3:

-                  if (curChar == 10 && kind > 6)

-                     kind = 6;

-                  break;

-               case 4:

-                  if (curChar == 13)

-                     jjstateSet[jjnewStateCnt++] = 3;

-                  break;

-               case 6:

-                  if (curChar == 42)

-                     jjCheckNAddTwoStates(7, 8);

-                  break;

-               case 7:

-                  if ((0xfffffbffffffffffL & l) != 0L)

-                     jjCheckNAddTwoStates(7, 8);

-                  break;

-               case 8:

-                  if (curChar == 42)

-                     jjCheckNAddStates(13, 15);

-                  break;

-               case 9:

-                  if ((0xffff7bffffffffffL & l) != 0L)

-                     jjCheckNAddTwoStates(10, 8);

-                  break;

-               case 10:

-                  if ((0xfffffbffffffffffL & l) != 0L)

-                     jjCheckNAddTwoStates(10, 8);

-                  break;

-               case 11:

-                  if (curChar == 47 && kind > 7)

-                     kind = 7;

-                  break;

-               case 12:

-                  if (curChar == 47)

-                     jjstateSet[jjnewStateCnt++] = 6;

-                  break;

-               case 14:

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

-                     break;

-                  if (kind > 228)

-                     kind = 228;

-                  jjstateSet[jjnewStateCnt++] = 14;

-                  break;

-               case 15:

-                  if (curChar == 58)

-                     jjAddStates(7, 9);

-                  break;

-               case 17:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjAddStates(16, 17);

-                  break;

-               case 18:

-                  if (curChar == 46)

-                     jjstateSet[jjnewStateCnt++] = 19;

-                  break;

-               case 20:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjstateSet[jjnewStateCnt++] = 20;

-                  break;

-               case 21:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddStates(18, 24);

-                  break;

-               case 22:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(22);

-                  break;

-               case 23:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(23, 24);

-                  break;

-               case 24:

-                  if (curChar == 46)

-                     jjCheckNAdd(25);

-                  break;

-               case 25:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(25);

-                  break;

-               case 26:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(26, 27);

-                  break;

-               case 28:

-                  if ((0x280000000000L & l) != 0L)

-                     jjAddStates(25, 26);

-                  break;

-               case 29:

-                  if (curChar == 46)

-                     jjCheckNAdd(30);

-                  break;

-               case 30:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(30);

-                  break;

-               case 31:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddStates(27, 29);

-                  break;

-               case 32:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(32);

-                  break;

-               case 33:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(33, 34);

-                  break;

-               case 34:

-                  if (curChar == 46)

-                     jjCheckNAdd(35);

-                  break;

-               case 35:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(35);

-                  break;

-               case 36:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddStates(30, 32);

-                  break;

-               case 37:

-                  if (curChar == 46)

-                     jjCheckNAdd(38);

-                  break;

-               case 38:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(38, 27);

-                  break;

-               case 39:

-                  if (curChar == 46)

-                     jjCheckNAddTwoStates(40, 41);

-                  break;

-               case 40:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(40);

-                  break;

-               case 41:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(41, 27);

-                  break;

-               case 42:

-                  if (curChar == 39)

-                     jjCheckNAddTwoStates(43, 44);

-                  break;

-               case 43:

-                  if ((0xffffff7fffffffffL & l) != 0L)

-                     jjCheckNAddTwoStates(43, 44);

-                  break;

-               case 44:

-                  if (curChar != 39)

-                     break;

-                  if (kind > 232)

-                     kind = 232;

-                  jjstateSet[jjnewStateCnt++] = 45;

-                  break;

-               case 45:

-                  if (curChar == 39)

-                     jjCheckNAddTwoStates(46, 44);

-                  break;

-               case 46:

-                  if ((0xffffff7fffffffffL & l) != 0L)

-                     jjCheckNAddTwoStates(46, 44);

-                  break;

-               case 47:

-                  if (curChar == 34)

-                     jjCheckNAddTwoStates(48, 49);

-                  break;

-               case 48:

-                  if ((0xfffffffbffffdbffL & l) != 0L)

-                     jjCheckNAddTwoStates(48, 49);

-                  break;

-               case 49:

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

-                     kind = 233;

-                  break;

-               case 50:

-                  if (curChar == 46)

-                     jjCheckNAddTwoStates(51, 61);

-                  break;

-               case 51:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddTwoStates(51, 52);

-                  break;

-               case 53:

-                  if ((0x280000000000L & l) != 0L)

-                     jjAddStates(33, 34);

-                  break;

-               case 54:

-                  if (curChar == 46)

-                     jjCheckNAdd(55);

-                  break;

-               case 55:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAdd(55);

-                  break;

-               case 56:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddStates(35, 37);

-                  break;

-               case 57:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAdd(57);

-                  break;

-               case 58:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddTwoStates(58, 59);

-                  break;

-               case 59:

-                  if (curChar == 46)

-                     jjCheckNAdd(60);

-                  break;

-               case 60:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAdd(60);

-                  break;

-               case 61:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAdd(61);

-                  break;

-               case 62:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddStates(0, 6);

-                  break;

-               case 63:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddTwoStates(63, 52);

-                  break;

-               case 64:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddStates(38, 40);

-                  break;

-               case 65:

-                  if (curChar == 46)

-                     jjCheckNAdd(66);

-                  break;

-               case 66:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddTwoStates(66, 52);

-                  break;

-               case 67:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAddTwoStates(67, 68);

-                  break;

-               case 68:

-                  if (curChar == 46)

-                     jjCheckNAdd(69);

-                  break;

-               case 69:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAdd(69);

-                  break;

-               case 70:

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

-                     break;

-                  if (kind > 35)

-                     kind = 35;

-                  jjCheckNAdd(70);

-                  break;

-               default : break;

-            }

-         } while(i != startsAt);

-      }

-      else if (curChar < 128)

-      {

-         long l = 1L << (curChar & 077);

-         do

-         {

-            switch(jjstateSet[--i])

-            {

-               case 5:

-               case 13:

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

-                     break;

-                  if (kind > 228)

-                     kind = 228;

-                  jjCheckNAddTwoStates(13, 14);

-                  break;

-               case 1:

-                  jjAddStates(10, 12);

-                  break;

-               case 7:

-                  jjCheckNAddTwoStates(7, 8);

-                  break;

-               case 9:

-               case 10:

-                  jjCheckNAddTwoStates(10, 8);

-                  break;

-               case 14:

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

-                     break;

-                  if (kind > 228)

-                     kind = 228;

-                  jjCheckNAdd(14);

-                  break;

-               case 16:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddStates(41, 43);

-                  break;

-               case 17:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(17, 18);

-                  break;

-               case 19:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAddTwoStates(19, 20);

-                  break;

-               case 20:

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

-                     break;

-                  if (kind > 231)

-                     kind = 231;

-                  jjCheckNAdd(20);

-                  break;

-               case 27:

-                  if ((0x2000000020L & l) != 0L)

-                     jjAddStates(44, 46);

-                  break;

-               case 43:

-                  jjCheckNAddTwoStates(43, 44);

-                  break;

-               case 46:

-                  jjCheckNAddTwoStates(46, 44);

-                  break;

-               case 48:

-                  jjAddStates(47, 48);

-                  break;

-               case 52:

-                  if ((0x2000000020L & l) != 0L)

-                     jjAddStates(49, 51);

-                  break;

-               default : break;

-            }

-         } while(i != startsAt);

-      }

-      else

-      {

-         int hiByte = (int)(curChar >> 8);

-         int i1 = hiByte >> 6;

-         long l1 = 1L << (hiByte & 077);

-         int i2 = (curChar & 0xff) >> 6;

-         long l2 = 1L << (curChar & 077);

-         do

-         {

-            switch(jjstateSet[--i])

-            {

-               case 1:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjAddStates(10, 12);

-                  break;

-               case 7:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddTwoStates(7, 8);

-                  break;

-               case 9:

-               case 10:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddTwoStates(10, 8);

-                  break;

-               case 43:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddTwoStates(43, 44);

-                  break;

-               case 46:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddTwoStates(46, 44);

-                  break;

-               case 48:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjAddStates(47, 48);

-                  break;

-               default : break;

-            }

-         } while(i != startsAt);

-      }

-      if (kind != 0x7fffffff)

-      {

-         jjmatchedKind = kind;

-         jjmatchedPos = curPos;

-         kind = 0x7fffffff;

-      }

-      ++curPos;

-      if ((i = jjnewStateCnt) == (startsAt = 71 - (jjnewStateCnt = startsAt)))

-         break;

-      try { curChar = input_stream.readChar(); }

-      catch(java.io.IOException e) { break; }

-   }

-   if (jjmatchedPos > strPos)

-      return curPos;

-

-   int toRet = Math.max(curPos, seenUpto);

-

-   if (curPos < toRet)

-      for (i = toRet - Math.min(curPos, seenUpto); i-- > 0; )

-         try { curChar = input_stream.readChar(); }

-         catch(java.io.IOException e) { throw new Error("Internal Error : Please send a bug report."); }

-

-   if (jjmatchedPos < strPos)

-   {

-      jjmatchedKind = strKind;

-      jjmatchedPos = strPos;

-   }

-   else if (jjmatchedPos == strPos && jjmatchedKind > strKind)

-      jjmatchedKind = strKind;

-

-   return toRet;

-}

+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+   int strKind = jjmatchedKind;
+   int strPos = jjmatchedPos;
+   int seenUpto;
+   input_stream.backup(seenUpto = curPos + 1);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) { throw new Error("Internal Error"); }
+   curPos = 0;
+   int startsAt = 0;
+   jjnewStateCnt = 71;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 5:
+                  if ((0x3ff000000000000L & l) != 0L)
+                  {
+                     if (kind > 35)
+                        kind = 35;
+                     jjCheckNAddStates(0, 6);
+                  }
+                  else if (curChar == 46)
+                     jjCheckNAddTwoStates(51, 61);
+                  else if (curChar == 34)
+                     jjCheckNAddTwoStates(48, 49);
+                  else if (curChar == 39)
+                     jjCheckNAddTwoStates(43, 44);
+                  else if (curChar == 58)
+                     jjAddStates(7, 9);
+                  else if (curChar == 47)
+                     jjstateSet[jjnewStateCnt++] = 6;
+                  else if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 0;
+                  break;
+               case 0:
+                  if (curChar == 45)
+                     jjCheckNAddStates(10, 12);
+                  break;
+               case 1:
+                  if ((0xffffffffffffdbffL & l) != 0L)
+                     jjCheckNAddStates(10, 12);
+                  break;
+               case 2:
+                  if ((0x2400L & l) != 0L && kind > 6)
+                     kind = 6;
+                  break;
+               case 3:
+                  if (curChar == 10 && kind > 6)
+                     kind = 6;
+                  break;
+               case 4:
+                  if (curChar == 13)
+                     jjstateSet[jjnewStateCnt++] = 3;
+                  break;
+               case 6:
+                  if (curChar == 42)
+                     jjCheckNAddTwoStates(7, 8);
+                  break;
+               case 7:
+                  if ((0xfffffbffffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(7, 8);
+                  break;
+               case 8:
+                  if (curChar == 42)
+                     jjCheckNAddStates(13, 15);
+                  break;
+               case 9:
+                  if ((0xffff7bffffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(10, 8);
+                  break;
+               case 10:
+                  if ((0xfffffbffffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(10, 8);
+                  break;
+               case 11:
+                  if (curChar == 47 && kind > 7)
+                     kind = 7;
+                  break;
+               case 12:
+                  if (curChar == 47)
+                     jjstateSet[jjnewStateCnt++] = 6;
+                  break;
+               case 14:
+                  if ((0x3ff001800000000L & l) == 0L)
+                     break;
+                  if (kind > 228)
+                     kind = 228;
+                  jjstateSet[jjnewStateCnt++] = 14;
+                  break;
+               case 15:
+                  if (curChar == 58)
+                     jjAddStates(7, 9);
+                  break;
+               case 17:
+                  if ((0x3ff001800000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjAddStates(16, 17);
+                  break;
+               case 18:
+                  if (curChar == 46)
+                     jjstateSet[jjnewStateCnt++] = 19;
+                  break;
+               case 20:
+                  if ((0x3ff001800000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjstateSet[jjnewStateCnt++] = 20;
+                  break;
+               case 21:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddStates(18, 24);
+                  break;
+               case 22:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(22);
+                  break;
+               case 23:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(23, 24);
+                  break;
+               case 24:
+                  if (curChar == 46)
+                     jjCheckNAdd(25);
+                  break;
+               case 25:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(25);
+                  break;
+               case 26:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(26, 27);
+                  break;
+               case 28:
+                  if ((0x280000000000L & l) != 0L)
+                     jjAddStates(25, 26);
+                  break;
+               case 29:
+                  if (curChar == 46)
+                     jjCheckNAdd(30);
+                  break;
+               case 30:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(30);
+                  break;
+               case 31:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddStates(27, 29);
+                  break;
+               case 32:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(32);
+                  break;
+               case 33:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(33, 34);
+                  break;
+               case 34:
+                  if (curChar == 46)
+                     jjCheckNAdd(35);
+                  break;
+               case 35:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(35);
+                  break;
+               case 36:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddStates(30, 32);
+                  break;
+               case 37:
+                  if (curChar == 46)
+                     jjCheckNAdd(38);
+                  break;
+               case 38:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(38, 27);
+                  break;
+               case 39:
+                  if (curChar == 46)
+                     jjCheckNAddTwoStates(40, 41);
+                  break;
+               case 40:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(40);
+                  break;
+               case 41:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(41, 27);
+                  break;
+               case 42:
+                  if (curChar == 39)
+                     jjCheckNAddTwoStates(43, 44);
+                  break;
+               case 43:
+                  if ((0xffffff7fffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(43, 44);
+                  break;
+               case 44:
+                  if (curChar != 39)
+                     break;
+                  if (kind > 232)
+                     kind = 232;
+                  jjstateSet[jjnewStateCnt++] = 45;
+                  break;
+               case 45:
+                  if (curChar == 39)
+                     jjCheckNAddTwoStates(46, 44);
+                  break;
+               case 46:
+                  if ((0xffffff7fffffffffL & l) != 0L)
+                     jjCheckNAddTwoStates(46, 44);
+                  break;
+               case 47:
+                  if (curChar == 34)
+                     jjCheckNAddTwoStates(48, 49);
+                  break;
+               case 48:
+                  if ((0xfffffffbffffdbffL & l) != 0L)
+                     jjCheckNAddTwoStates(48, 49);
+                  break;
+               case 49:
+                  if (curChar == 34 && kind > 233)
+                     kind = 233;
+                  break;
+               case 50:
+                  if (curChar == 46)
+                     jjCheckNAddTwoStates(51, 61);
+                  break;
+               case 51:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddTwoStates(51, 52);
+                  break;
+               case 53:
+                  if ((0x280000000000L & l) != 0L)
+                     jjAddStates(33, 34);
+                  break;
+               case 54:
+                  if (curChar == 46)
+                     jjCheckNAdd(55);
+                  break;
+               case 55:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAdd(55);
+                  break;
+               case 56:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddStates(35, 37);
+                  break;
+               case 57:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAdd(57);
+                  break;
+               case 58:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddTwoStates(58, 59);
+                  break;
+               case 59:
+                  if (curChar == 46)
+                     jjCheckNAdd(60);
+                  break;
+               case 60:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAdd(60);
+                  break;
+               case 61:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAdd(61);
+                  break;
+               case 62:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddStates(0, 6);
+                  break;
+               case 63:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddTwoStates(63, 52);
+                  break;
+               case 64:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddStates(38, 40);
+                  break;
+               case 65:
+                  if (curChar == 46)
+                     jjCheckNAdd(66);
+                  break;
+               case 66:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddTwoStates(66, 52);
+                  break;
+               case 67:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAddTwoStates(67, 68);
+                  break;
+               case 68:
+                  if (curChar == 46)
+                     jjCheckNAdd(69);
+                  break;
+               case 69:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAdd(69);
+                  break;
+               case 70:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 35)
+                     kind = 35;
+                  jjCheckNAdd(70);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 5:
+               case 13:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 228)
+                     kind = 228;
+                  jjCheckNAddTwoStates(13, 14);
+                  break;
+               case 1:
+                  jjAddStates(10, 12);
+                  break;
+               case 7:
+                  jjCheckNAddTwoStates(7, 8);
+                  break;
+               case 9:
+               case 10:
+                  jjCheckNAddTwoStates(10, 8);
+                  break;
+               case 14:
+                  if ((0x7fffffe87ffffffL & l) == 0L)
+                     break;
+                  if (kind > 228)
+                     kind = 228;
+                  jjCheckNAdd(14);
+                  break;
+               case 16:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddStates(41, 43);
+                  break;
+               case 17:
+                  if ((0x7fffffe87ffffffL & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(17, 18);
+                  break;
+               case 19:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAddTwoStates(19, 20);
+                  break;
+               case 20:
+                  if ((0x7fffffe87ffffffL & l) == 0L)
+                     break;
+                  if (kind > 231)
+                     kind = 231;
+                  jjCheckNAdd(20);
+                  break;
+               case 27:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(44, 46);
+                  break;
+               case 43:
+                  jjCheckNAddTwoStates(43, 44);
+                  break;
+               case 46:
+                  jjCheckNAddTwoStates(46, 44);
+                  break;
+               case 48:
+                  jjAddStates(47, 48);
+                  break;
+               case 52:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(49, 51);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int hiByte = (int)(curChar >> 8);
+         int i1 = hiByte >> 6;
+         long l1 = 1L << (hiByte & 077);
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 1:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjAddStates(10, 12);
+                  break;
+               case 7:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddTwoStates(7, 8);
+                  break;
+               case 9:
+               case 10:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddTwoStates(10, 8);
+                  break;
+               case 43:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddTwoStates(43, 44);
+                  break;
+               case 46:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddTwoStates(46, 44);
+                  break;
+               case 48:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjAddStates(47, 48);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 71 - (jjnewStateCnt = startsAt)))
+         break;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { break; }
+   }
+   if (jjmatchedPos > strPos)
+      return curPos;
+
+   int toRet = Math.max(curPos, seenUpto);
+
+   if (curPos < toRet)
+      for (i = toRet - Math.min(curPos, seenUpto); i-- > 0; )
+         try { curChar = input_stream.readChar(); }
+         catch(java.io.IOException e) { throw new Error("Internal Error : Please send a bug report."); }
+
+   if (jjmatchedPos < strPos)
+   {
+      jjmatchedKind = strKind;
+      jjmatchedPos = strPos;
+   }
+   else if (jjmatchedPos == strPos && jjmatchedKind > strKind)
+      jjmatchedKind = strKind;
+
+   return toRet;
+}
 static final int[] jjnextStates = {
    63, 64, 65, 52, 67, 68, 70, 16, 21, 39, 1, 2, 4, 8, 9, 11, 
    17, 18, 22, 23, 24, 26, 36, 37, 27, 29, 31, 32, 33, 34, 36, 37, 
    27, 54, 56, 57, 58, 59, 64, 65, 52, 16, 17, 18, 28, 29, 31, 48, 
    49, 53, 54, 56, 
-};

-private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)

-{

-   switch(hiByte)

-   {

-      case 0:

-         return ((jjbitVec2[i2] & l2) != 0L);

-      default :

-         if ((jjbitVec0[i1] & l1) != 0L)

-            return true;

-         return false;

-   }

-}

-

-/** Token literal values. */

-public static final String[] jjstrLiteralImages = {

-"", null, null, null, null, null, null, null, "\72\75", "\52", "\100", "\51", 

-"\174\174", "\72", "\54", "\56", "\56\56", "\44", "\45", "\75", "\76", "\76\75", 

-"\50\53\51", "\74", "\74\75", "\55", "\74\76", "\41\75", "\50", "\53", "\43", "\77", "\73", 

-"\57", "\176", 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, 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, 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, null, null, 

-null, null, null, null, null, };

-

-/** Lexer state names. */

-public static final String[] lexStateNames = {

-   "DEFAULT",

-};

+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec2[i2] & l2) != 0L);
+      default :
+         if ((jjbitVec0[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, null, null, null, null, "\72\75", "\52", "\100", "\51", 
+"\174\174", "\72", "\54", "\56", "\56\56", "\44", "\45", "\75", "\76", "\76\75", 
+"\50\53\51", "\74", "\74\75", "\55", "\74\76", "\41\75", "\50", "\53", "\43", "\77", "\73", 
+"\57", "\176", 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, 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, 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, null, null, 
+null, null, null, null, null, };
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+   "DEFAULT",
+};
 static final long[] jjtoToken = {
    0xffffff8fffffff01L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x39fffffffffL, 
-};

+};
 static final long[] jjtoSkip = {
    0xfeL, 0x0L, 0x0L, 0x0L, 
-};

-protected JavaCharStream input_stream;

-private final int[] jjrounds = new int[71];

-private final int[] jjstateSet = new int[142];

-protected char curChar;

-/** Constructor. */

-public DDLParserTokenManager(JavaCharStream stream){

-   if (JavaCharStream.staticFlag)

-      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");

-   input_stream = stream;

-}

-

-/** Constructor. */

-public DDLParserTokenManager(JavaCharStream stream, int lexState){

-   this(stream);

-   SwitchTo(lexState);

-}

-

-/** Reinitialise parser. */

-public void ReInit(JavaCharStream stream)

-{

-   jjmatchedPos = jjnewStateCnt = 0;

-   curLexState = defaultLexState;

-   input_stream = stream;

-   ReInitRounds();

-}

-private void ReInitRounds()

-{

-   int i;

-   jjround = 0x80000001;

-   for (i = 71; i-- > 0;)

-      jjrounds[i] = 0x80000000;

-}

-

-/** Reinitialise parser. */

-public void ReInit(JavaCharStream stream, int lexState)

-{

-   ReInit(stream);

-   SwitchTo(lexState);

-}

-

-/** Switch to specified lex state. */

-public void SwitchTo(int lexState)

-{

-   if (lexState >= 1 || lexState < 0)

-      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);

-   else

-      curLexState = lexState;

-}

-

-protected Token jjFillToken()

-{

-   final Token t;

-   final String curTokenImage;

-   final int beginLine;

-   final int endLine;

-   final int beginColumn;

-   final int endColumn;

-   String im = jjstrLiteralImages[jjmatchedKind];

-   curTokenImage = (im == null) ? input_stream.GetImage() : im;

-   beginLine = input_stream.getBeginLine();

-   beginColumn = input_stream.getBeginColumn();

-   endLine = input_stream.getEndLine();

-   endColumn = input_stream.getEndColumn();

-   t = Token.newToken(jjmatchedKind, curTokenImage);

-

-   t.beginLine = beginLine;

-   t.endLine = endLine;

-   t.beginColumn = beginColumn;

-   t.endColumn = endColumn;

-

-   return t;

-}

-

-int curLexState = 0;

-int defaultLexState = 0;

-int jjnewStateCnt;

-int jjround;

-int jjmatchedPos;

-int jjmatchedKind;

-

-/** Get the next Token. */

-public Token getNextToken() 

-{

-  Token matchedToken;

-  int curPos = 0;

-

+};
+protected JavaCharStream input_stream;
+private final int[] jjrounds = new int[71];
+private final int[] jjstateSet = new int[142];
+protected char curChar;
+/** Constructor. */
+public DDLParserTokenManager(JavaCharStream stream){
+   if (JavaCharStream.staticFlag)
+      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+   input_stream = stream;
+}
+
+/** Constructor. */
+public DDLParserTokenManager(JavaCharStream stream, int lexState){
+   this(stream);
+   SwitchTo(lexState);
+}
+
+/** Reinitialise parser. */
+public void ReInit(JavaCharStream stream)
+{
+   jjmatchedPos = jjnewStateCnt = 0;
+   curLexState = defaultLexState;
+   input_stream = stream;
+   ReInitRounds();
+}
+private void ReInitRounds()
+{
+   int i;
+   jjround = 0x80000001;
+   for (i = 71; i-- > 0;)
+      jjrounds[i] = 0x80000000;
+}
+
+/** Reinitialise parser. */
+public void ReInit(JavaCharStream stream, int lexState)
+{
+   ReInit(stream);
+   SwitchTo(lexState);
+}
+
+/** Switch to specified lex state. */
+public void SwitchTo(int lexState)
+{
+   if (lexState >= 1 || lexState < 0)
+      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+   else
+      curLexState = lexState;
+}
+
+protected Token jjFillToken()
+{
+   final Token t;
+   final String curTokenImage;
+   final int beginLine;
+   final int endLine;
+   final int beginColumn;
+   final int endColumn;
+   String im = jjstrLiteralImages[jjmatchedKind];
+   curTokenImage = (im == null) ? input_stream.GetImage() : im;
+   beginLine = input_stream.getBeginLine();
+   beginColumn = input_stream.getBeginColumn();
+   endLine = input_stream.getEndLine();
+   endColumn = input_stream.getEndColumn();
+   t = Token.newToken(jjmatchedKind, curTokenImage);
+
+   t.beginLine = beginLine;
+   t.endLine = endLine;
+   t.beginColumn = beginColumn;
+   t.endColumn = endColumn;
+
+   return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken() 
+{
+  Token matchedToken;
+  int curPos = 0;
+
   EOFLoop :
-  for (;;)

-  {

-   try

-   {

-      curChar = input_stream.BeginToken();

-   }

-   catch(java.io.IOException e)

-   {

-      jjmatchedKind = 0;

-      matchedToken = jjFillToken();

-      return matchedToken;

-   }

-

-   jjmatchedKind = 0x7fffffff;

-   jjmatchedPos = 0;

-   curPos = jjMoveStringLiteralDfa0_0();

-   if (jjmatchedKind != 0x7fffffff)

-   {

-      if (jjmatchedPos + 1 < curPos)

-         input_stream.backup(curPos - jjmatchedPos - 1);

-      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)

-      {

-         matchedToken = jjFillToken();

-         return matchedToken;

-      }

-      else

-      {

-         continue EOFLoop;

-      }

-   }

-   int error_line = input_stream.getEndLine();

-   int error_column = input_stream.getEndColumn();

-   String error_after = null;

-   boolean EOFSeen = false;

-   try { input_stream.readChar(); input_stream.backup(1); }

-   catch (java.io.IOException e1) {

-      EOFSeen = true;

-      error_after = curPos <= 1 ? "" : input_stream.GetImage();

-      if (curChar == '\n' || curChar == '\r') {

-         error_line++;

-         error_column = 0;

-      }

-      else

-         error_column++;

-   }

-   if (!EOFSeen) {

-      input_stream.backup(1);

-      error_after = curPos <= 1 ? "" : input_stream.GetImage();

-   }

-   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);

-  }

-}

-

-private void jjCheckNAdd(int state)

-{

-   if (jjrounds[state] != jjround)

-   {

-      jjstateSet[jjnewStateCnt++] = state;

-      jjrounds[state] = jjround;

-   }

-}

-private void jjAddStates(int start, int end)

-{

-   do {

-      jjstateSet[jjnewStateCnt++] = jjnextStates[start];

-   } while (start++ != end);

-}

-private void jjCheckNAddTwoStates(int state1, int state2)

-{

-   jjCheckNAdd(state1);

-   jjCheckNAdd(state2);

-}

-

-private void jjCheckNAddStates(int start, int end)

-{

-   do {

-      jjCheckNAdd(jjnextStates[start]);

-   } while (start++ != end);

-}

-

-}

+  for (;;)
+  {
+   try
+   {
+      curChar = input_stream.BeginToken();
+   }
+   catch(java.io.IOException e)
+   {
+      jjmatchedKind = 0;
+      matchedToken = jjFillToken();
+      return matchedToken;
+   }
+
+   jjmatchedKind = 0x7fffffff;
+   jjmatchedPos = 0;
+   curPos = jjMoveStringLiteralDfa0_0();
+   if (jjmatchedKind != 0x7fffffff)
+   {
+      if (jjmatchedPos + 1 < curPos)
+         input_stream.backup(curPos - jjmatchedPos - 1);
+      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+      {
+         matchedToken = jjFillToken();
+         return matchedToken;
+      }
+      else
+      {
+         continue EOFLoop;
+      }
+   }
+   int error_line = input_stream.getEndLine();
+   int error_column = input_stream.getEndColumn();
+   String error_after = null;
+   boolean EOFSeen = false;
+   try { input_stream.readChar(); input_stream.backup(1); }
+   catch (java.io.IOException e1) {
+      EOFSeen = true;
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+      if (curChar == '\n' || curChar == '\r') {
+         error_line++;
+         error_column = 0;
+      }
+      else
+         error_column++;
+   }
+   if (!EOFSeen) {
+      input_stream.backup(1);
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+   }
+   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+  }
+}
+
+private void jjCheckNAdd(int state)
+{
+   if (jjrounds[state] != jjround)
+   {
+      jjstateSet[jjnewStateCnt++] = state;
+      jjrounds[state] = jjround;
+   }
+}
+private void jjAddStates(int start, int end)
+{
+   do {
+      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+   } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+   jjCheckNAdd(state1);
+   jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+   do {
+      jjCheckNAdd(jjnextStates[start]);
+   } while (start++ != end);
+}
+
+}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTreeConstants.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTreeConstants.java
index 43fd5d0..a9d99e4 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTreeConstants.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserTreeConstants.java
@@ -1,14 +1,14 @@
-/* Generated By:JavaCC: Do not edit this line. DDLParserTreeConstants.java Version 5.0 */

-package org.eclipse.persistence.tools.oracleddl.parser;

-

+/* Generated By:JavaCC: Do not edit this line. DDLParserTreeConstants.java Version 5.0 */
+package org.eclipse.persistence.tools.oracleddl.parser;
+
 @SuppressWarnings("all")
-public interface DDLParserTreeConstants

-{

-  public int JJTVOID = 0;

-

-

-  public String[] jjtNodeName = {

-    "void",

-  };

-}

-/* JavaCC - OriginalChecksum=ff721d13e20dfc97bde0c0e42bb97d94 (do not edit this line) */

+public interface DDLParserTreeConstants
+{
+  public int JJTVOID = 0;
+
+
+  public String[] jjtNodeName = {
+    "void",
+  };
+}
+/* JavaCC - OriginalChecksum=46585a43045182b363c9163878500a1a (do not edit this line) */
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserVisitor.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserVisitor.java
index 3385cc7..0371c61 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserVisitor.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParserVisitor.java
@@ -1,9 +1,9 @@
-/* Generated By:JavaCC: Do not edit this line. DDLParserVisitor.java Version 5.0 */

-package org.eclipse.persistence.tools.oracleddl.parser;

-

+/* Generated By:JavaCC: Do not edit this line. DDLParserVisitor.java Version 5.0 */
+package org.eclipse.persistence.tools.oracleddl.parser;
+
 @SuppressWarnings("all")
-public interface DDLParserVisitor

-{

-  public Object visit(SimpleNode node, Object data);

-}

-/* JavaCC - OriginalChecksum=0a5f7f17a0ed392fca069d04f2c11cb5 (do not edit this line) */

+public interface DDLParserVisitor
+{
+  public Object visit(SimpleNode node, Object data);
+}
+/* JavaCC - OriginalChecksum=1ef80f9e87a51db5c74f170fc3e9781d (do not edit this line) */
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JJTDDLParserState.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JJTDDLParserState.java
index 720c2e1..ba336e5 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JJTDDLParserState.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JJTDDLParserState.java
@@ -1,124 +1,124 @@
-/* Generated By:JavaCC: Do not edit this line. JJTDDLParserState.java Version 5.0 */

-package org.eclipse.persistence.tools.oracleddl.parser;

-

+/* Generated By:JavaCC: Do not edit this line. JJTDDLParserState.java Version 5.0 */
+package org.eclipse.persistence.tools.oracleddl.parser;
+
 @SuppressWarnings("all")
-public class JJTDDLParserState {

-  private java.util.List<Node> nodes;

-  private java.util.List<Integer> marks;

-

-  private int sp;        // number of nodes on stack

-  private int mk;        // current mark

-  private boolean node_created;

-

-  public JJTDDLParserState() {

-    nodes = new java.util.ArrayList<Node>();

-    marks = new java.util.ArrayList<Integer>();

-    sp = 0;

-    mk = 0;

-  }

-

-  /* Determines whether the current node was actually closed and

-     pushed.  This should only be called in the final user action of a

-     node scope.  */

-  public boolean nodeCreated() {

-    return node_created;

-  }

-

-  /* Call this to reinitialize the node stack.  It is called

-     automatically by the parser's ReInit() method. */

-  public void reset() {

-    nodes.clear();

-    marks.clear();

-    sp = 0;

-    mk = 0;

-  }

-

-  /* Returns the root node of the AST.  It only makes sense to call

-     this after a successful parse. */

-  public Node rootNode() {

-    return nodes.get(0);

-  }

-

-  /* Pushes a node on to the stack. */

-  public void pushNode(Node n) {

-    nodes.add(n);

-    ++sp;

-  }

-

-  /* Returns the node on the top of the stack, and remove it from the

-     stack.  */

-  public Node popNode() {

-    if (--sp < mk) {

-      mk = marks.remove(marks.size()-1);

-    }

-    return nodes.remove(nodes.size()-1);

-  }

-

-  /* Returns the node currently on the top of the stack. */

-  public Node peekNode() {

-    return nodes.get(nodes.size()-1);

-  }

-

-  /* Returns the number of children on the stack in the current node

-     scope. */

-  public int nodeArity() {

-    return sp - mk;

-  }

-

-

-  public void clearNodeScope(Node n) {

-    while (sp > mk) {

-      popNode();

-    }

-    mk = marks.remove(marks.size()-1);

-  }

-

-

-  public void openNodeScope(Node n) {

-    marks.add(mk);

-    mk = sp;

-    n.jjtOpen();

-  }

-

-

-  /* A definite node is constructed from a specified number of

-     children.  That number of nodes are popped from the stack and

-     made the children of the definite node.  Then the definite node

-     is pushed on to the stack. */

-  public void closeNodeScope(Node n, int num) {

-    mk = marks.remove(marks.size()-1);

-    while (num-- > 0) {

-      Node c = popNode();

-      c.jjtSetParent(n);

-      n.jjtAddChild(c, num);

-    }

-    n.jjtClose();

-    pushNode(n);

-    node_created = true;

-  }

-

-

-  /* A conditional node is constructed if its condition is true.  All

-     the nodes that have been pushed since the node was opened are

-     made children of the conditional node, which is then pushed

-     on to the stack.  If the condition is false the node is not

-     constructed and they are left on the stack. */

-  public void closeNodeScope(Node n, boolean condition) {

-    if (condition) {

-      int a = nodeArity();

-      mk = marks.remove(marks.size()-1);

-      while (a-- > 0) {

-        Node c = popNode();

-        c.jjtSetParent(n);

-        n.jjtAddChild(c, a);

-      }

-      n.jjtClose();

-      pushNode(n);

-      node_created = true;

-    } else {

-      mk = marks.remove(marks.size()-1);

-      node_created = false;

-    }

-  }

-}

-/* JavaCC - OriginalChecksum=f016bbdc3ac5024ef62e899b27035ffd (do not edit this line) */

+public class JJTDDLParserState {
+  private java.util.List<Node> nodes;
+  private java.util.List<Integer> marks;
+
+  private int sp;        // number of nodes on stack
+  private int mk;        // current mark
+  private boolean node_created;
+
+  public JJTDDLParserState() {
+    nodes = new java.util.ArrayList<Node>();
+    marks = new java.util.ArrayList<Integer>();
+    sp = 0;
+    mk = 0;
+  }
+
+  /* Determines whether the current node was actually closed and
+     pushed.  This should only be called in the final user action of a
+     node scope.  */
+  public boolean nodeCreated() {
+    return node_created;
+  }
+
+  /* Call this to reinitialize the node stack.  It is called
+     automatically by the parser's ReInit() method. */
+  public void reset() {
+    nodes.clear();
+    marks.clear();
+    sp = 0;
+    mk = 0;
+  }
+
+  /* Returns the root node of the AST.  It only makes sense to call
+     this after a successful parse. */
+  public Node rootNode() {
+    return nodes.get(0);
+  }
+
+  /* Pushes a node on to the stack. */
+  public void pushNode(Node n) {
+    nodes.add(n);
+    ++sp;
+  }
+
+  /* Returns the node on the top of the stack, and remove it from the
+     stack.  */
+  public Node popNode() {
+    if (--sp < mk) {
+      mk = marks.remove(marks.size()-1);
+    }
+    return nodes.remove(nodes.size()-1);
+  }
+
+  /* Returns the node currently on the top of the stack. */
+  public Node peekNode() {
+    return nodes.get(nodes.size()-1);
+  }
+
+  /* Returns the number of children on the stack in the current node
+     scope. */
+  public int nodeArity() {
+    return sp - mk;
+  }
+
+
+  public void clearNodeScope(Node n) {
+    while (sp > mk) {
+      popNode();
+    }
+    mk = marks.remove(marks.size()-1);
+  }
+
+
+  public void openNodeScope(Node n) {
+    marks.add(mk);
+    mk = sp;
+    n.jjtOpen();
+  }
+
+
+  /* A definite node is constructed from a specified number of
+     children.  That number of nodes are popped from the stack and
+     made the children of the definite node.  Then the definite node
+     is pushed on to the stack. */
+  public void closeNodeScope(Node n, int num) {
+    mk = marks.remove(marks.size()-1);
+    while (num-- > 0) {
+      Node c = popNode();
+      c.jjtSetParent(n);
+      n.jjtAddChild(c, num);
+    }
+    n.jjtClose();
+    pushNode(n);
+    node_created = true;
+  }
+
+
+  /* A conditional node is constructed if its condition is true.  All
+     the nodes that have been pushed since the node was opened are
+     made children of the conditional node, which is then pushed
+     on to the stack.  If the condition is false the node is not
+     constructed and they are left on the stack. */
+  public void closeNodeScope(Node n, boolean condition) {
+    if (condition) {
+      int a = nodeArity();
+      mk = marks.remove(marks.size()-1);
+      while (a-- > 0) {
+        Node c = popNode();
+        c.jjtSetParent(n);
+        n.jjtAddChild(c, a);
+      }
+      n.jjtClose();
+      pushNode(n);
+      node_created = true;
+    } else {
+      mk = marks.remove(marks.size()-1);
+      node_created = false;
+    }
+  }
+}
+/* JavaCC - OriginalChecksum=1005ce0884103d1b3ff68989172ff4b0 (do not edit this line) */
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JavaCharStream.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JavaCharStream.java
index 0f83421..e050e8c 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JavaCharStream.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/JavaCharStream.java
@@ -1,5 +1,5 @@
-/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 5.0 */

-/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */

+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 5.0 */
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -11,620 +11,620 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

-

-/**

- * An implementation of interface CharStream, where the stream is assumed to

- * contain only ASCII characters (with java-like unicode escape processing).

- */

-

-public

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (with java-like unicode escape processing).
+ */
+
+public
 @SuppressWarnings("all")
-class JavaCharStream

-{

-  /** Whether parser is static. */

-  public static final boolean staticFlag = false;

-

-  static final int hexval(char c) throws java.io.IOException {

-    switch(c)

-    {

-       case '0' :

-          return 0;

-       case '1' :

-          return 1;

-       case '2' :

-          return 2;

-       case '3' :

-          return 3;

-       case '4' :

-          return 4;

-       case '5' :

-          return 5;

-       case '6' :

-          return 6;

-       case '7' :

-          return 7;

-       case '8' :

-          return 8;

-       case '9' :

-          return 9;

-

-       case 'a' :

-       case 'A' :

-          return 10;

-       case 'b' :

-       case 'B' :

-          return 11;

-       case 'c' :

-       case 'C' :

-          return 12;

-       case 'd' :

-       case 'D' :

-          return 13;

-       case 'e' :

-       case 'E' :

-          return 14;

-       case 'f' :

-       case 'F' :

-          return 15;

-    }

-

-    throw new java.io.IOException(); // Should never come here

-  }

-

-/** Position in buffer. */

-  public int bufpos = -1;

-  int bufsize;

-  int available;

-  int tokenBegin;

-  protected int bufline[];

-  protected int bufcolumn[];

-

-  protected int column = 0;

-  protected int line = 1;

-

-  protected boolean prevCharIsCR = false;

-  protected boolean prevCharIsLF = false;

-

-  protected java.io.Reader inputStream;

-

-  protected char[] nextCharBuf;

-  protected char[] buffer;

-  protected int maxNextCharInd = 0;

-  protected int nextCharInd = -1;

-  protected int inBuf = 0;

-  protected int tabSize = 8;

-

-  protected void setTabSize(int i) { tabSize = i; }

-  protected int getTabSize(int i) { return tabSize; }

-

-  protected void ExpandBuff(boolean wrapAround)

-  {

-    char[] newbuffer = new char[bufsize + 2048];

-    int newbufline[] = new int[bufsize + 2048];

-    int newbufcolumn[] = new int[bufsize + 2048];

-

-    try

-    {

-      if (wrapAround)

-      {

-        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);

-        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);

-        buffer = newbuffer;

-

-        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);

-        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);

-        bufline = newbufline;

-

-        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);

-        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);

-        bufcolumn = newbufcolumn;

-

-        bufpos += (bufsize - tokenBegin);

-    }

-    else

-    {

-        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);

-        buffer = newbuffer;

-

-        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);

-        bufline = newbufline;

-

-        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);

-        bufcolumn = newbufcolumn;

-

-        bufpos -= tokenBegin;

-      }

-    }

-    catch (Throwable t)

-    {

-      throw new Error(t.getMessage());

-    }

-

-    available = (bufsize += 2048);

-    tokenBegin = 0;

-  }

-

-  protected void FillBuff() throws java.io.IOException

-  {

-    int i;

-    if (maxNextCharInd == 4096)

-      maxNextCharInd = nextCharInd = 0;

-

-    try {

-      if ((i = inputStream.read(nextCharBuf, maxNextCharInd,

-                                          4096 - maxNextCharInd)) == -1)

-      {

-        inputStream.close();

-        throw new java.io.IOException();

-      }

-      else

-         maxNextCharInd += i;

-      return;

-    }

-    catch(java.io.IOException e) {

-      if (bufpos != 0)

-      {

-        --bufpos;

-        backup(0);

-      }

-      else

-      {

-        bufline[bufpos] = line;

-        bufcolumn[bufpos] = column;

-      }

-      throw e;

-    }

-  }

-

-  protected char ReadByte() throws java.io.IOException

-  {

-    if (++nextCharInd >= maxNextCharInd)

-      FillBuff();

-

-    return nextCharBuf[nextCharInd];

-  }

-

-/** @return starting character for token. */

-  public char BeginToken() throws java.io.IOException

-  {

-    if (inBuf > 0)

-    {

-      --inBuf;

-

-      if (++bufpos == bufsize)

-        bufpos = 0;

-

-      tokenBegin = bufpos;

-      return buffer[bufpos];

-    }

-

-    tokenBegin = 0;

-    bufpos = -1;

-

-    return readChar();

-  }

-

-  protected void AdjustBuffSize()

-  {

-    if (available == bufsize)

-    {

-      if (tokenBegin > 2048)

-      {

-        bufpos = 0;

-        available = tokenBegin;

-      }

-      else

-        ExpandBuff(false);

-    }

-    else if (available > tokenBegin)

-      available = bufsize;

-    else if ((tokenBegin - available) < 2048)

-      ExpandBuff(true);

-    else

-      available = tokenBegin;

-  }

-

-  protected void UpdateLineColumn(char c)

-  {

-    column++;

-

-    if (prevCharIsLF)

-    {

-      prevCharIsLF = false;

-      line += (column = 1);

-    }

-    else if (prevCharIsCR)

-    {

-      prevCharIsCR = false;

-      if (c == '\n')

-      {

-        prevCharIsLF = true;

-      }

-      else

-        line += (column = 1);

-    }

-

-    switch (c)

-    {

-      case '\r' :

-        prevCharIsCR = true;

-        break;

-      case '\n' :

-        prevCharIsLF = true;

-        break;

-      case '\t' :

-        column--;

-        column += (tabSize - (column % tabSize));

-        break;

-      default :

-        break;

-    }

-

-    bufline[bufpos] = line;

-    bufcolumn[bufpos] = column;

-  }

-

-/** Read a character. */

-  public char readChar() throws java.io.IOException

-  {

-    if (inBuf > 0)

-    {

-      --inBuf;

-

-      if (++bufpos == bufsize)

-        bufpos = 0;

-

-      return buffer[bufpos];

-    }

-

-    char c;

-

-    if (++bufpos == available)

-      AdjustBuffSize();

-

-    if ((buffer[bufpos] = c = ReadByte()) == '\\')

-    {

-      UpdateLineColumn(c);

-

-      int backSlashCnt = 1;

-

-      for (;;) // Read all the backslashes

-      {

-        if (++bufpos == available)

-          AdjustBuffSize();

-

-        try

-        {

-          if ((buffer[bufpos] = c = ReadByte()) != '\\')

-          {

-            UpdateLineColumn(c);

-            // found a non-backslash char.

-            if ((c == 'u') && ((backSlashCnt & 1) == 1))

-            {

-              if (--bufpos < 0)

-                bufpos = bufsize - 1;

-

-              break;

-            }

-

-            backup(backSlashCnt);

-            return '\\';

-          }

-        }

-        catch(java.io.IOException e)

-        {

-	  // We are returning one backslash so we should only backup (count-1)

-          if (backSlashCnt > 1)

-            backup(backSlashCnt-1);

-

-          return '\\';

-        }

-

-        UpdateLineColumn(c);

-        backSlashCnt++;

-      }

-

-      // Here, we have seen an odd number of backslash's followed by a 'u'

-      try

-      {

-        while ((c = ReadByte()) == 'u')

-          ++column;

-

-        buffer[bufpos] = c = (char)(hexval(c) << 12 |

-                                    hexval(ReadByte()) << 8 |

-                                    hexval(ReadByte()) << 4 |

-                                    hexval(ReadByte()));

-

-        column += 4;

-      }

-      catch(java.io.IOException e)

-      {

-        throw new Error("Invalid escape character at line " + line +

-                                         " column " + column + ".");

-      }

-

-      if (backSlashCnt == 1)

-        return c;

-      else

-      {

-        backup(backSlashCnt - 1);

-        return '\\';

-      }

-    }

-    else

-    {

-      UpdateLineColumn(c);

-      return c;

-    }

-  }

-

-  @Deprecated

-  /**

-   * @deprecated

-   * @see #getEndColumn

-   */

-  public int getColumn() {

-    return bufcolumn[bufpos];

-  }

-

-  @Deprecated

-  /**

-   * @deprecated

-   * @see #getEndLine

-   */

-  public int getLine() {

-    return bufline[bufpos];

-  }

-

-/** Get end column. */

-  public int getEndColumn() {

-    return bufcolumn[bufpos];

-  }

-

-/** Get end line. */

-  public int getEndLine() {

-    return bufline[bufpos];

-  }

-

-/** @return column of token start */

-  public int getBeginColumn() {

-    return bufcolumn[tokenBegin];

-  }

-

-/** @return line number of token start */

-  public int getBeginLine() {

-    return bufline[tokenBegin];

-  }

-

-/** Retreat. */

-  public void backup(int amount) {

-

-    inBuf += amount;

-    if ((bufpos -= amount) < 0)

-      bufpos += bufsize;

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.Reader dstream,

-                 int startline, int startcolumn, int buffersize)

-  {

-    inputStream = dstream;

-    line = startline;

-    column = startcolumn - 1;

-

-    available = bufsize = buffersize;

-    buffer = new char[buffersize];

-    bufline = new int[buffersize];

-    bufcolumn = new int[buffersize];

-    nextCharBuf = new char[4096];

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.Reader dstream,

-                                        int startline, int startcolumn)

-  {

-    this(dstream, startline, startcolumn, 4096);

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.Reader dstream)

-  {

-    this(dstream, 1, 1, 4096);

-  }

-/** Reinitialise. */

-  public void ReInit(java.io.Reader dstream,

-                 int startline, int startcolumn, int buffersize)

-  {

-    inputStream = dstream;

-    line = startline;

-    column = startcolumn - 1;

-

-    if (buffer == null || buffersize != buffer.length)

-    {

-      available = bufsize = buffersize;

-      buffer = new char[buffersize];

-      bufline = new int[buffersize];

-      bufcolumn = new int[buffersize];

-      nextCharBuf = new char[4096];

-    }

-    prevCharIsLF = prevCharIsCR = false;

-    tokenBegin = inBuf = maxNextCharInd = 0;

-    nextCharInd = bufpos = -1;

-  }

-

-/** Reinitialise. */

-  public void ReInit(java.io.Reader dstream,

-                                        int startline, int startcolumn)

-  {

-    ReInit(dstream, startline, startcolumn, 4096);

-  }

-

-/** Reinitialise. */

-  public void ReInit(java.io.Reader dstream)

-  {

-    ReInit(dstream, 1, 1, 4096);

-  }

-/** Constructor. */

-  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,

-  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException

-  {

-    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.InputStream dstream, int startline,

-  int startcolumn, int buffersize)

-  {

-    this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,

-                        int startcolumn) throws java.io.UnsupportedEncodingException

-  {

-    this(dstream, encoding, startline, startcolumn, 4096);

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.InputStream dstream, int startline,

-                        int startcolumn)

-  {

-    this(dstream, startline, startcolumn, 4096);

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException

-  {

-    this(dstream, encoding, 1, 1, 4096);

-  }

-

-/** Constructor. */

-  public JavaCharStream(java.io.InputStream dstream)

-  {

-    this(dstream, 1, 1, 4096);

-  }

-

-/** Reinitialise. */

-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,

-  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException

-  {

-    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);

-  }

-

-/** Reinitialise. */

-  public void ReInit(java.io.InputStream dstream, int startline,

-  int startcolumn, int buffersize)

-  {

-    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);

-  }

-/** Reinitialise. */

-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,

-                     int startcolumn) throws java.io.UnsupportedEncodingException

-  {

-    ReInit(dstream, encoding, startline, startcolumn, 4096);

-  }

-/** Reinitialise. */

-  public void ReInit(java.io.InputStream dstream, int startline,

-                     int startcolumn)

-  {

-    ReInit(dstream, startline, startcolumn, 4096);

-  }

-/** Reinitialise. */

-  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException

-  {

-    ReInit(dstream, encoding, 1, 1, 4096);

-  }

-

-/** Reinitialise. */

-  public void ReInit(java.io.InputStream dstream)

-  {

-    ReInit(dstream, 1, 1, 4096);

-  }

-

-  /** @return token image as String */

-  public String GetImage()

-  {

-    if (bufpos >= tokenBegin)

-      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);

-    else

-      return new String(buffer, tokenBegin, bufsize - tokenBegin) +

-                              new String(buffer, 0, bufpos + 1);

-  }

-

-  /** @return suffix */

-  public char[] GetSuffix(int len)

-  {

-    char[] ret = new char[len];

-

-    if ((bufpos + 1) >= len)

-      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);

-    else

-    {

-      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,

-                                                        len - bufpos - 1);

-      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);

-    }

-

-    return ret;

-  }

-

-  /** Set buffers back to null when finished. */

-  public void Done()

-  {

-    nextCharBuf = null;

-    buffer = null;

-    bufline = null;

-    bufcolumn = null;

-  }

-

-  /**

-   * Method to adjust line and column numbers for the start of a token.

-   */

-  public void adjustBeginLineColumn(int newLine, int newCol)

-  {

-    int start = tokenBegin;

-    int len;

-

-    if (bufpos >= tokenBegin)

-    {

-      len = bufpos - tokenBegin + inBuf + 1;

-    }

-    else

-    {

-      len = bufsize - tokenBegin + bufpos + 1 + inBuf;

-    }

-

-    int i = 0, j = 0, k = 0;

-    int nextColDiff = 0, columnDiff = 0;

-

-    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])

-    {

-      bufline[j] = newLine;

-      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];

-      bufcolumn[j] = newCol + columnDiff;

-      columnDiff = nextColDiff;

-      i++;

-    }

-

-    if (i < len)

-    {

-      bufline[j] = newLine++;

-      bufcolumn[j] = newCol + columnDiff;

-

-      while (i++ < len)

-      {

-        if (bufline[j = start % bufsize] != bufline[++start % bufsize])

-          bufline[j] = newLine++;

-        else

-          bufline[j] = newLine;

-      }

-    }

-

-    line = bufline[j];

-    column = bufcolumn[j];

-  }

-

-}

-/* JavaCC - OriginalChecksum=53254f6a9325378bb7ef0cee733f3fac (do not edit this line) */

+class JavaCharStream
+{
+  /** Whether parser is static. */
+  public static final boolean staticFlag = false;
+
+  static final int hexval(char c) throws java.io.IOException {
+    switch(c)
+    {
+       case '0' :
+          return 0;
+       case '1' :
+          return 1;
+       case '2' :
+          return 2;
+       case '3' :
+          return 3;
+       case '4' :
+          return 4;
+       case '5' :
+          return 5;
+       case '6' :
+          return 6;
+       case '7' :
+          return 7;
+       case '8' :
+          return 8;
+       case '9' :
+          return 9;
+
+       case 'a' :
+       case 'A' :
+          return 10;
+       case 'b' :
+       case 'B' :
+          return 11;
+       case 'c' :
+       case 'C' :
+          return 12;
+       case 'd' :
+       case 'D' :
+          return 13;
+       case 'e' :
+       case 'E' :
+          return 14;
+       case 'f' :
+       case 'F' :
+          return 15;
+    }
+
+    throw new java.io.IOException(); // Should never come here
+  }
+
+/** Position in buffer. */
+  public int bufpos = -1;
+  int bufsize;
+  int available;
+  int tokenBegin;
+  protected int bufline[];
+  protected int bufcolumn[];
+
+  protected int column = 0;
+  protected int line = 1;
+
+  protected boolean prevCharIsCR = false;
+  protected boolean prevCharIsLF = false;
+
+  protected java.io.Reader inputStream;
+
+  protected char[] nextCharBuf;
+  protected char[] buffer;
+  protected int maxNextCharInd = 0;
+  protected int nextCharInd = -1;
+  protected int inBuf = 0;
+  protected int tabSize = 8;
+
+  protected void setTabSize(int i) { tabSize = i; }
+  protected int getTabSize(int i) { return tabSize; }
+
+  protected void ExpandBuff(boolean wrapAround)
+  {
+    char[] newbuffer = new char[bufsize + 2048];
+    int newbufline[] = new int[bufsize + 2048];
+    int newbufcolumn[] = new int[bufsize + 2048];
+
+    try
+    {
+      if (wrapAround)
+      {
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);
+        buffer = newbuffer;
+
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+        bufline = newbufline;
+
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+        bufcolumn = newbufcolumn;
+
+        bufpos += (bufsize - tokenBegin);
+    }
+    else
+    {
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+        buffer = newbuffer;
+
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+        bufline = newbufline;
+
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+        bufcolumn = newbufcolumn;
+
+        bufpos -= tokenBegin;
+      }
+    }
+    catch (Throwable t)
+    {
+      throw new Error(t.getMessage());
+    }
+
+    available = (bufsize += 2048);
+    tokenBegin = 0;
+  }
+
+  protected void FillBuff() throws java.io.IOException
+  {
+    int i;
+    if (maxNextCharInd == 4096)
+      maxNextCharInd = nextCharInd = 0;
+
+    try {
+      if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
+                                          4096 - maxNextCharInd)) == -1)
+      {
+        inputStream.close();
+        throw new java.io.IOException();
+      }
+      else
+         maxNextCharInd += i;
+      return;
+    }
+    catch(java.io.IOException e) {
+      if (bufpos != 0)
+      {
+        --bufpos;
+        backup(0);
+      }
+      else
+      {
+        bufline[bufpos] = line;
+        bufcolumn[bufpos] = column;
+      }
+      throw e;
+    }
+  }
+
+  protected char ReadByte() throws java.io.IOException
+  {
+    if (++nextCharInd >= maxNextCharInd)
+      FillBuff();
+
+    return nextCharBuf[nextCharInd];
+  }
+
+/** @return starting character for token. */
+  public char BeginToken() throws java.io.IOException
+  {
+    if (inBuf > 0)
+    {
+      --inBuf;
+
+      if (++bufpos == bufsize)
+        bufpos = 0;
+
+      tokenBegin = bufpos;
+      return buffer[bufpos];
+    }
+
+    tokenBegin = 0;
+    bufpos = -1;
+
+    return readChar();
+  }
+
+  protected void AdjustBuffSize()
+  {
+    if (available == bufsize)
+    {
+      if (tokenBegin > 2048)
+      {
+        bufpos = 0;
+        available = tokenBegin;
+      }
+      else
+        ExpandBuff(false);
+    }
+    else if (available > tokenBegin)
+      available = bufsize;
+    else if ((tokenBegin - available) < 2048)
+      ExpandBuff(true);
+    else
+      available = tokenBegin;
+  }
+
+  protected void UpdateLineColumn(char c)
+  {
+    column++;
+
+    if (prevCharIsLF)
+    {
+      prevCharIsLF = false;
+      line += (column = 1);
+    }
+    else if (prevCharIsCR)
+    {
+      prevCharIsCR = false;
+      if (c == '\n')
+      {
+        prevCharIsLF = true;
+      }
+      else
+        line += (column = 1);
+    }
+
+    switch (c)
+    {
+      case '\r' :
+        prevCharIsCR = true;
+        break;
+      case '\n' :
+        prevCharIsLF = true;
+        break;
+      case '\t' :
+        column--;
+        column += (tabSize - (column % tabSize));
+        break;
+      default :
+        break;
+    }
+
+    bufline[bufpos] = line;
+    bufcolumn[bufpos] = column;
+  }
+
+/** Read a character. */
+  public char readChar() throws java.io.IOException
+  {
+    if (inBuf > 0)
+    {
+      --inBuf;
+
+      if (++bufpos == bufsize)
+        bufpos = 0;
+
+      return buffer[bufpos];
+    }
+
+    char c;
+
+    if (++bufpos == available)
+      AdjustBuffSize();
+
+    if ((buffer[bufpos] = c = ReadByte()) == '\\')
+    {
+      UpdateLineColumn(c);
+
+      int backSlashCnt = 1;
+
+      for (;;) // Read all the backslashes
+      {
+        if (++bufpos == available)
+          AdjustBuffSize();
+
+        try
+        {
+          if ((buffer[bufpos] = c = ReadByte()) != '\\')
+          {
+            UpdateLineColumn(c);
+            // found a non-backslash char.
+            if ((c == 'u') && ((backSlashCnt & 1) == 1))
+            {
+              if (--bufpos < 0)
+                bufpos = bufsize - 1;
+
+              break;
+            }
+
+            backup(backSlashCnt);
+            return '\\';
+          }
+        }
+        catch(java.io.IOException e)
+        {
+	  // We are returning one backslash so we should only backup (count-1)
+          if (backSlashCnt > 1)
+            backup(backSlashCnt-1);
+
+          return '\\';
+        }
+
+        UpdateLineColumn(c);
+        backSlashCnt++;
+      }
+
+      // Here, we have seen an odd number of backslash's followed by a 'u'
+      try
+      {
+        while ((c = ReadByte()) == 'u')
+          ++column;
+
+        buffer[bufpos] = c = (char)(hexval(c) << 12 |
+                                    hexval(ReadByte()) << 8 |
+                                    hexval(ReadByte()) << 4 |
+                                    hexval(ReadByte()));
+
+        column += 4;
+      }
+      catch(java.io.IOException e)
+      {
+        throw new Error("Invalid escape character at line " + line +
+                                         " column " + column + ".");
+      }
+
+      if (backSlashCnt == 1)
+        return c;
+      else
+      {
+        backup(backSlashCnt - 1);
+        return '\\';
+      }
+    }
+    else
+    {
+      UpdateLineColumn(c);
+      return c;
+    }
+  }
+
+  @Deprecated
+  /**
+   * @deprecated
+   * @see #getEndColumn
+   */
+  public int getColumn() {
+    return bufcolumn[bufpos];
+  }
+
+  @Deprecated
+  /**
+   * @deprecated
+   * @see #getEndLine
+   */
+  public int getLine() {
+    return bufline[bufpos];
+  }
+
+/** Get end column. */
+  public int getEndColumn() {
+    return bufcolumn[bufpos];
+  }
+
+/** Get end line. */
+  public int getEndLine() {
+    return bufline[bufpos];
+  }
+
+/** @return column of token start */
+  public int getBeginColumn() {
+    return bufcolumn[tokenBegin];
+  }
+
+/** @return line number of token start */
+  public int getBeginLine() {
+    return bufline[tokenBegin];
+  }
+
+/** Retreat. */
+  public void backup(int amount) {
+
+    inBuf += amount;
+    if ((bufpos -= amount) < 0)
+      bufpos += bufsize;
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.Reader dstream,
+                 int startline, int startcolumn, int buffersize)
+  {
+    inputStream = dstream;
+    line = startline;
+    column = startcolumn - 1;
+
+    available = bufsize = buffersize;
+    buffer = new char[buffersize];
+    bufline = new int[buffersize];
+    bufcolumn = new int[buffersize];
+    nextCharBuf = new char[4096];
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.Reader dstream,
+                                        int startline, int startcolumn)
+  {
+    this(dstream, startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.Reader dstream)
+  {
+    this(dstream, 1, 1, 4096);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.Reader dstream,
+                 int startline, int startcolumn, int buffersize)
+  {
+    inputStream = dstream;
+    line = startline;
+    column = startcolumn - 1;
+
+    if (buffer == null || buffersize != buffer.length)
+    {
+      available = bufsize = buffersize;
+      buffer = new char[buffersize];
+      bufline = new int[buffersize];
+      bufcolumn = new int[buffersize];
+      nextCharBuf = new char[4096];
+    }
+    prevCharIsLF = prevCharIsCR = false;
+    tokenBegin = inBuf = maxNextCharInd = 0;
+    nextCharInd = bufpos = -1;
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.Reader dstream,
+                                        int startline, int startcolumn)
+  {
+    ReInit(dstream, startline, startcolumn, 4096);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.Reader dstream)
+  {
+    ReInit(dstream, 1, 1, 4096);
+  }
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+                        int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+    this(dstream, encoding, startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, int startline,
+                        int startcolumn)
+  {
+    this(dstream, startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+    this(dstream, encoding, 1, 1, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream)
+  {
+    this(dstream, 1, 1, 4096);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                     int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(dstream, encoding, startline, startcolumn, 4096);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, int startline,
+                     int startcolumn)
+  {
+    ReInit(dstream, startline, startcolumn, 4096);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(dstream, encoding, 1, 1, 4096);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream)
+  {
+    ReInit(dstream, 1, 1, 4096);
+  }
+
+  /** @return token image as String */
+  public String GetImage()
+  {
+    if (bufpos >= tokenBegin)
+      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+    else
+      return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+                              new String(buffer, 0, bufpos + 1);
+  }
+
+  /** @return suffix */
+  public char[] GetSuffix(int len)
+  {
+    char[] ret = new char[len];
+
+    if ((bufpos + 1) >= len)
+      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+    else
+    {
+      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+                                                        len - bufpos - 1);
+      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+    }
+
+    return ret;
+  }
+
+  /** Set buffers back to null when finished. */
+  public void Done()
+  {
+    nextCharBuf = null;
+    buffer = null;
+    bufline = null;
+    bufcolumn = null;
+  }
+
+  /**
+   * Method to adjust line and column numbers for the start of a token.
+   */
+  public void adjustBeginLineColumn(int newLine, int newCol)
+  {
+    int start = tokenBegin;
+    int len;
+
+    if (bufpos >= tokenBegin)
+    {
+      len = bufpos - tokenBegin + inBuf + 1;
+    }
+    else
+    {
+      len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+    }
+
+    int i = 0, j = 0, k = 0;
+    int nextColDiff = 0, columnDiff = 0;
+
+    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
+    {
+      bufline[j] = newLine;
+      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+      bufcolumn[j] = newCol + columnDiff;
+      columnDiff = nextColDiff;
+      i++;
+    }
+
+    if (i < len)
+    {
+      bufline[j] = newLine++;
+      bufcolumn[j] = newCol + columnDiff;
+
+      while (i++ < len)
+      {
+        if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+          bufline[j] = newLine++;
+        else
+          bufline[j] = newLine;
+      }
+    }
+
+    line = bufline[j];
+    column = bufcolumn[j];
+  }
+
+}
+/* JavaCC - OriginalChecksum=018a2af61cc16d6ef581c18a79828d27 (do not edit this line) */
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/ParseException.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/ParseException.java
index b51da14..ac3d033 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/ParseException.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/ParseException.java
@@ -1,5 +1,5 @@
-/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */

-/* JavaCCOptions:KEEP_LINE_COL=null */

+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */
+/* JavaCCOptions:KEEP_LINE_COL=null */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -11,190 +11,190 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

-

-/**

- * This exception is thrown when parse errors are encountered.

- * You can explicitly create objects of this exception type by

- * calling the method generateParseException in the generated

- * parser.

- *

- * You can modify this class to customize your error reporting

- * mechanisms so long as you retain the public fields.

- */

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
+
+/**
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ *
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
+ */
 @SuppressWarnings("all")
-public class ParseException extends Exception {

-

-  /**

-   * The version identifier for this Serializable class.

-   * Increment only if the <i>serialized</i> form of the

-   * class changes.

-   */

-  private static final long serialVersionUID = 1L;

-

-  /**

-   * This constructor is used by the method "generateParseException"

-   * in the generated parser.  Calling this constructor generates

-   * a new object of this type with the fields "currentToken",

-   * "expectedTokenSequences", and "tokenImage" set.

-   */

-  public ParseException(Token currentTokenVal,

-                        int[][] expectedTokenSequencesVal,

-                        String[] tokenImageVal

-                       )

-  {

-    super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));

-    currentToken = currentTokenVal;

-    expectedTokenSequences = expectedTokenSequencesVal;

-    tokenImage = tokenImageVal;

-  }

-

-  /**

-   * The following constructors are for use by you for whatever

-   * purpose you can think of.  Constructing the exception in this

-   * manner makes the exception behave in the normal way - i.e., as

-   * documented in the class "Throwable".  The fields "errorToken",

-   * "expectedTokenSequences", and "tokenImage" do not contain

-   * relevant information.  The JavaCC generated code does not use

-   * these constructors.

-   */

-

-  public ParseException() {

-    super();

-  }

-

-  /** Constructor with message. */

-  public ParseException(String message) {

-    super(message);

-  }

-

-

-  /**

-   * This is the last token that has been consumed successfully.  If

-   * this object has been created due to a parse error, the token

-   * followng this token will (therefore) be the first error token.

-   */

-  public Token currentToken;

-

-  /**

-   * Each entry in this array is an array of integers.  Each array

-   * of integers represents a sequence of tokens (by their ordinal

-   * values) that is expected at this point of the parse.

-   */

-  public int[][] expectedTokenSequences;

-

-  /**

-   * This is a reference to the "tokenImage" array of the generated

-   * parser within which the parse error occurred.  This array is

-   * defined in the generated ...Constants interface.

-   */

-  public String[] tokenImage;

-

-  /**

-   * It uses "currentToken" and "expectedTokenSequences" to generate a parse

-   * error message and returns it.  If this object has been created

-   * due to a parse error, and you do not catch it (it gets thrown

-   * from the parser) the correct error message

-   * gets displayed.

-   */

-  private static String initialise(Token currentToken,

-                           int[][] expectedTokenSequences,

-                           String[] tokenImage) {

-    String eol = System.getProperty("line.separator", "\n");

-    StringBuffer expected = new StringBuffer();

-    int maxSize = 0;

-    for (int i = 0; i < expectedTokenSequences.length; i++) {

-      if (maxSize < expectedTokenSequences[i].length) {

-        maxSize = expectedTokenSequences[i].length;

-      }

-      for (int j = 0; j < expectedTokenSequences[i].length; j++) {

-        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');

-      }

-      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {

-        expected.append("...");

-      }

-      expected.append(eol).append("    ");

-    }

-    String retval = "Encountered \"";

-    Token tok = currentToken.next;

-    for (int i = 0; i < maxSize; i++) {

-      if (i != 0) retval += " ";

-      if (tok.kind == 0) {

-        retval += tokenImage[0];

-        break;

-      }

-      retval += " " + tokenImage[tok.kind];

-      retval += " \"";

-      retval += add_escapes(tok.image);

-      retval += " \"";

-      tok = tok.next;

-    }

-    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;

-    retval += "." + eol;

-    if (expectedTokenSequences.length == 1) {

-      retval += "Was expecting:" + eol + "    ";

-    } else {

-      retval += "Was expecting one of:" + eol + "    ";

-    }

-    retval += expected.toString();

-    return retval;

-  }

-

-  /**

-   * The end of line string for this machine.

-   */

-  protected String eol = System.getProperty("line.separator", "\n");

-

-  /**

-   * Used to convert raw characters to their escaped version

-   * when these raw version cannot be used as part of an ASCII

-   * string literal.

-   */

-  static String add_escapes(String str) {

-      StringBuffer retval = new StringBuffer();

-      char ch;

-      for (int i = 0; i < str.length(); i++) {

-        switch (str.charAt(i))

-        {

-           case 0 :

-              continue;

-           case '\b':

-              retval.append("\\b");

-              continue;

-           case '\t':

-              retval.append("\\t");

-              continue;

-           case '\n':

-              retval.append("\\n");

-              continue;

-           case '\f':

-              retval.append("\\f");

-              continue;

-           case '\r':

-              retval.append("\\r");

-              continue;

-           case '\"':

-              retval.append("\\\"");

-              continue;

-           case '\'':

-              retval.append("\\\'");

-              continue;

-           case '\\':

-              retval.append("\\\\");

-              continue;

-           default:

-              if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {

-                 String s = "0000" + Integer.toString(ch, 16);

-                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));

-              } else {

-                 retval.append(ch);

-              }

-              continue;

-        }

-      }

-      return retval.toString();

-   }

-

-}

-/* JavaCC - OriginalChecksum=81f4443085e467ef907deb9a67f74438 (do not edit this line) */

+public class ParseException extends Exception {
+
+  /**
+   * The version identifier for this Serializable class.
+   * Increment only if the <i>serialized</i> form of the
+   * class changes.
+   */
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * This constructor is used by the method "generateParseException"
+   * in the generated parser.  Calling this constructor generates
+   * a new object of this type with the fields "currentToken",
+   * "expectedTokenSequences", and "tokenImage" set.
+   */
+  public ParseException(Token currentTokenVal,
+                        int[][] expectedTokenSequencesVal,
+                        String[] tokenImageVal
+                       )
+  {
+    super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));
+    currentToken = currentTokenVal;
+    expectedTokenSequences = expectedTokenSequencesVal;
+    tokenImage = tokenImageVal;
+  }
+
+  /**
+   * The following constructors are for use by you for whatever
+   * purpose you can think of.  Constructing the exception in this
+   * manner makes the exception behave in the normal way - i.e., as
+   * documented in the class "Throwable".  The fields "errorToken",
+   * "expectedTokenSequences", and "tokenImage" do not contain
+   * relevant information.  The JavaCC generated code does not use
+   * these constructors.
+   */
+
+  public ParseException() {
+    super();
+  }
+
+  /** Constructor with message. */
+  public ParseException(String message) {
+    super(message);
+  }
+
+
+  /**
+   * This is the last token that has been consumed successfully.  If
+   * this object has been created due to a parse error, the token
+   * followng this token will (therefore) be the first error token.
+   */
+  public Token currentToken;
+
+  /**
+   * Each entry in this array is an array of integers.  Each array
+   * of integers represents a sequence of tokens (by their ordinal
+   * values) that is expected at this point of the parse.
+   */
+  public int[][] expectedTokenSequences;
+
+  /**
+   * This is a reference to the "tokenImage" array of the generated
+   * parser within which the parse error occurred.  This array is
+   * defined in the generated ...Constants interface.
+   */
+  public String[] tokenImage;
+
+  /**
+   * It uses "currentToken" and "expectedTokenSequences" to generate a parse
+   * error message and returns it.  If this object has been created
+   * due to a parse error, and you do not catch it (it gets thrown
+   * from the parser) the correct error message
+   * gets displayed.
+   */
+  private static String initialise(Token currentToken,
+                           int[][] expectedTokenSequences,
+                           String[] tokenImage) {
+    String eol = System.getProperty("line.separator", "\n");
+    StringBuffer expected = new StringBuffer();
+    int maxSize = 0;
+    for (int i = 0; i < expectedTokenSequences.length; i++) {
+      if (maxSize < expectedTokenSequences[i].length) {
+        maxSize = expectedTokenSequences[i].length;
+      }
+      for (int j = 0; j < expectedTokenSequences[i].length; j++) {
+        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
+      }
+      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
+        expected.append("...");
+      }
+      expected.append(eol).append("    ");
+    }
+    String retval = "Encountered \"";
+    Token tok = currentToken.next;
+    for (int i = 0; i < maxSize; i++) {
+      if (i != 0) retval += " ";
+      if (tok.kind == 0) {
+        retval += tokenImage[0];
+        break;
+      }
+      retval += " " + tokenImage[tok.kind];
+      retval += " \"";
+      retval += add_escapes(tok.image);
+      retval += " \"";
+      tok = tok.next;
+    }
+    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
+    retval += "." + eol;
+    if (expectedTokenSequences.length == 1) {
+      retval += "Was expecting:" + eol + "    ";
+    } else {
+      retval += "Was expecting one of:" + eol + "    ";
+    }
+    retval += expected.toString();
+    return retval;
+  }
+
+  /**
+   * The end of line string for this machine.
+   */
+  protected String eol = System.getProperty("line.separator", "\n");
+
+  /**
+   * Used to convert raw characters to their escaped version
+   * when these raw version cannot be used as part of an ASCII
+   * string literal.
+   */
+  static String add_escapes(String str) {
+      StringBuffer retval = new StringBuffer();
+      char ch;
+      for (int i = 0; i < str.length(); i++) {
+        switch (str.charAt(i))
+        {
+           case 0 :
+              continue;
+           case '\b':
+              retval.append("\\b");
+              continue;
+           case '\t':
+              retval.append("\\t");
+              continue;
+           case '\n':
+              retval.append("\\n");
+              continue;
+           case '\f':
+              retval.append("\\f");
+              continue;
+           case '\r':
+              retval.append("\\r");
+              continue;
+           case '\"':
+              retval.append("\\\"");
+              continue;
+           case '\'':
+              retval.append("\\\'");
+              continue;
+           case '\\':
+              retval.append("\\\\");
+              continue;
+           default:
+              if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+                 String s = "0000" + Integer.toString(ch, 16);
+                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+              } else {
+                 retval.append(ch);
+              }
+              continue;
+        }
+      }
+      return retval.toString();
+   }
+
+}
+/* JavaCC - OriginalChecksum=fdd10d40daa9e0c0c6af8550169b3d38 (do not edit this line) */
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/Token.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/Token.java
index a9723db..5121318 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/Token.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/Token.java
@@ -1,5 +1,5 @@
-/* Generated By:JavaCC: Do not edit this line. Token.java Version 5.0 */

-/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */

+/* Generated By:JavaCC: Do not edit this line. Token.java Version 5.0 */
+/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -11,134 +11,134 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

-

-/**

- * Describes the input token stream.

- */

-

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
+
+/**
+ * Describes the input token stream.
+ */
+
 @SuppressWarnings("all")
-public class Token implements java.io.Serializable {

-

-  /**

-   * The version identifier for this Serializable class.

-   * Increment only if the <i>serialized</i> form of the

-   * class changes.

-   */

-  private static final long serialVersionUID = 1L;

-

-  /**

-   * An integer that describes the kind of this token.  This numbering

-   * system is determined by JavaCCParser, and a table of these numbers is

-   * stored in the file ...Constants.java.

-   */

-  public int kind;

-

-  /** The line number of the first character of this Token. */

-  public int beginLine;

-  /** The column number of the first character of this Token. */

-  public int beginColumn;

-  /** The line number of the last character of this Token. */

-  public int endLine;

-  /** The column number of the last character of this Token. */

-  public int endColumn;

-

-  /**

-   * The string image of the token.

-   */

-  public String image;

-

-  /**

-   * A reference to the next regular (non-special) token from the input

-   * stream.  If this is the last token from the input stream, or if the

-   * token manager has not read tokens beyond this one, this field is

-   * set to null.  This is true only if this token is also a regular

-   * token.  Otherwise, see below for a description of the contents of

-   * this field.

-   */

-  public Token next;

-

-  /**

-   * This field is used to access special tokens that occur prior to this

-   * token, but after the immediately preceding regular (non-special) token.

-   * If there are no such special tokens, this field is set to null.

-   * When there are more than one such special token, this field refers

-   * to the last of these special tokens, which in turn refers to the next

-   * previous special token through its specialToken field, and so on

-   * until the first special token (whose specialToken field is null).

-   * The next fields of special tokens refer to other special tokens that

-   * immediately follow it (without an intervening regular token).  If there

-   * is no such token, this field is null.

-   */

-  public Token specialToken;

-

-  /**

-   * An optional attribute value of the Token.

-   * Tokens which are not used as syntactic sugar will often contain

-   * meaningful values that will be used later on by the compiler or

-   * interpreter. This attribute value is often different from the image.

-   * Any subclass of Token that actually wants to return a non-null value can

-   * override this method as appropriate.

-   */

-  public Object getValue() {

-    return null;

-  }

-

-  /**

-   * No-argument constructor

-   */

-  public Token() {}

-

-  /**

-   * Constructs a new token for the specified Image.

-   */

-  public Token(int kind)

-  {

-    this(kind, null);

-  }

-

-  /**

-   * Constructs a new token for the specified Image and Kind.

-   */

-  public Token(int kind, String image)

-  {

-    this.kind = kind;

-    this.image = image;

-  }

-

-  /**

-   * Returns the image.

-   */

-  public String toString()

-  {

-    return image;

-  }

-

-  /**

-   * Returns a new Token object, by default. However, if you want, you

-   * can create and return subclass objects based on the value of ofKind.

-   * Simply add the cases to the switch for all those special cases.

-   * For example, if you have a subclass of Token called IDToken that

-   * you want to create if ofKind is ID, simply add something like :

-   *

-   *    case MyParserConstants.ID : return new IDToken(ofKind, image);

-   *

-   * to the following switch statement. Then you can cast matchedToken

-   * variable to the appropriate type and use sit in your lexical actions.

-   */

-  public static Token newToken(int ofKind, String image)

-  {

-    switch(ofKind)

-    {

-      default : return new Token(ofKind, image);

-    }

-  }

-

-  public static Token newToken(int ofKind)

-  {

-    return newToken(ofKind, null);

-  }

-

-}

-/* JavaCC - OriginalChecksum=6c9f79d78d53588eccf7c8f0bb40434a (do not edit this line) */

+public class Token implements java.io.Serializable {
+
+  /**
+   * The version identifier for this Serializable class.
+   * Increment only if the <i>serialized</i> form of the
+   * class changes.
+   */
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * An integer that describes the kind of this token.  This numbering
+   * system is determined by JavaCCParser, and a table of these numbers is
+   * stored in the file ...Constants.java.
+   */
+  public int kind;
+
+  /** The line number of the first character of this Token. */
+  public int beginLine;
+  /** The column number of the first character of this Token. */
+  public int beginColumn;
+  /** The line number of the last character of this Token. */
+  public int endLine;
+  /** The column number of the last character of this Token. */
+  public int endColumn;
+
+  /**
+   * The string image of the token.
+   */
+  public String image;
+
+  /**
+   * A reference to the next regular (non-special) token from the input
+   * stream.  If this is the last token from the input stream, or if the
+   * token manager has not read tokens beyond this one, this field is
+   * set to null.  This is true only if this token is also a regular
+   * token.  Otherwise, see below for a description of the contents of
+   * this field.
+   */
+  public Token next;
+
+  /**
+   * This field is used to access special tokens that occur prior to this
+   * token, but after the immediately preceding regular (non-special) token.
+   * If there are no such special tokens, this field is set to null.
+   * When there are more than one such special token, this field refers
+   * to the last of these special tokens, which in turn refers to the next
+   * previous special token through its specialToken field, and so on
+   * until the first special token (whose specialToken field is null).
+   * The next fields of special tokens refer to other special tokens that
+   * immediately follow it (without an intervening regular token).  If there
+   * is no such token, this field is null.
+   */
+  public Token specialToken;
+
+  /**
+   * An optional attribute value of the Token.
+   * Tokens which are not used as syntactic sugar will often contain
+   * meaningful values that will be used later on by the compiler or
+   * interpreter. This attribute value is often different from the image.
+   * Any subclass of Token that actually wants to return a non-null value can
+   * override this method as appropriate.
+   */
+  public Object getValue() {
+    return null;
+  }
+
+  /**
+   * No-argument constructor
+   */
+  public Token() {}
+
+  /**
+   * Constructs a new token for the specified Image.
+   */
+  public Token(int kind)
+  {
+    this(kind, null);
+  }
+
+  /**
+   * Constructs a new token for the specified Image and Kind.
+   */
+  public Token(int kind, String image)
+  {
+    this.kind = kind;
+    this.image = image;
+  }
+
+  /**
+   * Returns the image.
+   */
+  public String toString()
+  {
+    return image;
+  }
+
+  /**
+   * Returns a new Token object, by default. However, if you want, you
+   * can create and return subclass objects based on the value of ofKind.
+   * Simply add the cases to the switch for all those special cases.
+   * For example, if you have a subclass of Token called IDToken that
+   * you want to create if ofKind is ID, simply add something like :
+   *
+   *    case MyParserConstants.ID : return new IDToken(ofKind, image);
+   *
+   * to the following switch statement. Then you can cast matchedToken
+   * variable to the appropriate type and use sit in your lexical actions.
+   */
+  public static Token newToken(int ofKind, String image)
+  {
+    switch(ofKind)
+    {
+      default : return new Token(ofKind, image);
+    }
+  }
+
+  public static Token newToken(int ofKind)
+  {
+    return newToken(ofKind, null);
+  }
+
+}
+/* JavaCC - OriginalChecksum=907f7ddac470ce3b8ed3883803785b5c (do not edit this line) */
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/TokenMgrError.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/TokenMgrError.java
index 2e96615..ca32fbd 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/TokenMgrError.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/TokenMgrError.java
@@ -1,5 +1,5 @@
-/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 5.0 */

-/* JavaCCOptions: */

+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 5.0 */
+/* JavaCCOptions: */
 /*******************************************************************************

  * Copyright (c) 2011 Oracle. All rights reserved.

  * This program and the accompanying materials are made available under the

@@ -11,150 +11,150 @@
  *

  * Contributors:

  *     Mike Norman - June 10 2011, created DDL parser package

- ******************************************************************************/

-package org.eclipse.persistence.tools.oracleddl.parser;

-

-/** Token Manager Error. */

+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.parser;
+
+/** Token Manager Error. */
 @SuppressWarnings("all")
-public class TokenMgrError extends Error

-{

-

-  /**

-   * The version identifier for this Serializable class.

-   * Increment only if the <i>serialized</i> form of the

-   * class changes.

-   */

-  private static final long serialVersionUID = 1L;

-

-  /*

-   * Ordinals for various reasons why an Error of this type can be thrown.

-   */

-

-  /**

-   * Lexical error occurred.

-   */

-  static final int LEXICAL_ERROR = 0;

-

-  /**

-   * An attempt was made to create a second instance of a static token manager.

-   */

-  static final int STATIC_LEXER_ERROR = 1;

-

-  /**

-   * Tried to change to an invalid lexical state.

-   */

-  static final int INVALID_LEXICAL_STATE = 2;

-

-  /**

-   * Detected (and bailed out of) an infinite loop in the token manager.

-   */

-  static final int LOOP_DETECTED = 3;

-

-  /**

-   * Indicates the reason why the exception is thrown. It will have

-   * one of the above 4 values.

-   */

-  int errorCode;

-

-  /**

-   * Replaces unprintable characters by their escaped (or unicode escaped)

-   * equivalents in the given string

-   */

-  protected static final String addEscapes(String str) {

-    StringBuffer retval = new StringBuffer();

-    char ch;

-    for (int i = 0; i < str.length(); i++) {

-      switch (str.charAt(i))

-      {

-        case 0 :

-          continue;

-        case '\b':

-          retval.append("\\b");

-          continue;

-        case '\t':

-          retval.append("\\t");

-          continue;

-        case '\n':

-          retval.append("\\n");

-          continue;

-        case '\f':

-          retval.append("\\f");

-          continue;

-        case '\r':

-          retval.append("\\r");

-          continue;

-        case '\"':

-          retval.append("\\\"");

-          continue;

-        case '\'':

-          retval.append("\\\'");

-          continue;

-        case '\\':

-          retval.append("\\\\");

-          continue;

-        default:

-          if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {

-            String s = "0000" + Integer.toString(ch, 16);

-            retval.append("\\u" + s.substring(s.length() - 4, s.length()));

-          } else {

-            retval.append(ch);

-          }

-          continue;

-      }

-    }

-    return retval.toString();

-  }

-

-  /**

-   * Returns a detailed message for the Error when it is thrown by the

-   * token manager to indicate a lexical error.

-   * Parameters :

-   *    EOFSeen     : indicates if EOF caused the lexical error

-   *    curLexState : lexical state in which this error occurred

-   *    errorLine   : line number when the error occurred

-   *    errorColumn : column number when the error occurred

-   *    errorAfter  : prefix that was seen before this error occurred

-   *    curchar     : the offending character

-   * Note: You can customize the lexical error message by modifying this method.

-   */

-  protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {

-    return("Lexical error at line " +

-          errorLine + ", column " +

-          errorColumn + ".  Encountered: " +

-          (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +

-          "after : \"" + addEscapes(errorAfter) + "\"");

-  }

-

-  /**

-   * You can also modify the body of this method to customize your error messages.

-   * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not

-   * of end-users concern, so you can return something like :

-   *

-   *     "Internal Error : Please file a bug report .... "

-   *

-   * from this method for such cases in the release version of your parser.

-   */

-  public String getMessage() {

-    return super.getMessage();

-  }

-

-  /*

-   * Constructors of various flavors follow.

-   */

-

-  /** No arg constructor. */

-  public TokenMgrError() {

-  }

-

-  /** Constructor with message and reason. */

-  public TokenMgrError(String message, int reason) {

-    super(message);

-    errorCode = reason;

-  }

-

-  /** Full Constructor. */

-  public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {

-    this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);

-  }

-}

-/* JavaCC - OriginalChecksum=ce061a9b2d99fb99a53b7768a4a7762e (do not edit this line) */

+public class TokenMgrError extends Error
+{
+
+  /**
+   * The version identifier for this Serializable class.
+   * Increment only if the <i>serialized</i> form of the
+   * class changes.
+   */
+  private static final long serialVersionUID = 1L;
+
+  /*
+   * Ordinals for various reasons why an Error of this type can be thrown.
+   */
+
+  /**
+   * Lexical error occurred.
+   */
+  static final int LEXICAL_ERROR = 0;
+
+  /**
+   * An attempt was made to create a second instance of a static token manager.
+   */
+  static final int STATIC_LEXER_ERROR = 1;
+
+  /**
+   * Tried to change to an invalid lexical state.
+   */
+  static final int INVALID_LEXICAL_STATE = 2;
+
+  /**
+   * Detected (and bailed out of) an infinite loop in the token manager.
+   */
+  static final int LOOP_DETECTED = 3;
+
+  /**
+   * Indicates the reason why the exception is thrown. It will have
+   * one of the above 4 values.
+   */
+  int errorCode;
+
+  /**
+   * Replaces unprintable characters by their escaped (or unicode escaped)
+   * equivalents in the given string
+   */
+  protected static final String addEscapes(String str) {
+    StringBuffer retval = new StringBuffer();
+    char ch;
+    for (int i = 0; i < str.length(); i++) {
+      switch (str.charAt(i))
+      {
+        case 0 :
+          continue;
+        case '\b':
+          retval.append("\\b");
+          continue;
+        case '\t':
+          retval.append("\\t");
+          continue;
+        case '\n':
+          retval.append("\\n");
+          continue;
+        case '\f':
+          retval.append("\\f");
+          continue;
+        case '\r':
+          retval.append("\\r");
+          continue;
+        case '\"':
+          retval.append("\\\"");
+          continue;
+        case '\'':
+          retval.append("\\\'");
+          continue;
+        case '\\':
+          retval.append("\\\\");
+          continue;
+        default:
+          if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+            String s = "0000" + Integer.toString(ch, 16);
+            retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+          } else {
+            retval.append(ch);
+          }
+          continue;
+      }
+    }
+    return retval.toString();
+  }
+
+  /**
+   * Returns a detailed message for the Error when it is thrown by the
+   * token manager to indicate a lexical error.
+   * Parameters :
+   *    EOFSeen     : indicates if EOF caused the lexical error
+   *    curLexState : lexical state in which this error occurred
+   *    errorLine   : line number when the error occurred
+   *    errorColumn : column number when the error occurred
+   *    errorAfter  : prefix that was seen before this error occurred
+   *    curchar     : the offending character
+   * Note: You can customize the lexical error message by modifying this method.
+   */
+  protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
+    return("Lexical error at line " +
+          errorLine + ", column " +
+          errorColumn + ".  Encountered: " +
+          (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +
+          "after : \"" + addEscapes(errorAfter) + "\"");
+  }
+
+  /**
+   * You can also modify the body of this method to customize your error messages.
+   * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
+   * of end-users concern, so you can return something like :
+   *
+   *     "Internal Error : Please file a bug report .... "
+   *
+   * from this method for such cases in the release version of your parser.
+   */
+  public String getMessage() {
+    return super.getMessage();
+  }
+
+  /*
+   * Constructors of various flavors follow.
+   */
+
+  /** No arg constructor. */
+  public TokenMgrError() {
+  }
+
+  /** Constructor with message and reason. */
+  public TokenMgrError(String message, int reason) {
+    super(message);
+    errorCode = reason;
+  }
+
+  /** Full Constructor. */
+  public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
+    this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
+  }
+}
+/* JavaCC - OriginalChecksum=ce301da18940fd336199fa587904bb10 (do not edit this line) */