Work on fixing %ROWTYPE issues
- add local variable to ROWTYPEType to hold owning PLSQLPackageType
- various places in grammar-productions, set owning package

Change PLSQLType to be *not* abstract - add use case in
packageDeclaration where we need a simple PLSQLType instance
to hold a %ROWTYPE or %TYPE declaration
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLType.java
index 2f7d16d..122f924 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLType.java
@@ -14,7 +14,7 @@
 

 import org.eclipse.persistence.tools.oracleddl.metadata.visit.DatabaseTypeVisitor;

 

-public abstract class PLSQLType extends CompositeDatabaseTypeWithEnclosedType implements CompositeDatabaseType {

+public class PLSQLType extends CompositeDatabaseTypeWithEnclosedType implements CompositeDatabaseType {

 

     protected PLSQLPackageType parentType;

 

diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ROWTYPEType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ROWTYPEType.java
index e71b7e8..47430a6 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ROWTYPEType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ROWTYPEType.java
@@ -18,6 +18,8 @@
 

 public class ROWTYPEType extends CompositeDatabaseTypeWithEnclosedType implements CompositeDatabaseType, DatabaseTypeVisitable {

 

+    protected PLSQLPackageType packageType;

+    

     public ROWTYPEType(String typeName) {

         super(typeName);

     }

@@ -28,6 +30,13 @@
         }

         return typeName;

     }

+    

+    public PLSQLPackageType getPackageType() {

+        return packageType;

+    }

+    public void setPackageType(PLSQLPackageType packageType) {

+        this.packageType = packageType;

+    }

 

     public boolean isResolved() {

         // if enclosedType is unresolved, then this argument is unresolved

@@ -65,7 +74,7 @@
         return sb.toString();

     }

 

-	public void accept(DatabaseTypeVisitor visitor) {

-		visitor.visit(this);

-	}

+    public void accept(DatabaseTypeVisitor visitor) {

+        visitor.visit(this);

+    }

 }
\ No newline at end of file
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 0175904..2f36bc5 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,4456 +10,4616 @@
  *

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

-    }

-

-  final public String keywords() throws ParseException {

- Token t = null;

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

-    case K_ARRAY:

-      t = jj_consume_token(K_ARRAY);

-      break;

-    case K_AUTHID:

-      t = jj_consume_token(K_AUTHID);

-      break;

-    case K_BFILE:

-      t = jj_consume_token(K_BFILE);

-      break;

-    case K_BINARY_DOUBLE:

-      t = jj_consume_token(K_BINARY_DOUBLE);

-      break;

-    case K_BINARY_FLOAT:

-      t = jj_consume_token(K_BINARY_FLOAT);

-      break;

-    case K_BINARY_INTEGER:

-      t = jj_consume_token(K_BINARY_INTEGER);

-      break;

-    case K_BLOB:

-      t = jj_consume_token(K_BLOB);

-      break;

-    case K_BOOLEAN:

-      t = jj_consume_token(K_BOOLEAN);

-      break;

-    case K_BYTE:

-      t = jj_consume_token(K_BYTE);

-      break;

-    case K_CHAR:

-      t = jj_consume_token(K_CHAR);

-      break;

-    case K_CHARACTER:

-      t = jj_consume_token(K_CHARACTER);

-      break;

-    case K_CLOB:

-      t = jj_consume_token(K_CLOB);

-      break;

-    case K_COMMIT:

-      t = jj_consume_token(K_COMMIT);

-      break;

-    case K_CONSTANT:

-      t = jj_consume_token(K_CONSTANT);

-      break;

-    case K_CURRENT_USER:

-      t = jj_consume_token(K_CURRENT_USER);

-      break;

-    case K_DATE:

-      t = jj_consume_token(K_DATE);

-      break;

-    case K_DAY:

-      t = jj_consume_token(K_DAY);

-      break;

-    case K_DEC:

-      t = jj_consume_token(K_DEC);

-      break;

-    case K_DECIMAL:

-      t = jj_consume_token(K_DECIMAL);

-      break;

-    case K_DEFINER:

-      t = jj_consume_token(K_DEFINER);

-      break;

-    case K_DELETE:

-      t = jj_consume_token(K_DELETE);

-      break;

-    case K_DETERMINISTIC:

-      t = jj_consume_token(K_DETERMINISTIC);

-      break;

-    case K_DOUBLE:

-      t = jj_consume_token(K_DOUBLE);

-      break;

-    case K_ENABLE:

-      t = jj_consume_token(K_ENABLE);

-      break;

-    case K_FINAL:

-      t = jj_consume_token(K_FINAL);

-      break;

-    case K_FLOAT:

-      t = jj_consume_token(K_FLOAT);

-      break;

-    case K_FORCE:

-      t = jj_consume_token(K_FORCE);

-      break;

-    case K_GLOBAL:

-      t = jj_consume_token(K_GLOBAL);

-      break;

-    case K_INSTANTIABLE:

-      t = jj_consume_token(K_INSTANTIABLE);

-      break;

-    case K_INT:

-      t = jj_consume_token(K_INT);

-      break;

-    case K_INTEGER:

-      t = jj_consume_token(K_INTEGER);

-      break;

-    case K_INTERVAL:

-      t = jj_consume_token(K_INTERVAL);

-      break;

-    case K_KEY:

-      t = jj_consume_token(K_KEY);

-      break;

-    case K_LOCAL:

-      t = jj_consume_token(K_LOCAL);

-      break;

-    case K_LONG:

-      t = jj_consume_token(K_LONG);

-      break;

-    case K_MLSLABEL:

-      t = jj_consume_token(K_MLSLABEL);

-      break;

-    case K_MONTH:

-      t = jj_consume_token(K_MONTH);

-      break;

-    case K_NATIONAL:

-      t = jj_consume_token(K_NATIONAL);

-      break;

-    case K_NATURAL:

-      t = jj_consume_token(K_NATURAL);

-      break;

-    case K_NCHAR:

-      t = jj_consume_token(K_NCHAR);

-      break;

-    case K_NCLOB:

-      t = jj_consume_token(K_NCLOB);

-      break;

-    case K_NOCOPY:

-      t = jj_consume_token(K_NOCOPY);

-      break;

-    case K_NUMBER:

-      t = jj_consume_token(K_NUMBER);

-      break;

-    case K_NUMERIC:

-      t = jj_consume_token(K_NUMERIC);

-      break;

-    case K_NVARCHAR2:

-      t = jj_consume_token(K_NVARCHAR2);

-      break;

-    case K_NVARCHAR:

-      t = jj_consume_token(K_NVARCHAR);

-      break;

-    case K_OBJECT:

-      t = jj_consume_token(K_OBJECT);

-      break;

-    case K_OID:

-      t = jj_consume_token(K_OID);

-      break;

-    case K_ORGANIZATION:

-      t = jj_consume_token(K_ORGANIZATION);

-      break;

-    case K_OUT:

-      t = jj_consume_token(K_OUT);

-      break;

-    case K_OVERFLOW:

-      t = jj_consume_token(K_OVERFLOW);

-      break;

-    case K_PACKAGE:

-      t = jj_consume_token(K_PACKAGE);

-      break;

-    case K_PARALLEL_ENABLE:

-      t = jj_consume_token(K_PARALLEL_ENABLE);

-      break;

-    case K_PIPELINED:

-      t = jj_consume_token(K_PIPELINED);

-      break;

-    case K_PLS_INTEGER:

-      t = jj_consume_token(K_PLS_INTEGER);

-      break;

-    case K_POSITIVE:

-      t = jj_consume_token(K_POSITIVE);

-      break;

-    case K_PRAGMA:

-      t = jj_consume_token(K_PRAGMA);

-      break;

-    case K_PRECISION:

-      t = jj_consume_token(K_PRECISION);

-      break;

-    case K_PRESERVE:

-      t = jj_consume_token(K_PRESERVE);

-      break;

-    case K_RANGE:

-      t = jj_consume_token(K_RANGE);

-      break;

-    case K_RAW:

-      t = jj_consume_token(K_RAW);

-      break;

-    case K_REAL:

-      t = jj_consume_token(K_REAL);

-      break;

-    case K_RECORD:

-      t = jj_consume_token(K_RECORD);

-      break;

-    case K_REF:

-      t = jj_consume_token(K_REF);

-      break;

-    case K_REPLACE:

-      t = jj_consume_token(K_REPLACE);

-      break;

-    case K_RESULT_CACHE:

-      t = jj_consume_token(K_RESULT_CACHE);

-      break;

-    case K_RETURN:

-      t = jj_consume_token(K_RETURN);

-      break;

-    case K_ROWID:

-      t = jj_consume_token(K_ROWID);

-      break;

-    case K_ROWS:

-      t = jj_consume_token(K_ROWS);

-      break;

-    case K_SECOND:

-      t = jj_consume_token(K_SECOND);

-      break;

-    case K_SET:

-      t = jj_consume_token(K_SET);

-      break;

-    case K_SIGNTYPE:

-      t = jj_consume_token(K_SIGNTYPE);

-      break;

-    case K_SIMPLE_DOUBLE:

-      t = jj_consume_token(K_SIMPLE_DOUBLE);

-      break;

-    case K_SIMPLE_FLOAT:

-      t = jj_consume_token(K_SIMPLE_FLOAT);

-      break;

-    case K_SIMPLE_INTEGER:

-      t = jj_consume_token(K_SIMPLE_INTEGER);

-      break;

-    case K_SMALLINT:

-      t = jj_consume_token(K_SMALLINT);

-      break;

-    case K_STRING:

-      t = jj_consume_token(K_STRING);

-      break;

-    case K_SYS_REFCURSOR:

-      t = jj_consume_token(K_SYS_REFCURSOR);

-      break;

-    case K_TEMPORARY:

-      t = jj_consume_token(K_TEMPORARY);

-      break;

-    case K_TIME:

-      t = jj_consume_token(K_TIME);

-      break;

-    case K_TIMESTAMP:

-      t = jj_consume_token(K_TIMESTAMP);

-      break;

-    case K_UROWID:

-      t = jj_consume_token(K_UROWID);

-      break;

-    case K_VARCHAR2:

-      t = jj_consume_token(K_VARCHAR2);

-      break;

-    case K_VARCHAR:

-      t = jj_consume_token(K_VARCHAR);

-      break;

-    case K_VARRAY:

-      t = jj_consume_token(K_VARRAY);

-      break;

-    case K_VARYING:

-      t = jj_consume_token(K_VARYING);

-      break;

-    case K_YEAR:

-      t = jj_consume_token(K_YEAR);

-      break;

-    case K_ZONE:

-      t = jj_consume_token(K_ZONE);

-      break;

-    default:

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

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

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

-  }

-

+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);
+    }
+
+  final public String keywords() throws ParseException {
+ Token t = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_ARRAY:
+      t = jj_consume_token(K_ARRAY);
+      break;
+    case K_AUTHID:
+      t = jj_consume_token(K_AUTHID);
+      break;
+    case K_BFILE:
+      t = jj_consume_token(K_BFILE);
+      break;
+    case K_BINARY_DOUBLE:
+      t = jj_consume_token(K_BINARY_DOUBLE);
+      break;
+    case K_BINARY_FLOAT:
+      t = jj_consume_token(K_BINARY_FLOAT);
+      break;
+    case K_BINARY_INTEGER:
+      t = jj_consume_token(K_BINARY_INTEGER);
+      break;
+    case K_BLOB:
+      t = jj_consume_token(K_BLOB);
+      break;
+    case K_BOOLEAN:
+      t = jj_consume_token(K_BOOLEAN);
+      break;
+    case K_BYTE:
+      t = jj_consume_token(K_BYTE);
+      break;
+    case K_CHAR:
+      t = jj_consume_token(K_CHAR);
+      break;
+    case K_CHARACTER:
+      t = jj_consume_token(K_CHARACTER);
+      break;
+    case K_CLOB:
+      t = jj_consume_token(K_CLOB);
+      break;
+    case K_COMMIT:
+      t = jj_consume_token(K_COMMIT);
+      break;
+    case K_CONSTANT:
+      t = jj_consume_token(K_CONSTANT);
+      break;
+    case K_CURRENT_USER:
+      t = jj_consume_token(K_CURRENT_USER);
+      break;
+    case K_DATE:
+      t = jj_consume_token(K_DATE);
+      break;
+    case K_DAY:
+      t = jj_consume_token(K_DAY);
+      break;
+    case K_DEC:
+      t = jj_consume_token(K_DEC);
+      break;
+    case K_DECIMAL:
+      t = jj_consume_token(K_DECIMAL);
+      break;
+    case K_DEFINER:
+      t = jj_consume_token(K_DEFINER);
+      break;
+    case K_DELETE:
+      t = jj_consume_token(K_DELETE);
+      break;
+    case K_DETERMINISTIC:
+      t = jj_consume_token(K_DETERMINISTIC);
+      break;
+    case K_DOUBLE:
+      t = jj_consume_token(K_DOUBLE);
+      break;
+    case K_ENABLE:
+      t = jj_consume_token(K_ENABLE);
+      break;
+    case K_FINAL:
+      t = jj_consume_token(K_FINAL);
+      break;
+    case K_FLOAT:
+      t = jj_consume_token(K_FLOAT);
+      break;
+    case K_FORCE:
+      t = jj_consume_token(K_FORCE);
+      break;
+    case K_GLOBAL:
+      t = jj_consume_token(K_GLOBAL);
+      break;
+    case K_INSTANTIABLE:
+      t = jj_consume_token(K_INSTANTIABLE);
+      break;
+    case K_INT:
+      t = jj_consume_token(K_INT);
+      break;
+    case K_INTEGER:
+      t = jj_consume_token(K_INTEGER);
+      break;
+    case K_INTERVAL:
+      t = jj_consume_token(K_INTERVAL);
+      break;
+    case K_KEY:
+      t = jj_consume_token(K_KEY);
+      break;
+    case K_LOCAL:
+      t = jj_consume_token(K_LOCAL);
+      break;
+    case K_LONG:
+      t = jj_consume_token(K_LONG);
+      break;
+    case K_MLSLABEL:
+      t = jj_consume_token(K_MLSLABEL);
+      break;
+    case K_MONTH:
+      t = jj_consume_token(K_MONTH);
+      break;
+    case K_NATIONAL:
+      t = jj_consume_token(K_NATIONAL);
+      break;
+    case K_NATURAL:
+      t = jj_consume_token(K_NATURAL);
+      break;
+    case K_NCHAR:
+      t = jj_consume_token(K_NCHAR);
+      break;
+    case K_NCLOB:
+      t = jj_consume_token(K_NCLOB);
+      break;
+    case K_NOCOPY:
+      t = jj_consume_token(K_NOCOPY);
+      break;
+    case K_NUMBER:
+      t = jj_consume_token(K_NUMBER);
+      break;
+    case K_NUMERIC:
+      t = jj_consume_token(K_NUMERIC);
+      break;
+    case K_NVARCHAR2:
+      t = jj_consume_token(K_NVARCHAR2);
+      break;
+    case K_NVARCHAR:
+      t = jj_consume_token(K_NVARCHAR);
+      break;
+    case K_OBJECT:
+      t = jj_consume_token(K_OBJECT);
+      break;
+    case K_OID:
+      t = jj_consume_token(K_OID);
+      break;
+    case K_ORGANIZATION:
+      t = jj_consume_token(K_ORGANIZATION);
+      break;
+    case K_OUT:
+      t = jj_consume_token(K_OUT);
+      break;
+    case K_OVERFLOW:
+      t = jj_consume_token(K_OVERFLOW);
+      break;
+    case K_PACKAGE:
+      t = jj_consume_token(K_PACKAGE);
+      break;
+    case K_PARALLEL_ENABLE:
+      t = jj_consume_token(K_PARALLEL_ENABLE);
+      break;
+    case K_PIPELINED:
+      t = jj_consume_token(K_PIPELINED);
+      break;
+    case K_PLS_INTEGER:
+      t = jj_consume_token(K_PLS_INTEGER);
+      break;
+    case K_POSITIVE:
+      t = jj_consume_token(K_POSITIVE);
+      break;
+    case K_PRAGMA:
+      t = jj_consume_token(K_PRAGMA);
+      break;
+    case K_PRECISION:
+      t = jj_consume_token(K_PRECISION);
+      break;
+    case K_PRESERVE:
+      t = jj_consume_token(K_PRESERVE);
+      break;
+    case K_RANGE:
+      t = jj_consume_token(K_RANGE);
+      break;
+    case K_RAW:
+      t = jj_consume_token(K_RAW);
+      break;
+    case K_REAL:
+      t = jj_consume_token(K_REAL);
+      break;
+    case K_RECORD:
+      t = jj_consume_token(K_RECORD);
+      break;
+    case K_REF:
+      t = jj_consume_token(K_REF);
+      break;
+    case K_REPLACE:
+      t = jj_consume_token(K_REPLACE);
+      break;
+    case K_RESULT_CACHE:
+      t = jj_consume_token(K_RESULT_CACHE);
+      break;
+    case K_RETURN:
+      t = jj_consume_token(K_RETURN);
+      break;
+    case K_ROWID:
+      t = jj_consume_token(K_ROWID);
+      break;
+    case K_ROWS:
+      t = jj_consume_token(K_ROWS);
+      break;
+    case K_SECOND:
+      t = jj_consume_token(K_SECOND);
+      break;
+    case K_SET:
+      t = jj_consume_token(K_SET);
+      break;
+    case K_SIGNTYPE:
+      t = jj_consume_token(K_SIGNTYPE);
+      break;
+    case K_SIMPLE_DOUBLE:
+      t = jj_consume_token(K_SIMPLE_DOUBLE);
+      break;
+    case K_SIMPLE_FLOAT:
+      t = jj_consume_token(K_SIMPLE_FLOAT);
+      break;
+    case K_SIMPLE_INTEGER:
+      t = jj_consume_token(K_SIMPLE_INTEGER);
+      break;
+    case K_SMALLINT:
+      t = jj_consume_token(K_SMALLINT);
+      break;
+    case K_STRING:
+      t = jj_consume_token(K_STRING);
+      break;
+    case K_SYS_REFCURSOR:
+      t = jj_consume_token(K_SYS_REFCURSOR);
+      break;
+    case K_TEMPORARY:
+      t = jj_consume_token(K_TEMPORARY);
+      break;
+    case K_TIME:
+      t = jj_consume_token(K_TIME);
+      break;
+    case K_TIMESTAMP:
+      t = jj_consume_token(K_TIMESTAMP);
+      break;
+    case K_UROWID:
+      t = jj_consume_token(K_UROWID);
+      break;
+    case K_VARCHAR2:
+      t = jj_consume_token(K_VARCHAR2);
+      break;
+    case K_VARCHAR:
+      t = jj_consume_token(K_VARCHAR);
+      break;
+    case K_VARRAY:
+      t = jj_consume_token(K_VARRAY);
+      break;
+    case K_VARYING:
+      t = jj_consume_token(K_VARYING);
+      break;
+    case K_YEAR:
+      t = jj_consume_token(K_YEAR);
+      break;
+    case K_ZONE:
+      t = jj_consume_token(K_ZONE);
+      break;
+    default:
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+      {if (true) return t.image;}
+    throw new Error("Missing return statement in function");
+  }
+
 // 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 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_ARRAY:

-      case K_AUTHID:

-      case K_BFILE:

-      case K_BINARY_DOUBLE:

-      case K_BINARY_FLOAT:

-      case K_BINARY_INTEGER:

-      case K_BLOB:

-      case K_BOOLEAN:

-      case K_BYTE:

-      case K_CHAR:

-      case K_CHARACTER:

-      case K_CLOB:

-      case K_COMMIT:

-      case K_CONSTANT:

-      case K_CURRENT_USER:

-      case K_DATE:

-      case K_DAY:

-      case K_DEC:

-      case K_DECIMAL:

-      case K_DEFINER:

-      case K_DELETE:

-      case K_DETERMINISTIC:

-      case K_DOUBLE:

-      case K_ENABLE:

-      case K_FINAL:

-      case K_FLOAT:

-      case K_FORCE:

-      case K_GLOBAL:

-      case K_INSTANTIABLE:

-      case K_INT:

-      case K_INTEGER:

-      case K_INTERVAL:

-      case K_KEY:

-      case K_LOCAL:

-      case K_LONG:

-      case K_MLSLABEL:

-      case K_MONTH:

-      case K_NATIONAL:

-      case K_NATURAL:

-      case K_NCHAR:

-      case K_NCLOB:

-      case K_NOCOPY:

-      case K_NUMBER:

-      case K_NUMERIC:

-      case K_NVARCHAR2:

-      case K_NVARCHAR:

-      case K_OBJECT:

-      case K_OID:

-      case K_ORGANIZATION:

-      case K_OUT:

-      case K_OVERFLOW:

-      case K_PACKAGE:

-      case K_PARALLEL_ENABLE:

-      case K_PIPELINED:

-      case K_PLS_INTEGER:

-      case K_POSITIVE:

-      case K_PRAGMA:

-      case K_PRECISION:

-      case K_PRESERVE:

-      case K_RANGE:

-      case K_RAW:

-      case K_REAL:

-      case K_RECORD:

-      case K_REF:

-      case K_REPLACE:

-      case K_RESULT_CACHE:

-      case K_RETURN:

-      case K_ROWID:

-      case K_ROWS:

-      case K_SECOND:

-      case K_SET:

-      case K_SIGNTYPE:

-      case K_SIMPLE_DOUBLE:

-      case K_SIMPLE_FLOAT:

-      case K_SIMPLE_INTEGER:

-      case K_SMALLINT:

-      case K_STRING:

-      case K_SYS_REFCURSOR:

-      case K_TEMPORARY:

-      case K_TIME:

-      case K_TIMESTAMP:

-      case K_UROWID:

-      case K_VARCHAR2:

-      case K_VARCHAR:

-      case K_VARRAY:

-      case K_VARYING:

-      case K_YEAR:

-      case K_ZONE:

-      case S_IDENTIFIER:

-      case S_QUOTED_IDENTIFIER:

-        ;

-        break;

-      default:

-        break label_1;

-      }

-      packageDeclaration(packageType);

-    }

-    jj_consume_token(R_END);

-    skipToEnd();

-      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_ARRAY:
+      case K_AUTHID:
+      case K_BFILE:
+      case K_BINARY_DOUBLE:
+      case K_BINARY_FLOAT:
+      case K_BINARY_INTEGER:
+      case K_BLOB:
+      case K_BOOLEAN:
+      case K_BYTE:
+      case K_CHAR:
+      case K_CHARACTER:
+      case K_CLOB:
+      case K_COMMIT:
+      case K_CONSTANT:
+      case K_CURRENT_USER:
+      case K_DATE:
+      case K_DAY:
+      case K_DEC:
+      case K_DECIMAL:
+      case K_DEFINER:
+      case K_DELETE:
+      case K_DETERMINISTIC:
+      case K_DOUBLE:
+      case K_ENABLE:
+      case K_FINAL:
+      case K_FLOAT:
+      case K_FORCE:
+      case K_GLOBAL:
+      case K_INSTANTIABLE:
+      case K_INT:
+      case K_INTEGER:
+      case K_INTERVAL:
+      case K_KEY:
+      case K_LOCAL:
+      case K_LONG:
+      case K_MLSLABEL:
+      case K_MONTH:
+      case K_NATIONAL:
+      case K_NATURAL:
+      case K_NCHAR:
+      case K_NCLOB:
+      case K_NOCOPY:
+      case K_NUMBER:
+      case K_NUMERIC:
+      case K_NVARCHAR2:
+      case K_NVARCHAR:
+      case K_OBJECT:
+      case K_OID:
+      case K_ORGANIZATION:
+      case K_OUT:
+      case K_OVERFLOW:
+      case K_PACKAGE:
+      case K_PARALLEL_ENABLE:
+      case K_PIPELINED:
+      case K_PLS_INTEGER:
+      case K_POSITIVE:
+      case K_PRAGMA:
+      case K_PRECISION:
+      case K_PRESERVE:
+      case K_RANGE:
+      case K_RAW:
+      case K_REAL:
+      case K_RECORD:
+      case K_REF:
+      case K_REPLACE:
+      case K_RESULT_CACHE:
+      case K_RETURN:
+      case K_ROWID:
+      case K_ROWS:
+      case K_SECOND:
+      case K_SET:
+      case K_SIGNTYPE:
+      case K_SIMPLE_DOUBLE:
+      case K_SIMPLE_FLOAT:
+      case K_SIMPLE_INTEGER:
+      case K_SMALLINT:
+      case K_STRING:
+      case K_SYS_REFCURSOR:
+      case K_TEMPORARY:
+      case K_TIME:
+      case K_TIMESTAMP:
+      case K_UROWID:
+      case K_VARCHAR2:
+      case K_VARCHAR:
+      case K_VARRAY:
+      case K_VARYING:
+      case K_YEAR:
+      case K_ZONE:
+      case S_IDENTIFIER:
+      case S_QUOTED_IDENTIFIER:
+        ;
+        break;
+      default:
+        break label_1;
+      }
+      packageDeclaration(packageType);
+    }
+    jj_consume_token(R_END);
+    skipToEnd();
+      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 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");

-  }

-

+  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 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");

-  }

-

+  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 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");

-  }

-

+  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 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 {

-    if (jj_2_1(2)) {

-      columnDeclaration(enclosingType);

-    } else {

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

-      case R_CHECK:

-      case R_CONSTRAINT:

-      case R_PRIMARY:

-      case R_UNIQUE:

-      case K_ARRAY:

-      case K_AUTHID:

-      case K_BFILE:

-      case K_BINARY_DOUBLE:

-      case K_BINARY_FLOAT:

-      case K_BINARY_INTEGER:

-      case K_BLOB:

-      case K_BOOLEAN:

-      case K_BYTE:

-      case K_CHAR:

-      case K_CHARACTER:

-      case K_CLOB:

-      case K_COMMIT:

-      case K_CONSTANT:

-      case K_CURRENT_USER:

-      case K_DATE:

-      case K_DAY:

-      case K_DEC:

-      case K_DECIMAL:

-      case K_DEFINER:

-      case K_DELETE:

-      case K_DETERMINISTIC:

-      case K_DOUBLE:

-      case K_ENABLE:

-      case K_FINAL:

-      case K_FLOAT:

-      case K_FORCE:

-      case K_GLOBAL:

-      case K_INSTANTIABLE:

-      case K_INT:

-      case K_INTEGER:

-      case K_INTERVAL:

-      case K_KEY:

-      case K_LOCAL:

-      case K_LONG:

-      case K_MLSLABEL:

-      case K_MONTH:

-      case K_NATIONAL:

-      case K_NATURAL:

-      case K_NCHAR:

-      case K_NCLOB:

-      case K_NOCOPY:

-      case K_NUMBER:

-      case K_NUMERIC:

-      case K_NVARCHAR2:

-      case K_NVARCHAR:

-      case K_OBJECT:

-      case K_OID:

-      case K_ORGANIZATION:

-      case K_OUT:

-      case K_OVERFLOW:

-      case K_PACKAGE:

-      case K_PARALLEL_ENABLE:

-      case K_PIPELINED:

-      case K_PLS_INTEGER:

-      case K_POSITIVE:

-      case K_PRAGMA:

-      case K_PRECISION:

-      case K_PRESERVE:

-      case K_RANGE:

-      case K_RAW:

-      case K_REAL:

-      case K_RECORD:

-      case K_REF:

-      case K_REPLACE:

-      case K_RESULT_CACHE:

-      case K_RETURN:

-      case K_ROWID:

-      case K_ROWS:

-      case K_SECOND:

-      case K_SET:

-      case K_SIGNTYPE:

-      case K_SIMPLE_DOUBLE:

-      case K_SIMPLE_FLOAT:

-      case K_SIMPLE_INTEGER:

-      case K_SMALLINT:

-      case K_STRING:

-      case K_SYS_REFCURSOR:

-      case K_TEMPORARY:

-      case K_TIME:

-      case K_TIMESTAMP:

-      case K_UROWID:

-      case K_VARCHAR2:

-      case K_VARCHAR:

-      case K_VARRAY:

-      case K_VARYING:

-      case K_YEAR:

-      case K_ZONE:

-      case S_IDENTIFIER:

-      case S_QUOTED_IDENTIFIER:

-        constraintDeclaration(enclosingType);

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-    }

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

-    s = OracleObjectName();

-    columnType = columnTypeSpec(enclosingType);

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

-    case R_NOT:

-      notNull = notNull();

-      break;

-    default:

-      ;

-    }

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

-              }

-          }

-          column.setEnclosedType(columnType);

-          if (columnType instanceof UnresolvedType) {

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

-          }

-          if (notNull) {

-              column.setNotNull();

-          }

-  }

-

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

- String s = null;

- String pk = null;

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

-    case R_CONSTRAINT:

-      jj_consume_token(R_CONSTRAINT);

-      break;

-    default:

-      ;

-    }

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

-    case K_ARRAY:

-    case K_AUTHID:

-    case K_BFILE:

-    case K_BINARY_DOUBLE:

-    case K_BINARY_FLOAT:

-    case K_BINARY_INTEGER:

-    case K_BLOB:

-    case K_BOOLEAN:

-    case K_BYTE:

-    case K_CHAR:

-    case K_CHARACTER:

-    case K_CLOB:

-    case K_COMMIT:

-    case K_CONSTANT:

-    case K_CURRENT_USER:

-    case K_DATE:

-    case K_DAY:

-    case K_DEC:

-    case K_DECIMAL:

-    case K_DEFINER:

-    case K_DELETE:

-    case K_DETERMINISTIC:

-    case K_DOUBLE:

-    case K_ENABLE:

-    case K_FINAL:

-    case K_FLOAT:

-    case K_FORCE:

-    case K_GLOBAL:

-    case K_INSTANTIABLE:

-    case K_INT:

-    case K_INTEGER:

-    case K_INTERVAL:

-    case K_KEY:

-    case K_LOCAL:

-    case K_LONG:

-    case K_MLSLABEL:

-    case K_MONTH:

-    case K_NATIONAL:

-    case K_NATURAL:

-    case K_NCHAR:

-    case K_NCLOB:

-    case K_NOCOPY:

-    case K_NUMBER:

-    case K_NUMERIC:

-    case K_NVARCHAR2:

-    case K_NVARCHAR:

-    case K_OBJECT:

-    case K_OID:

-    case K_ORGANIZATION:

-    case K_OUT:

-    case K_OVERFLOW:

-    case K_PACKAGE:

-    case K_PARALLEL_ENABLE:

-    case K_PIPELINED:

-    case K_PLS_INTEGER:

-    case K_POSITIVE:

-    case K_PRAGMA:

-    case K_PRECISION:

-    case K_PRESERVE:

-    case K_RANGE:

-    case K_RAW:

-    case K_REAL:

-    case K_RECORD:

-    case K_REF:

-    case K_REPLACE:

-    case K_RESULT_CACHE:

-    case K_RETURN:

-    case K_ROWID:

-    case K_ROWS:

-    case K_SECOND:

-    case K_SET:

-    case K_SIGNTYPE:

-    case K_SIMPLE_DOUBLE:

-    case K_SIMPLE_FLOAT:

-    case K_SIMPLE_INTEGER:

-    case K_SMALLINT:

-    case K_STRING:

-    case K_SYS_REFCURSOR:

-    case K_TEMPORARY:

-    case K_TIME:

-    case K_TIMESTAMP:

-    case K_UROWID:

-    case K_VARCHAR2:

-    case K_VARCHAR:

-    case K_VARRAY:

-    case K_VARYING:

-    case K_YEAR:

-    case K_ZONE:

-    case S_IDENTIFIER:

-    case S_QUOTED_IDENTIFIER:

-      OracleObjectName();

-      break;

-    default:

-      ;

-    }

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

-    case R_PRIMARY:

-      jj_consume_token(R_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();

-    }

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

-    case K_ENABLE:

-      jj_consume_token(K_ENABLE);

-      break;

-    default:

-      ;

-    }

-  }

-

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

- String s = null;

- Token t = null;

- DatabaseType dt = null;

-    if (jj_2_2(2)) {

-      dt = datatype();

-    } else {

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

-      case K_ARRAY:

-      case K_AUTHID:

-      case K_BFILE:

-      case K_BINARY_DOUBLE:

-      case K_BINARY_FLOAT:

-      case K_BINARY_INTEGER:

-      case K_BLOB:

-      case K_BOOLEAN:

-      case K_BYTE:

-      case K_CHAR:

-      case K_CHARACTER:

-      case K_CLOB:

-      case K_COMMIT:

-      case K_CONSTANT:

-      case K_CURRENT_USER:

-      case K_DATE:

-      case K_DAY:

-      case K_DEC:

-      case K_DECIMAL:

-      case K_DEFINER:

-      case K_DELETE:

-      case K_DETERMINISTIC:

-      case K_DOUBLE:

-      case K_ENABLE:

-      case K_FINAL:

-      case K_FLOAT:

-      case K_FORCE:

-      case K_GLOBAL:

-      case K_INSTANTIABLE:

-      case K_INT:

-      case K_INTEGER:

-      case K_INTERVAL:

-      case K_KEY:

-      case K_LOCAL:

-      case K_LONG:

-      case K_MLSLABEL:

-      case K_MONTH:

-      case K_NATIONAL:

-      case K_NATURAL:

-      case K_NCHAR:

-      case K_NCLOB:

-      case K_NOCOPY:

-      case K_NUMBER:

-      case K_NUMERIC:

-      case K_NVARCHAR2:

-      case K_NVARCHAR:

-      case K_OBJECT:

-      case K_OID:

-      case K_ORGANIZATION:

-      case K_OUT:

-      case K_OVERFLOW:

-      case K_PACKAGE:

-      case K_PARALLEL_ENABLE:

-      case K_PIPELINED:

-      case K_PLS_INTEGER:

-      case K_POSITIVE:

-      case K_PRAGMA:

-      case K_PRECISION:

-      case K_PRESERVE:

-      case K_RANGE:

-      case K_RAW:

-      case K_REAL:

-      case K_RECORD:

-      case K_REF:

-      case K_REPLACE:

-      case K_RESULT_CACHE:

-      case K_RETURN:

-      case K_ROWID:

-      case K_ROWS:

-      case K_SECOND:

-      case K_SET:

-      case K_SIGNTYPE:

-      case K_SIMPLE_DOUBLE:

-      case K_SIMPLE_FLOAT:

-      case K_SIMPLE_INTEGER:

-      case K_SMALLINT:

-      case K_STRING:

-      case K_SYS_REFCURSOR:

-      case K_TEMPORARY:

-      case K_TIME:

-      case K_TIMESTAMP:

-      case K_UROWID:

-      case K_VARCHAR2:

-      case K_VARCHAR:

-      case K_VARRAY:

-      case K_VARYING:

-      case K_YEAR:

-      case K_ZONE:

-      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 R_CONSTRAINT:

-      jj_consume_token(R_CONSTRAINT);

-      jj_consume_token(S_QUOTED_IDENTIFIER);

-      break;

-    default:

-      ;

-    }

-      if (s != null) {

-          if (s.contains(".")) {

-              int dotIdx = s.indexOf(".");

-              String namePart1 = s.substring(0, dotIdx);

-              String namePart2 = s.substring(dotIdx+1, s.length());

-              if (enclosingType.isTableType()) {

-                 if (((TableType)enclosingType).getSchema().equals(namePart1)) {

-                     s = namePart2;

-                 }

-              }

-          }

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

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

-    default:

-      if (jj_2_3(2)) {

-        variableDeclaration(packageType);

-      } else {

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

-        case K_PRAGMA:

-          pragmaDeclaration();

-          break;

-        default:

-          jj_consume_token(-1);

-          throw new ParseException();

-        }

-      }

-    }

-  }

-

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

- String varName = null;

- DatabaseType varType=null;

-    varName = OracleObjectName();

-    if (jj_2_5(2)) {

-      jj_consume_token(R_EXCEPTION);

-    } else {

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

-      case K_ARRAY:

-      case K_AUTHID:

-      case K_BFILE:

-      case K_BINARY_DOUBLE:

-      case K_BINARY_FLOAT:

-      case K_BINARY_INTEGER:

-      case K_BLOB:

-      case K_BOOLEAN:

-      case K_BYTE:

-      case K_CHAR:

-      case K_CHARACTER:

-      case K_CLOB:

-      case K_COMMIT:

-      case K_CONSTANT:

-      case K_CURRENT_USER:

-      case K_DATE:

-      case K_DAY:

-      case K_DEC:

-      case K_DECIMAL:

-      case K_DEFINER:

-      case K_DELETE:

-      case K_DETERMINISTIC:

-      case K_DOUBLE:

-      case K_ENABLE:

-      case K_FINAL:

-      case K_FLOAT:

-      case K_FORCE:

-      case K_GLOBAL:

-      case K_INSTANTIABLE:

-      case K_INT:

-      case K_INTEGER:

-      case K_INTERVAL:

-      case K_KEY:

-      case K_LOCAL:

-      case K_LONG:

-      case K_MLSLABEL:

-      case K_MONTH:

-      case K_NATIONAL:

-      case K_NATURAL:

-      case K_NCHAR:

-      case K_NCLOB:

-      case K_NOCOPY:

-      case K_NUMBER:

-      case K_NUMERIC:

-      case K_NVARCHAR2:

-      case K_NVARCHAR:

-      case K_OBJECT:

-      case K_OID:

-      case K_ORGANIZATION:

-      case K_OUT:

-      case K_OVERFLOW:

-      case K_PACKAGE:

-      case K_PARALLEL_ENABLE:

-      case K_PIPELINED:

-      case K_PLS_INTEGER:

-      case K_POSITIVE:

-      case K_PRAGMA:

-      case K_PRECISION:

-      case K_PRESERVE:

-      case K_RANGE:

-      case K_RAW:

-      case K_REAL:

-      case K_RECORD:

-      case K_REF:

-      case K_REPLACE:

-      case K_RESULT_CACHE:

-      case K_RETURN:

-      case K_ROWID:

-      case K_ROWS:

-      case K_SECOND:

-      case K_SET:

-      case K_SIGNTYPE:

-      case K_SIMPLE_DOUBLE:

-      case K_SIMPLE_FLOAT:

-      case K_SIMPLE_INTEGER:

-      case K_SMALLINT:

-      case K_STRING:

-      case K_SYS_REFCURSOR:

-      case K_TEMPORARY:

-      case K_TIME:

-      case K_TIMESTAMP:

-      case K_UROWID:

-      case K_VARCHAR2:

-      case K_VARCHAR:

-      case K_VARRAY:

-      case K_VARYING:

-      case K_YEAR:

-      case K_ZONE:

-      case S_IDENTIFIER:

-      case S_QUOTED_IDENTIFIER:

-        if (jj_2_4(2)) {

-          jj_consume_token(K_CONSTANT);

-        } else {

-          ;

-        }

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

-          ;

-        }

-        break;

-      default:

-        jj_consume_token(-1);

-        throw new ParseException();

-      }

-    }

-    jj_consume_token(O_SEMICOLON);

-        FieldType variable = new FieldType(varName);

-        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 R_CHARSET:

-          jj_consume_token(R_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 R_CHARSET:

-          jj_consume_token(R_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 R_CHARSET:

-          jj_consume_token(R_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 R_CHARSET:

-          jj_consume_token(R_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;

-    if (jj_2_6(3)) {

-      dataType = datatype();

-    } else {

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

-      case K_ARRAY:

-      case K_AUTHID:

-      case K_BFILE:

-      case K_BINARY_DOUBLE:

-      case K_BINARY_FLOAT:

-      case K_BINARY_INTEGER:

-      case K_BLOB:

-      case K_BOOLEAN:

-      case K_BYTE:

-      case K_CHAR:

-      case K_CHARACTER:

-      case K_CLOB:

-      case K_COMMIT:

-      case K_CONSTANT:

-      case K_CURRENT_USER:

-      case K_DATE:

-      case K_DAY:

-      case K_DEC:

-      case K_DECIMAL:

-      case K_DEFINER:

-      case K_DELETE:

-      case K_DETERMINISTIC:

-      case K_DOUBLE:

-      case K_ENABLE:

-      case K_FINAL:

-      case K_FLOAT:

-      case K_FORCE:

-      case K_GLOBAL:

-      case K_INSTANTIABLE:

-      case K_INT:

-      case K_INTEGER:

-      case K_INTERVAL:

-      case K_KEY:

-      case K_LOCAL:

-      case K_LONG:

-      case K_MLSLABEL:

-      case K_MONTH:

-      case K_NATIONAL:

-      case K_NATURAL:

-      case K_NCHAR:

-      case K_NCLOB:

-      case K_NOCOPY:

-      case K_NUMBER:

-      case K_NUMERIC:

-      case K_NVARCHAR2:

-      case K_NVARCHAR:

-      case K_OBJECT:

-      case K_OID:

-      case K_ORGANIZATION:

-      case K_OUT:

-      case K_OVERFLOW:

-      case K_PACKAGE:

-      case K_PARALLEL_ENABLE:

-      case K_PIPELINED:

-      case K_PLS_INTEGER:

-      case K_POSITIVE:

-      case K_PRAGMA:

-      case K_PRECISION:

-      case K_PRESERVE:

-      case K_RANGE:

-      case K_RAW:

-      case K_REAL:

-      case K_RECORD:

-      case K_REF:

-      case K_REPLACE:

-      case K_RESULT_CACHE:

-      case K_RETURN:

-      case K_ROWID:

-      case K_ROWS:

-      case K_SECOND:

-      case K_SET:

-      case K_SIGNTYPE:

-      case K_SIMPLE_DOUBLE:

-      case K_SIMPLE_FLOAT:

-      case K_SIMPLE_INTEGER:

-      case K_SMALLINT:

-      case K_STRING:

-      case K_SYS_REFCURSOR:

-      case K_TEMPORARY:

-      case K_TIME:

-      case K_TIMESTAMP:

-      case K_UROWID:

-      case K_VARCHAR2:

-      case K_VARCHAR:

-      case K_VARRAY:

-      case K_VARYING:

-      case K_YEAR:

-      case K_ZONE:

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

-    spec = OracleObjectName();

-    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 + 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:

-      ;

-    }

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

-    skipToSemiColon();

-  }

-

+  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 {
+    if (jj_2_1(2)) {
+      columnDeclaration(enclosingType);
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_CHECK:
+      case R_CONSTRAINT:
+      case R_PRIMARY:
+      case R_UNIQUE:
+      case K_ARRAY:
+      case K_AUTHID:
+      case K_BFILE:
+      case K_BINARY_DOUBLE:
+      case K_BINARY_FLOAT:
+      case K_BINARY_INTEGER:
+      case K_BLOB:
+      case K_BOOLEAN:
+      case K_BYTE:
+      case K_CHAR:
+      case K_CHARACTER:
+      case K_CLOB:
+      case K_COMMIT:
+      case K_CONSTANT:
+      case K_CURRENT_USER:
+      case K_DATE:
+      case K_DAY:
+      case K_DEC:
+      case K_DECIMAL:
+      case K_DEFINER:
+      case K_DELETE:
+      case K_DETERMINISTIC:
+      case K_DOUBLE:
+      case K_ENABLE:
+      case K_FINAL:
+      case K_FLOAT:
+      case K_FORCE:
+      case K_GLOBAL:
+      case K_INSTANTIABLE:
+      case K_INT:
+      case K_INTEGER:
+      case K_INTERVAL:
+      case K_KEY:
+      case K_LOCAL:
+      case K_LONG:
+      case K_MLSLABEL:
+      case K_MONTH:
+      case K_NATIONAL:
+      case K_NATURAL:
+      case K_NCHAR:
+      case K_NCLOB:
+      case K_NOCOPY:
+      case K_NUMBER:
+      case K_NUMERIC:
+      case K_NVARCHAR2:
+      case K_NVARCHAR:
+      case K_OBJECT:
+      case K_OID:
+      case K_ORGANIZATION:
+      case K_OUT:
+      case K_OVERFLOW:
+      case K_PACKAGE:
+      case K_PARALLEL_ENABLE:
+      case K_PIPELINED:
+      case K_PLS_INTEGER:
+      case K_POSITIVE:
+      case K_PRAGMA:
+      case K_PRECISION:
+      case K_PRESERVE:
+      case K_RANGE:
+      case K_RAW:
+      case K_REAL:
+      case K_RECORD:
+      case K_REF:
+      case K_REPLACE:
+      case K_RESULT_CACHE:
+      case K_RETURN:
+      case K_ROWID:
+      case K_ROWS:
+      case K_SECOND:
+      case K_SET:
+      case K_SIGNTYPE:
+      case K_SIMPLE_DOUBLE:
+      case K_SIMPLE_FLOAT:
+      case K_SIMPLE_INTEGER:
+      case K_SMALLINT:
+      case K_STRING:
+      case K_SYS_REFCURSOR:
+      case K_TEMPORARY:
+      case K_TIME:
+      case K_TIMESTAMP:
+      case K_UROWID:
+      case K_VARCHAR2:
+      case K_VARCHAR:
+      case K_VARRAY:
+      case K_VARYING:
+      case K_YEAR:
+      case K_ZONE:
+      case S_IDENTIFIER:
+      case S_QUOTED_IDENTIFIER:
+        constraintDeclaration(enclosingType);
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    }
+    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;
+    s = OracleObjectName();
+    columnType = columnTypeSpec(enclosingType);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_NOT:
+      notNull = notNull();
+      break;
+    default:
+      ;
+    }
+          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);
+              }
+          }
+          column.setEnclosedType(columnType);
+          if (columnType instanceof UnresolvedType) {
+              ((UnresolvedType)columnType).setOwningType(column);
+          }
+          if (notNull) {
+              column.setNotNull();
+          }
+  }
+
+  final public void constraintDeclaration(CompositeDatabaseType enclosingType) throws ParseException {
+ String s = null;
+ String pk = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_CONSTRAINT:
+      jj_consume_token(R_CONSTRAINT);
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_ARRAY:
+    case K_AUTHID:
+    case K_BFILE:
+    case K_BINARY_DOUBLE:
+    case K_BINARY_FLOAT:
+    case K_BINARY_INTEGER:
+    case K_BLOB:
+    case K_BOOLEAN:
+    case K_BYTE:
+    case K_CHAR:
+    case K_CHARACTER:
+    case K_CLOB:
+    case K_COMMIT:
+    case K_CONSTANT:
+    case K_CURRENT_USER:
+    case K_DATE:
+    case K_DAY:
+    case K_DEC:
+    case K_DECIMAL:
+    case K_DEFINER:
+    case K_DELETE:
+    case K_DETERMINISTIC:
+    case K_DOUBLE:
+    case K_ENABLE:
+    case K_FINAL:
+    case K_FLOAT:
+    case K_FORCE:
+    case K_GLOBAL:
+    case K_INSTANTIABLE:
+    case K_INT:
+    case K_INTEGER:
+    case K_INTERVAL:
+    case K_KEY:
+    case K_LOCAL:
+    case K_LONG:
+    case K_MLSLABEL:
+    case K_MONTH:
+    case K_NATIONAL:
+    case K_NATURAL:
+    case K_NCHAR:
+    case K_NCLOB:
+    case K_NOCOPY:
+    case K_NUMBER:
+    case K_NUMERIC:
+    case K_NVARCHAR2:
+    case K_NVARCHAR:
+    case K_OBJECT:
+    case K_OID:
+    case K_ORGANIZATION:
+    case K_OUT:
+    case K_OVERFLOW:
+    case K_PACKAGE:
+    case K_PARALLEL_ENABLE:
+    case K_PIPELINED:
+    case K_PLS_INTEGER:
+    case K_POSITIVE:
+    case K_PRAGMA:
+    case K_PRECISION:
+    case K_PRESERVE:
+    case K_RANGE:
+    case K_RAW:
+    case K_REAL:
+    case K_RECORD:
+    case K_REF:
+    case K_REPLACE:
+    case K_RESULT_CACHE:
+    case K_RETURN:
+    case K_ROWID:
+    case K_ROWS:
+    case K_SECOND:
+    case K_SET:
+    case K_SIGNTYPE:
+    case K_SIMPLE_DOUBLE:
+    case K_SIMPLE_FLOAT:
+    case K_SIMPLE_INTEGER:
+    case K_SMALLINT:
+    case K_STRING:
+    case K_SYS_REFCURSOR:
+    case K_TEMPORARY:
+    case K_TIME:
+    case K_TIMESTAMP:
+    case K_UROWID:
+    case K_VARCHAR2:
+    case K_VARCHAR:
+    case K_VARRAY:
+    case K_VARYING:
+    case K_YEAR:
+    case K_ZONE:
+    case S_IDENTIFIER:
+    case S_QUOTED_IDENTIFIER:
+      OracleObjectName();
+      break;
+    default:
+      ;
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case R_PRIMARY:
+      jj_consume_token(R_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();
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case K_ENABLE:
+      jj_consume_token(K_ENABLE);
+      break;
+    default:
+      ;
+    }
+  }
+
+  final public DatabaseType columnTypeSpec(CompositeDatabaseType enclosingType) throws ParseException {
+ String s = null;
+ Token t = null;
+ DatabaseType dt = null;
+    if (jj_2_2(2)) {
+      dt = datatype();
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_ARRAY:
+      case K_AUTHID:
+      case K_BFILE:
+      case K_BINARY_DOUBLE:
+      case K_BINARY_FLOAT:
+      case K_BINARY_INTEGER:
+      case K_BLOB:
+      case K_BOOLEAN:
+      case K_BYTE:
+      case K_CHAR:
+      case K_CHARACTER:
+      case K_CLOB:
+      case K_COMMIT:
+      case K_CONSTANT:
+      case K_CURRENT_USER:
+      case K_DATE:
+      case K_DAY:
+      case K_DEC:
+      case K_DECIMAL:
+      case K_DEFINER:
+      case K_DELETE:
+      case K_DETERMINISTIC:
+      case K_DOUBLE:
+      case K_ENABLE:
+      case K_FINAL:
+      case K_FLOAT:
+      case K_FORCE:
+      case K_GLOBAL:
+      case K_INSTANTIABLE:
+      case K_INT:
+      case K_INTEGER:
+      case K_INTERVAL:
+      case K_KEY:
+      case K_LOCAL:
+      case K_LONG:
+      case K_MLSLABEL:
+      case K_MONTH:
+      case K_NATIONAL:
+      case K_NATURAL:
+      case K_NCHAR:
+      case K_NCLOB:
+      case K_NOCOPY:
+      case K_NUMBER:
+      case K_NUMERIC:
+      case K_NVARCHAR2:
+      case K_NVARCHAR:
+      case K_OBJECT:
+      case K_OID:
+      case K_ORGANIZATION:
+      case K_OUT:
+      case K_OVERFLOW:
+      case K_PACKAGE:
+      case K_PARALLEL_ENABLE:
+      case K_PIPELINED:
+      case K_PLS_INTEGER:
+      case K_POSITIVE:
+      case K_PRAGMA:
+      case K_PRECISION:
+      case K_PRESERVE:
+      case K_RANGE:
+      case K_RAW:
+      case K_REAL:
+      case K_RECORD:
+      case K_REF:
+      case K_REPLACE:
+      case K_RESULT_CACHE:
+      case K_RETURN:
+      case K_ROWID:
+      case K_ROWS:
+      case K_SECOND:
+      case K_SET:
+      case K_SIGNTYPE:
+      case K_SIMPLE_DOUBLE:
+      case K_SIMPLE_FLOAT:
+      case K_SIMPLE_INTEGER:
+      case K_SMALLINT:
+      case K_STRING:
+      case K_SYS_REFCURSOR:
+      case K_TEMPORARY:
+      case K_TIME:
+      case K_TIMESTAMP:
+      case K_UROWID:
+      case K_VARCHAR2:
+      case K_VARCHAR:
+      case K_VARRAY:
+      case K_VARYING:
+      case K_YEAR:
+      case K_ZONE:
+      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 R_CONSTRAINT:
+      jj_consume_token(R_CONSTRAINT);
+      jj_consume_token(S_QUOTED_IDENTIFIER);
+      break;
+    default:
+      ;
+    }
+      if (s != null) {
+          if (s.contains(".")) {
+              int dotIdx = s.indexOf(".");
+              String namePart1 = s.substring(0, dotIdx);
+              String namePart2 = s.substring(dotIdx+1, s.length());
+              if (enclosingType.isTableType()) {
+                 if (((TableType)enclosingType).getSchema().equals(namePart1)) {
+                     s = namePart2;
+                 }
+              }
+          }
+          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 {
+    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;
+    default:
+      if (jj_2_3(2)) {
+        variableDeclaration(packageType);
+      } else {
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case K_PRAGMA:
+          pragmaDeclaration();
+          break;
+        default:
+          jj_consume_token(-1);
+          throw new ParseException();
+        }
+      }
+    }
+  }
+
+  final public void variableDeclaration(PLSQLPackageType packageType) throws ParseException {
+ String varName = null;
+ DatabaseType varType=null;
+    varName = OracleObjectName();
+    if (jj_2_5(2)) {
+      jj_consume_token(R_EXCEPTION);
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_ARRAY:
+      case K_AUTHID:
+      case K_BFILE:
+      case K_BINARY_DOUBLE:
+      case K_BINARY_FLOAT:
+      case K_BINARY_INTEGER:
+      case K_BLOB:
+      case K_BOOLEAN:
+      case K_BYTE:
+      case K_CHAR:
+      case K_CHARACTER:
+      case K_CLOB:
+      case K_COMMIT:
+      case K_CONSTANT:
+      case K_CURRENT_USER:
+      case K_DATE:
+      case K_DAY:
+      case K_DEC:
+      case K_DECIMAL:
+      case K_DEFINER:
+      case K_DELETE:
+      case K_DETERMINISTIC:
+      case K_DOUBLE:
+      case K_ENABLE:
+      case K_FINAL:
+      case K_FLOAT:
+      case K_FORCE:
+      case K_GLOBAL:
+      case K_INSTANTIABLE:
+      case K_INT:
+      case K_INTEGER:
+      case K_INTERVAL:
+      case K_KEY:
+      case K_LOCAL:
+      case K_LONG:
+      case K_MLSLABEL:
+      case K_MONTH:
+      case K_NATIONAL:
+      case K_NATURAL:
+      case K_NCHAR:
+      case K_NCLOB:
+      case K_NOCOPY:
+      case K_NUMBER:
+      case K_NUMERIC:
+      case K_NVARCHAR2:
+      case K_NVARCHAR:
+      case K_OBJECT:
+      case K_OID:
+      case K_ORGANIZATION:
+      case K_OUT:
+      case K_OVERFLOW:
+      case K_PACKAGE:
+      case K_PARALLEL_ENABLE:
+      case K_PIPELINED:
+      case K_PLS_INTEGER:
+      case K_POSITIVE:
+      case K_PRAGMA:
+      case K_PRECISION:
+      case K_PRESERVE:
+      case K_RANGE:
+      case K_RAW:
+      case K_REAL:
+      case K_RECORD:
+      case K_REF:
+      case K_REPLACE:
+      case K_RESULT_CACHE:
+      case K_RETURN:
+      case K_ROWID:
+      case K_ROWS:
+      case K_SECOND:
+      case K_SET:
+      case K_SIGNTYPE:
+      case K_SIMPLE_DOUBLE:
+      case K_SIMPLE_FLOAT:
+      case K_SIMPLE_INTEGER:
+      case K_SMALLINT:
+      case K_STRING:
+      case K_SYS_REFCURSOR:
+      case K_TEMPORARY:
+      case K_TIME:
+      case K_TIMESTAMP:
+      case K_UROWID:
+      case K_VARCHAR2:
+      case K_VARCHAR:
+      case K_VARRAY:
+      case K_VARYING:
+      case K_YEAR:
+      case K_ZONE:
+      case S_IDENTIFIER:
+      case S_QUOTED_IDENTIFIER:
+        if (jj_2_4(2)) {
+          jj_consume_token(K_CONSTANT);
+        } else {
+          ;
+        }
+        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:
+          ;
+        }
+        break;
+      default:
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    }
+    jj_consume_token(O_SEMICOLON);
+        FieldType variable = new FieldType(varName);
+        variable.setEnclosedType(varType);
+        packageType.addLocalVariable(variable);
+        if (varType.isROWTYPEType()) {
+            ((ROWTYPEType)varType).setPackageType(packageType);
+        }
+  }
+
+  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 R_CHARSET:
+          jj_consume_token(R_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 R_CHARSET:
+          jj_consume_token(R_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 R_CHARSET:
+          jj_consume_token(R_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 R_CHARSET:
+          jj_consume_token(R_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;
+    if (jj_2_6(3)) {
+      dataType = datatype();
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case K_ARRAY:
+      case K_AUTHID:
+      case K_BFILE:
+      case K_BINARY_DOUBLE:
+      case K_BINARY_FLOAT:
+      case K_BINARY_INTEGER:
+      case K_BLOB:
+      case K_BOOLEAN:
+      case K_BYTE:
+      case K_CHAR:
+      case K_CHARACTER:
+      case K_CLOB:
+      case K_COMMIT:
+      case K_CONSTANT:
+      case K_CURRENT_USER:
+      case K_DATE:
+      case K_DAY:
+      case K_DEC:
+      case K_DECIMAL:
+      case K_DEFINER:
+      case K_DELETE:
+      case K_DETERMINISTIC:
+      case K_DOUBLE:
+      case K_ENABLE:
+      case K_FINAL:
+      case K_FLOAT:
+      case K_FORCE:
+      case K_GLOBAL:
+      case K_INSTANTIABLE:
+      case K_INT:
+      case K_INTEGER:
+      case K_INTERVAL:
+      case K_KEY:
+      case K_LOCAL:
+      case K_LONG:
+      case K_MLSLABEL:
+      case K_MONTH:
+      case K_NATIONAL:
+      case K_NATURAL:
+      case K_NCHAR:
+      case K_NCLOB:
+      case K_NOCOPY:
+      case K_NUMBER:
+      case K_NUMERIC:
+      case K_NVARCHAR2:
+      case K_NVARCHAR:
+      case K_OBJECT:
+      case K_OID:
+      case K_ORGANIZATION:
+      case K_OUT:
+      case K_OVERFLOW:
+      case K_PACKAGE:
+      case K_PARALLEL_ENABLE:
+      case K_PIPELINED:
+      case K_PLS_INTEGER:
+      case K_POSITIVE:
+      case K_PRAGMA:
+      case K_PRECISION:
+      case K_PRESERVE:
+      case K_RANGE:
+      case K_RAW:
+      case K_REAL:
+      case K_RECORD:
+      case K_REF:
+      case K_REPLACE:
+      case K_RESULT_CACHE:
+      case K_RETURN:
+      case K_ROWID:
+      case K_ROWS:
+      case K_SECOND:
+      case K_SET:
+      case K_SIGNTYPE:
+      case K_SIMPLE_DOUBLE:
+      case K_SIMPLE_FLOAT:
+      case K_SIMPLE_INTEGER:
+      case K_SMALLINT:
+      case K_STRING:
+      case K_SYS_REFCURSOR:
+      case K_TEMPORARY:
+      case K_TIME:
+      case K_TIMESTAMP:
+      case K_UROWID:
+      case K_VARCHAR2:
+      case K_VARCHAR:
+      case K_VARRAY:
+      case K_VARYING:
+      case K_YEAR:
+      case K_ZONE:
+      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 {
+ String spec = null;
+ String anchoredTypeName = null;
+ boolean isTYPEType = false;
+ boolean isROWTYPEType = false;
+    if (jj_2_7(2)) {
+      recordDeclaration(packageType, typeName);
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case R_TABLE:
+        plsqlTableDeclaration(packageType, typeName);
+        break;
+      default:
+        if (jj_2_8(2)) {
+          varrayDeclaration(packageType);
+        } else if (jj_2_9(2)) {
+          refCursorDeclaration(packageType, typeName);
+        } else if (jj_2_10(2)) {
+          spec = columnSpec();
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case R_ANCHORED_TYPE:
+            jj_consume_token(R_ANCHORED_TYPE);
+            isTYPEType=true;
+            anchoredTypeName = spec + removeQuotes(tokenImage[R_ANCHORED_TYPE]);
+            break;
+          case R_ANCHORED_ROWTYPE:
+            jj_consume_token(R_ANCHORED_ROWTYPE);
+            isROWTYPEType =true;
+            anchoredTypeName = spec + removeQuotes(tokenImage[R_ANCHORED_ROWTYPE]);
+            break;
+          default:
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+         DatabaseType dataType = null;
+         UnresolvedType uType = new UnresolvedType(anchoredTypeName);
+         if (isTYPEType) {
+             TYPEType tType = new TYPEType(anchoredTypeName);
+             tType.setEnclosedType(uType);
+             uType.setOwningType(tType);
+             dataType = tType;
+         }
+         else if (isROWTYPEType) {
+             ROWTYPEType rType = new ROWTYPEType(anchoredTypeName);
+             rType.setEnclosedType(uType);
+             rType.setPackageType(packageType);
+             uType.setOwningType(rType);
+             dataType = rType;
+         }
+         PLSQLType newType = new PLSQLType(typeName);
+         newType.setEnclosedType(dataType);
+         packageType.addType(newType);
+         localTypes.put(typeName, newType);
+        } else {
+          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);
+      }
+      if (subtype.isROWTYPEType()) {
+         ((ROWTYPEType)subtype).setPackageType(packageType);
+      }
+      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);
+    spec = OracleObjectName();
+    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 + 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:
+      ;
+    }
+      //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);
+                      rType.setPackageType(packageType);
+                      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);
+                  rType.setPackageType(packageType);
+                  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);
+    skipToSemiColon();
+  }
+
 // Procedure Specification

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

- String procedureName= null;

- ProcedureType procedureType = null;

-    jj_consume_token(R_PROCEDURE);

-    procedureName = OracleObjectName();

-            procedureType = new ProcedureType(procedureName);

-            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 {
+ String procedureName= null;
+ ProcedureType procedureType = null;
+    jj_consume_token(R_PROCEDURE);
+    procedureName = OracleObjectName();
+            procedureType = new ProcedureType(procedureName);
+            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);
+      for (ArgumentType argumentType : procedureType.getArguments()) {
+          DatabaseType databaseType = argumentType.getEnclosedType();
+          if (databaseType.isROWTYPEType()) {
+              ((ROWTYPEType)databaseType).setPackageType(packageType);
+          }
+      }
+  }
+
+  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 {

- String functionName= null;

- FunctionType functionType = null;

- ArgumentType returnDataType = null;

-    jj_consume_token(R_FUNCTION);

-    functionName = OracleObjectName();

-            functionType = new FunctionType(functionName);

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

- String s = null;

- ArgumentType argumentType = null;

- DatabaseType argumentDataType = null;

+  final public void functionSpec(PLSQLPackageType packageType) throws ParseException {
+ String functionName= null;
+ FunctionType functionType = null;
+ ArgumentType returnDataType = null;
+    jj_consume_token(R_FUNCTION);
+    functionName = OracleObjectName();
+            functionType = new FunctionType(functionName);
+            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);
+      for (ArgumentType argumentType : functionType.getArguments()) {
+          DatabaseType databaseType = argumentType.getEnclosedType();
+          if (databaseType.isROWTYPEType()) {
+              ((ROWTYPEType)databaseType).setPackageType(packageType);
+          }
+      }
+      if (returnDataType.getEnclosedType().isROWTYPEType()) {
+          ((ROWTYPEType)returnDataType.getEnclosedType()).setPackageType(packageType);
+      }
+  }
+
+  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 {
+ String s = null;
+ ArgumentType argumentType = null;
+ DatabaseType argumentDataType = null;
  ArgumentTypeDirection argDirection = ArgumentTypeDirection.IN; // by default, arguments are IN

- String direction = null;

- boolean defaultAssignment = false;

-    s = OracleObjectName();

-    if (jj_2_7(2)) {

-      direction = direction();

-    } else {

-      ;

-    }

-    if (jj_2_8(2)) {

-      jj_consume_token(K_NOCOPY);

-    } else {

-      ;

-    }

-    argumentDataType = typeSpec();

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

-    case O_ASSIGN:

-    case R_DEFAULT:

-      defaultAssignment = argumentDefaultAssignment();

-      break;

-    default:

-      ;

-    }

-      argumentType = new ArgumentType(s);

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

-    skipToSemiColon();

-  }

-

-  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 boolean notNull() throws ParseException {

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

-      ;

-    }

-      {if (true) return true;}

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

-  }

-

-  final public String direction() throws ParseException {

- String dir = "";

-    if (jj_2_10(2)) {

-      jj_consume_token(R_IN);

-                dir = "IN";

-      if (jj_2_9(2)) {

-        jj_consume_token(K_OUT);

-                                                     dir += " OUT";

-      } else {

-        ;

-      }

-    } else {

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

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

- String keyword=null;

-    if (jj_2_11(2)) {

-      keyword = keywords();

-                          {if (true) return keyword;}

-    } else {

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

-    if (jj_scan_token(K_NATIONAL)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_scan_token(138)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(137)) return true;

-    }

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_79()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_24() {

-    if (jj_scan_token(K_INTERVAL)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_61()) {

-    jj_scanpos = xsp;

-    if (jj_3R_62()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_75() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_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_60() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_50() {

-    if (jj_scan_token(K_NVARCHAR2)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_76()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_74() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_9() {

-    if (jj_scan_token(K_OUT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_57() {

-    if (jj_3R_80()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_59() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_2() {

-    if (jj_3R_7()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_83() {

-    if (jj_scan_token(O_COMMA)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_21() {

-    if (jj_scan_token(K_RAW)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_60()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_49() {

-    if (jj_scan_token(K_NVARCHAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_75()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_12() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_2()) {

-    jj_scanpos = xsp;

-    if (jj_3R_57()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_56() {

-    if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_55() {

-    if (jj_scan_token(S_IDENTIFIER)) return true;

-    return false;

-  }

-

-  private boolean jj_3_11() {

-    if (jj_3R_10()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_11() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_11()) {

-    jj_scanpos = xsp;

-    if (jj_3R_55()) {

-    jj_scanpos = xsp;

-    if (jj_3R_56()) return true;

-    }

-    }

-    return false;

-  }

-

-  private boolean jj_3R_73() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_54() {

-    if (jj_scan_token(K_OUT)) return true;

-    return false;

-  }

-

-  private boolean jj_3_10() {

-    if (jj_scan_token(R_IN)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_9()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_20() {

-    if (jj_scan_token(K_LONG)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_59()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_9() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_10()) {

-    jj_scanpos = xsp;

-    if (jj_3R_54()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_48() {

-    if (jj_scan_token(K_NCHAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_74()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_71() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_69() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_6() {

-    if (jj_3R_11()) return true;

-    if (jj_3R_12()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_47() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_73()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_82() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_scan_token(9)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(35)) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_72() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3_1() {

-    if (jj_3R_6()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_46() {

-    if (jj_scan_token(K_VARCHAR2)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_71()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_72()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_67() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_70() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_58() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_82()) jj_scanpos = xsp;

-    while (true) {

-      xsp = jj_scanpos;

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

-    }

-    if (jj_scan_token(O_CLOSEPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_45() {

-    if (jj_scan_token(K_VARCHAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_69()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_70()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_19() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_scan_token(170)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(171)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(146)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(145)) return true;

-    }

-    }

-    }

-    xsp = jj_scanpos;

-    if (jj_3R_58()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_18() {

-    if (jj_scan_token(K_SIGNTYPE)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_17() {

-    if (jj_scan_token(K_POSITIVE)) return true;

-    return false;

-  }

-

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

-    if (jj_scan_token(K_BINARY_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_7() {

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

-    if (jj_3R_11()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_68() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3_7() {

-    if (jj_3R_9()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_66() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_44() {

-    if (jj_scan_token(K_CHAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    xsp = jj_scanpos;

-    if (jj_3R_67()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_68()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_43() {

-    if (jj_scan_token(K_DOUBLE)) return true;

-    if (jj_scan_token(K_PRECISION)) return true;

-    return false;

-  }

-

-  private boolean jj_3_4() {

-    if (jj_scan_token(K_CONSTANT)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_42() {

-    if (jj_scan_token(K_UROWID)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_66()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3_8() {

-    if (jj_scan_token(K_NOCOPY)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_53() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_4()) jj_scanpos = xsp;

-    if (jj_3R_78()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_41() {

-    if (jj_scan_token(K_ROWID)) return true;

-    return false;

-  }

-

-  private boolean jj_3_5() {

-    if (jj_scan_token(R_EXCEPTION)) 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_34() {

-    if (jj_scan_token(K_SIMPLE_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_79() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_33() {

-    if (jj_scan_token(K_PLS_INTEGER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_8() {

-    if (jj_3R_11()) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_5()) {

-    jj_scanpos = xsp;

-    if (jj_3R_53()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_32() {

-    if (jj_scan_token(K_MLSLABEL)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_65() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_31() {

-    if (jj_scan_token(K_REAL)) return true;

-    return false;

-  }

-

-  private boolean jj_3_3() {

-    if (jj_3R_8()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_30() {

-    if (jj_scan_token(K_FLOAT)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_65()) jj_scanpos = xsp;

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

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_81() {

-    if (jj_3R_80()) return true;

-    return false;

-  }

-

-  private boolean jj_3_6() {

-    if (jj_3R_7()) return true;

-    return false;

-  }

-

-  private boolean jj_3R_85() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_77() {

-    if (jj_scan_token(K_CHARACTER)) return true;

-    if (jj_scan_token(K_SET)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_64() {

-    if (jj_scan_token(R_WITH)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

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

-    if (jj_scan_token(K_TIME)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_78() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3_6()) {

-    jj_scanpos = xsp;

-    if (jj_3R_81()) return true;

-    }

-    return false;

-  }

-

-  private boolean jj_3R_26() {

-    if (jj_scan_token(K_TIMESTAMP)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_63()) jj_scanpos = xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_64()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_25() {

-    if (jj_scan_token(K_TIME)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_62() {

-    if (jj_scan_token(K_YEAR)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_85()) jj_scanpos = xsp;

-    if (jj_scan_token(R_TO)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_52() {

-    if (jj_scan_token(K_CLOB)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_77()) jj_scanpos = xsp;

-    return false;

-  }

-

-  private boolean jj_3R_84() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_10() {

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_scan_token(128)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(129)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(130)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(131)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(132)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(133)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(134)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(135)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(136)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(137)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(138)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(139)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(140)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(141)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(142)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(143)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(144)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(145)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(146)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(147)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(148)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(149)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(150)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(151)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(152)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(153)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(154)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(155)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(156)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(157)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(158)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(159)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(160)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(161)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(162)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(163)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(164)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(165)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(166)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(167)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(168)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(169)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(170)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(171)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(172)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(173)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(174)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(175)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(176)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(177)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(178)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(179)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(180)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(181)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(182)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(183)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(184)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(185)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(186)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(187)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(188)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(189)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(190)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(191)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(192)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(193)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(194)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(195)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(196)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(197)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(198)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(199)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(200)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(201)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(202)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(203)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(204)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(205)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(206)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(207)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(208)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(209)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(210)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(211)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(212)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(213)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(214)) {

-    jj_scanpos = xsp;

-    if (jj_scan_token(215)) return true;

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    }

-    return false;

-  }

-

-  private boolean jj_3R_76() {

-    if (jj_scan_token(O_OPENPAREN)) return true;

-    if (jj_scan_token(S_NUMBER)) return true;

-    return false;

-  }

-

-  private boolean jj_3R_61() {

-    if (jj_scan_token(K_DAY)) return true;

-    Token xsp;

-    xsp = jj_scanpos;

-    if (jj_3R_84()) jj_scanpos = xsp;

-    if (jj_scan_token(R_TO)) 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;
+    s = OracleObjectName();
+    if (jj_2_11(2)) {
+      direction = direction();
+    } else {
+      ;
+    }
+    if (jj_2_12(2)) {
+      jj_consume_token(K_NOCOPY);
+    } else {
+      ;
+    }
+    argumentDataType = typeSpec();
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case O_ASSIGN:
+    case R_DEFAULT:
+      defaultAssignment = argumentDefaultAssignment();
+      break;
+    default:
+      ;
+    }
+      argumentType = new ArgumentType(s);
+      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);
+    skipToSemiColon();
+  }
+
+  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 boolean notNull() throws ParseException {
+    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:
+      ;
+    }
+      {if (true) return true;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String direction() throws ParseException {
+ String dir = "";
+    if (jj_2_14(2)) {
+      jj_consume_token(R_IN);
+                dir = "IN";
+      if (jj_2_13(2)) {
+        jj_consume_token(K_OUT);
+                                                     dir += " OUT";
+      } else {
+        ;
+      }
+    } else {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      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 {
+ String keyword=null;
+    if (jj_2_15(2)) {
+      keyword = keywords();
+                          {if (true) return keyword;}
+    } else {
+      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_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_3R_57() {
+    if (jj_scan_token(K_NATIONAL)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(138)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(137)) return true;
+    }
+    xsp = jj_scanpos;
+    if (jj_scan_token(213)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_87()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_30() {
+    if (jj_scan_token(K_INTERVAL)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_69()) {
+    jj_scanpos = xsp;
+    if (jj_3R_70()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_83() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_29() {
+    if (jj_scan_token(K_DATE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_28() {
+    if (jj_scan_token(K_BOOLEAN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_9() {
+    if (jj_scan_token(K_RECORD)) return true;
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_68() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_56() {
+    if (jj_scan_token(K_NVARCHAR2)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_84()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_82() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_67() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_90() {
+    if (jj_scan_token(O_COMMA)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_65() {
+    if (jj_3R_12()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_27() {
+    if (jj_scan_token(K_RAW)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_68()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3_2() {
+    if (jj_3R_7()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_55() {
+    if (jj_scan_token(K_NVARCHAR)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_83()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_18() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_2()) {
+    jj_scanpos = xsp;
+    if (jj_3R_65()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_81() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_14() {
+    if (jj_scan_token(R_ANCHORED_ROWTYPE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_26() {
+    if (jj_scan_token(K_LONG)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(188)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_67()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_54() {
+    if (jj_scan_token(K_NCHAR)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(213)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_82()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_13() {
+    if (jj_scan_token(R_ANCHORED_TYPE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_79() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3_11() {
+    if (jj_3R_15()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_60() {
+    if (jj_scan_token(K_VARYING)) return true;
+    if (jj_scan_token(K_ARRAY)) return true;
+    return false;
+  }
+
+  private boolean jj_3_10() {
+    if (jj_3R_12()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_13()) {
+    jj_scanpos = xsp;
+    if (jj_3R_14()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3_9() {
+    if (jj_3R_11()) return true;
+    return false;
+  }
+
+  private boolean jj_3_8() {
+    if (jj_3R_10()) return true;
+    return false;
+  }
+
+  private boolean jj_3_7() {
+    if (jj_3R_9()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_11() {
+    if (jj_scan_token(K_REF)) return true;
+    if (jj_scan_token(R_CURSOR)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_77() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3_12() {
+    if (jj_scan_token(K_NOCOPY)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_10() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(212)) {
+    jj_scanpos = xsp;
+    if (jj_3R_60()) return true;
+    }
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_53() {
+    if (jj_scan_token(K_CHARACTER)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(213)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_81()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_6() {
+    if (jj_3R_17()) return true;
+    if (jj_3R_18()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_89() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(9)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(35)) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_80() {
+    if (jj_scan_token(K_CHARACTER)) return true;
+    if (jj_scan_token(K_SET)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_52() {
+    if (jj_scan_token(K_VARCHAR2)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(213)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_79()) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_80()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3_1() {
+    if (jj_3R_6()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_75() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_61() {
+    if (jj_scan_token(O_DOT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_78() {
+    if (jj_scan_token(K_CHARACTER)) return true;
+    if (jj_scan_token(K_SET)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_66() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_89()) jj_scanpos = xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_90()) { jj_scanpos = xsp; break; }
+    }
+    if (jj_scan_token(O_CLOSEPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_51() {
+    if (jj_scan_token(K_VARCHAR)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(213)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_77()) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_78()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_25() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(170)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(171)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(146)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(145)) return true;
+    }
+    }
+    }
+    xsp = jj_scanpos;
+    if (jj_3R_66()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_24() {
+    if (jj_scan_token(K_SIGNTYPE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_23() {
+    if (jj_scan_token(K_POSITIVE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_22() {
+    if (jj_scan_token(K_NATURAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_21() {
+    if (jj_scan_token(K_BINARY_DOUBLE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_20() {
+    if (jj_scan_token(K_BINARY_FLOAT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_19() {
+    if (jj_scan_token(K_BINARY_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_7() {
+    Token xsp;
+    xsp = jj_scanpos;
+    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()) {
+    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()) return true;
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    return false;
+  }
+
+  private boolean jj_3R_76() {
+    if (jj_scan_token(K_CHARACTER)) return true;
+    if (jj_scan_token(K_SET)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_12() {
+    if (jj_3R_17()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_61()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_74() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_50() {
+    if (jj_scan_token(K_CHAR)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(213)) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_75()) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_76()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_49() {
+    if (jj_scan_token(K_DOUBLE)) return true;
+    if (jj_scan_token(K_PRECISION)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_48() {
+    if (jj_scan_token(K_UROWID)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_74()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_47() {
+    if (jj_scan_token(K_ROWID)) return true;
+    return false;
+  }
+
+  private boolean jj_3_4() {
+    if (jj_scan_token(K_CONSTANT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_46() {
+    if (jj_scan_token(K_BFILE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_45() {
+    if (jj_scan_token(K_NCLOB)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_59() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_4()) jj_scanpos = xsp;
+    if (jj_3R_86()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_44() {
+    if (jj_scan_token(K_BLOB)) return true;
+    return false;
+  }
+
+  private boolean jj_3_5() {
+    if (jj_scan_token(R_EXCEPTION)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_43() {
+    if (jj_scan_token(K_SYS_REFCURSOR)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_42() {
+    if (jj_scan_token(K_SIMPLE_DOUBLE)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_41() {
+    if (jj_scan_token(K_SIMPLE_FLOAT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_40() {
+    if (jj_scan_token(K_SIMPLE_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_87() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_39() {
+    if (jj_scan_token(K_PLS_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_73() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_38() {
+    if (jj_scan_token(K_MLSLABEL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_37() {
+    if (jj_scan_token(K_REAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_8() {
+    if (jj_3R_17()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_5()) {
+    jj_scanpos = xsp;
+    if (jj_3R_59()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3_3() {
+    if (jj_3R_8()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_36() {
+    if (jj_scan_token(K_FLOAT)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_73()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3_13() {
+    if (jj_scan_token(K_OUT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_35() {
+    if (jj_scan_token(K_SMALLINT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_34() {
+    if (jj_scan_token(K_INT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_33() {
+    if (jj_scan_token(K_INTEGER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_71() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_64() {
+    if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_63() {
+    if (jj_scan_token(S_IDENTIFIER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_88() {
+    if (jj_3R_12()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_17() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_15()) {
+    jj_scanpos = xsp;
+    if (jj_3R_63()) {
+    jj_scanpos = xsp;
+    if (jj_3R_64()) return true;
+    }
+    }
+    return false;
+  }
+
+  private boolean jj_3_15() {
+    if (jj_3R_16()) return true;
+    return false;
+  }
+
+  private boolean jj_3_6() {
+    if (jj_3R_7()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_92() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_85() {
+    if (jj_scan_token(K_CHARACTER)) return true;
+    if (jj_scan_token(K_SET)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_72() {
+    if (jj_scan_token(R_WITH)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(161)) jj_scanpos = xsp;
+    if (jj_scan_token(K_TIME)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_86() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_6()) {
+    jj_scanpos = xsp;
+    if (jj_3R_88()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_32() {
+    if (jj_scan_token(K_TIMESTAMP)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_71()) jj_scanpos = xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_72()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_62() {
+    if (jj_scan_token(K_OUT)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_31() {
+    if (jj_scan_token(K_TIME)) return true;
+    return false;
+  }
+
+  private boolean jj_3_14() {
+    if (jj_scan_token(R_IN)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_13()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_70() {
+    if (jj_scan_token(K_YEAR)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_92()) jj_scanpos = xsp;
+    if (jj_scan_token(R_TO)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_58() {
+    if (jj_scan_token(K_CLOB)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_85()) jj_scanpos = xsp;
+    return false;
+  }
+
+  private boolean jj_3R_15() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_14()) {
+    jj_scanpos = xsp;
+    if (jj_3R_62()) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_91() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_84() {
+    if (jj_scan_token(O_OPENPAREN)) return true;
+    if (jj_scan_token(S_NUMBER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_16() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(128)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(129)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(130)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(131)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(132)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(133)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(134)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(135)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(136)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(137)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(138)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(139)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(140)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(141)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(142)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(143)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(144)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(145)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(146)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(147)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(148)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(149)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(150)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(151)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(152)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(153)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(154)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(155)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(156)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(157)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(158)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(159)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(160)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(161)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(162)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(163)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(164)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(165)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(166)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(167)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(168)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(169)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(170)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(171)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(172)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(173)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(174)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(175)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(176)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(177)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(178)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(179)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(180)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(181)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(182)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(183)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(184)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(185)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(186)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(187)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(188)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(189)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(190)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(191)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(192)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(193)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(194)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(195)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(196)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(197)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(198)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(199)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(200)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(201)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(202)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(203)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(204)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(205)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(206)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(207)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(208)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(209)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(210)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(211)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(212)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(213)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(214)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(215)) return true;
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    }
+    return false;
+  }
+
+  private boolean jj_3R_69() {
+    if (jj_scan_token(K_DAY)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_91()) jj_scanpos = xsp;
+    if (jj_scan_token(R_TO)) 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 f2c81e2..7e072ec 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 d1155ab..fe19e8e 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 e927d03..4100455 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,679 +10,679 @@
  *

  * 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_CHARSET = 51;

-  /** RegularExpression Id. */

-  int R_CHECK = 52;

-  /** RegularExpression Id. */

-  int R_CLUSTERS = 53;

-  /** RegularExpression Id. */

-  int R_CLUSTER = 54;

-  /** RegularExpression Id. */

-  int R_COLAUTH = 55;

-  /** RegularExpression Id. */

-  int R_COLUMNS = 56;

-  /** RegularExpression Id. */

-  int R_COMPRESS = 57;

-  /** RegularExpression Id. */

-  int R_CONNECT = 58;

-  /** RegularExpression Id. */

-  int R_CONSTRAINT = 59;

-  /** RegularExpression Id. */

-  int R_CRASH = 60;

-  /** RegularExpression Id. */

-  int R_CREATE = 61;

-  /** RegularExpression Id. */

-  int R_CURSOR = 62;

-  /** RegularExpression Id. */

-  int R_DECLARE = 63;

-  /** RegularExpression Id. */

-  int R_DEFAULT = 64;

-  /** RegularExpression Id. */

-  int R_DESC = 65;

-  /** RegularExpression Id. */

-  int R_DISTINCT = 66;

-  /** RegularExpression Id. */

-  int R_DROP = 67;

-  /** RegularExpression Id. */

-  int R_ELSE = 68;

-  /** RegularExpression Id. */

-  int R_END = 69;

-  /** RegularExpression Id. */

-  int R_EXCEPTION = 70;

-  /** RegularExpression Id. */

-  int R_EXCLUSIVE = 71;

-  /** RegularExpression Id. */

-  int R_FETCH = 72;

-  /** RegularExpression Id. */

-  int R_FOR = 73;

-  /** RegularExpression Id. */

-  int R_FROM = 74;

-  /** RegularExpression Id. */

-  int R_FUNCTION = 75;

-  /** RegularExpression Id. */

-  int R_GOTO = 76;

-  /** RegularExpression Id. */

-  int R_GRANT = 77;

-  /** RegularExpression Id. */

-  int R_GROUP = 78;

-  /** RegularExpression Id. */

-  int R_HAVING = 79;

-  /** RegularExpression Id. */

-  int R_IDENTIFIED = 80;

-  /** RegularExpression Id. */

-  int R_IF = 81;

-  /** RegularExpression Id. */

-  int R_IN = 82;

-  /** RegularExpression Id. */

-  int R_INDEX = 83;

-  /** RegularExpression Id. */

-  int R_INDEXES = 84;

-  /** RegularExpression Id. */

-  int R_INSERT = 85;

-  /** RegularExpression Id. */

-  int R_INTERSECT = 86;

-  /** RegularExpression Id. */

-  int R_INTO = 87;

-  /** RegularExpression Id. */

-  int R_IS = 88;

-  /** RegularExpression Id. */

-  int R_LIKE = 89;

-  /** RegularExpression Id. */

-  int R_LOCK = 90;

-  /** RegularExpression Id. */

-  int R_MINUS = 91;

-  /** RegularExpression Id. */

-  int R_MODE = 92;

-  /** RegularExpression Id. */

-  int R_NOCOMPRESS = 93;

-  /** RegularExpression Id. */

-  int R_NOT = 94;

-  /** RegularExpression Id. */

-  int R_NOWAIT = 95;

-  /** RegularExpression Id. */

-  int R_NULL = 96;

-  /** RegularExpression Id. */

-  int R_OF = 97;

-  /** RegularExpression Id. */

-  int R_ON = 98;

-  /** RegularExpression Id. */

-  int R_OPTION = 99;

-  /** RegularExpression Id. */

-  int R_OR = 100;

-  /** RegularExpression Id. */

-  int R_ORDER = 101;

-  /** RegularExpression Id. */

-  int R_OVERLAPS = 102;

-  /** RegularExpression Id. */

-  int R_PRIMARY = 103;

-  /** RegularExpression Id. */

-  int R_PROCEDURE = 104;

-  /** RegularExpression Id. */

-  int R_PUBLIC = 105;

-  /** RegularExpression Id. */

-  int R_RESOURCE = 106;

-  /** RegularExpression Id. */

-  int R_REVOKE = 107;

-  /** RegularExpression Id. */

-  int R_SELECT = 108;

-  /** RegularExpression Id. */

-  int R_SHARE = 109;

-  /** RegularExpression Id. */

-  int R_SIZE = 110;

-  /** RegularExpression Id. */

-  int R_SQL = 111;

-  /** RegularExpression Id. */

-  int R_START = 112;

-  /** RegularExpression Id. */

-  int R_SUBTYPE = 113;

-  /** RegularExpression Id. */

-  int R_TABAUTH = 114;

-  /** RegularExpression Id. */

-  int R_TABLE = 115;

-  /** RegularExpression Id. */

-  int R_THEN = 116;

-  /** RegularExpression Id. */

-  int R_TO = 117;

-  /** RegularExpression Id. */

-  int R_TYPE = 118;

-  /** RegularExpression Id. */

-  int R_UNION = 119;

-  /** RegularExpression Id. */

-  int R_UNIQUE = 120;

-  /** RegularExpression Id. */

-  int R_UPDATE = 121;

-  /** RegularExpression Id. */

-  int R_VALUES = 122;

-  /** RegularExpression Id. */

-  int R_VIEW = 123;

-  /** RegularExpression Id. */

-  int R_VIEWS = 124;

-  /** RegularExpression Id. */

-  int R_WHEN = 125;

-  /** RegularExpression Id. */

-  int R_WHERE = 126;

-  /** RegularExpression Id. */

-  int R_WITH = 127;

-  /** RegularExpression Id. */

-  int K_ARRAY = 128;

-  /** RegularExpression Id. */

-  int K_AUTHID = 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_CLOB = 139;

-  /** RegularExpression Id. */

-  int K_COMMIT = 140;

-  /** RegularExpression Id. */

-  int K_CONSTANT = 141;

-  /** RegularExpression Id. */

-  int K_CURRENT_USER = 142;

-  /** RegularExpression Id. */

-  int K_DATE = 143;

-  /** RegularExpression Id. */

-  int K_DAY = 144;

-  /** RegularExpression Id. */

-  int K_DEC = 145;

-  /** RegularExpression Id. */

-  int K_DECIMAL = 146;

-  /** RegularExpression Id. */

-  int K_DEFINER = 147;

-  /** RegularExpression Id. */

-  int K_DELETE = 148;

-  /** RegularExpression Id. */

-  int K_DETERMINISTIC = 149;

-  /** RegularExpression Id. */

-  int K_DOUBLE = 150;

-  /** RegularExpression Id. */

-  int K_ENABLE = 151;

-  /** RegularExpression Id. */

-  int K_FINAL = 152;

-  /** RegularExpression Id. */

-  int K_FLOAT = 153;

-  /** RegularExpression Id. */

-  int K_FORCE = 154;

-  /** RegularExpression Id. */

-  int K_GLOBAL = 155;

-  /** RegularExpression Id. */

-  int K_INSTANTIABLE = 156;

-  /** RegularExpression Id. */

-  int K_INT = 157;

-  /** RegularExpression Id. */

-  int K_INTEGER = 158;

-  /** RegularExpression Id. */

-  int K_INTERVAL = 159;

-  /** RegularExpression Id. */

-  int K_KEY = 160;

-  /** RegularExpression Id. */

-  int K_LOCAL = 161;

-  /** RegularExpression Id. */

-  int K_LONG = 162;

-  /** RegularExpression Id. */

-  int K_MLSLABEL = 163;

-  /** RegularExpression Id. */

-  int K_MONTH = 164;

-  /** RegularExpression Id. */

-  int K_NATIONAL = 165;

-  /** RegularExpression Id. */

-  int K_NATURAL = 166;

-  /** RegularExpression Id. */

-  int K_NCHAR = 167;

-  /** RegularExpression Id. */

-  int K_NCLOB = 168;

-  /** RegularExpression Id. */

-  int K_NOCOPY = 169;

-  /** RegularExpression Id. */

-  int K_NUMBER = 170;

-  /** RegularExpression Id. */

-  int K_NUMERIC = 171;

-  /** RegularExpression Id. */

-  int K_NVARCHAR2 = 172;

-  /** RegularExpression Id. */

-  int K_NVARCHAR = 173;

-  /** RegularExpression Id. */

-  int K_OBJECT = 174;

-  /** RegularExpression Id. */

-  int K_OID = 175;

-  /** RegularExpression Id. */

-  int K_ORGANIZATION = 176;

-  /** RegularExpression Id. */

-  int K_OUT = 177;

-  /** RegularExpression Id. */

-  int K_OVERFLOW = 178;

-  /** RegularExpression Id. */

-  int K_PACKAGE = 179;

-  /** RegularExpression Id. */

-  int K_PARALLEL_ENABLE = 180;

-  /** RegularExpression Id. */

-  int K_PIPELINED = 181;

-  /** RegularExpression Id. */

-  int K_PLS_INTEGER = 182;

-  /** RegularExpression Id. */

-  int K_POSITIVE = 183;

-  /** RegularExpression Id. */

-  int K_PRAGMA = 184;

-  /** RegularExpression Id. */

-  int K_PRECISION = 185;

-  /** RegularExpression Id. */

-  int K_PRESERVE = 186;

-  /** RegularExpression Id. */

-  int K_RANGE = 187;

-  /** RegularExpression Id. */

-  int K_RAW = 188;

-  /** RegularExpression Id. */

-  int K_REAL = 189;

-  /** RegularExpression Id. */

-  int K_RECORD = 190;

-  /** RegularExpression Id. */

-  int K_REF = 191;

-  /** RegularExpression Id. */

-  int K_REPLACE = 192;

-  /** RegularExpression Id. */

-  int K_RESULT_CACHE = 193;

-  /** RegularExpression Id. */

-  int K_RETURN = 194;

-  /** RegularExpression Id. */

-  int K_ROWID = 195;

-  /** RegularExpression Id. */

-  int K_ROWS = 196;

-  /** RegularExpression Id. */

-  int K_SECOND = 197;

-  /** RegularExpression Id. */

-  int K_SET = 198;

-  /** RegularExpression Id. */

-  int K_SIGNTYPE = 199;

-  /** RegularExpression Id. */

-  int K_SIMPLE_DOUBLE = 200;

-  /** RegularExpression Id. */

-  int K_SIMPLE_FLOAT = 201;

-  /** RegularExpression Id. */

-  int K_SIMPLE_INTEGER = 202;

-  /** RegularExpression Id. */

-  int K_SMALLINT = 203;

-  /** RegularExpression Id. */

-  int K_STRING = 204;

-  /** RegularExpression Id. */

-  int K_SYS_REFCURSOR = 205;

-  /** RegularExpression Id. */

-  int K_TEMPORARY = 206;

-  /** RegularExpression Id. */

-  int K_TIME = 207;

-  /** RegularExpression Id. */

-  int K_TIMESTAMP = 208;

-  /** RegularExpression Id. */

-  int K_UROWID = 209;

-  /** RegularExpression Id. */

-  int K_VARCHAR2 = 210;

-  /** RegularExpression Id. */

-  int K_VARCHAR = 211;

-  /** RegularExpression Id. */

-  int K_VARRAY = 212;

-  /** RegularExpression Id. */

-  int K_VARYING = 213;

-  /** RegularExpression Id. */

-  int K_YEAR = 214;

-  /** RegularExpression Id. */

-  int K_ZONE = 215;

-  /** RegularExpression Id. */

-  int S_IDENTIFIER = 216;

-  /** RegularExpression Id. */

-  int LETTER = 217;

-  /** RegularExpression Id. */

-  int SPECIAL_CHARS = 218;

-  /** RegularExpression Id. */

-  int S_BIND = 219;

-  /** RegularExpression Id. */

-  int S_CHAR_LITERAL = 220;

-  /** RegularExpression Id. */

-  int S_QUOTED_IDENTIFIER = 221;

-

-  /** 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\"",

-    "\"%CHARSET\"",

-    "\"CHECK\"",

-    "\"CLUSTERS\"",

-    "\"CLUSTER\"",

-    "\"COLAUTH\"",

-    "\"COLUMNS\"",

-    "\"COMPRESS\"",

-    "\"CONNECT\"",

-    "\"CONSTRAINT\"",

-    "\"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\"",

-    "\"NOT\"",

-    "\"NOWAIT\"",

-    "\"NULL\"",

-    "\"OF\"",

-    "\"ON\"",

-    "\"OPTION\"",

-    "\"OR\"",

-    "\"ORDER\"",

-    "\"OVERLAPS\"",

-    "\"PRIMARY\"",

-    "\"PROCEDURE\"",

-    "\"PUBLIC\"",

-    "\"RESOURCE\"",

-    "\"REVOLE\"",

-    "\"SELECT\"",

-    "\"SHARE\"",

-    "\"SIZE\"",

-    "\"SQL\"",

-    "\"START\"",

-    "\"SUBTYPE\"",

-    "\"TABAUTH\"",

-    "\"TABLE\"",

-    "\"THEN\"",

-    "\"TO\"",

-    "\"TYPE\"",

-    "\"UNION\"",

-    "\"UNIQUE\"",

-    "\"UPDATE\"",

-    "\"VALUES\"",

-    "\"VIEW\"",

-    "\"VIEWS\"",

-    "\"WHEN\"",

-    "\"WHERE\"",

-    "\"WITH\"",

-    "\"ARRAY\"",

-    "\"AUTHID\"",

-    "\"BFILE\"",

-    "\"BINARY_DOUBLE\"",

-    "\"BINARY_FLOAT\"",

-    "\"BINARY_INTEGER\"",

-    "\"BLOB\"",

-    "\"BOOLEAN\"",

-    "\"BYTE\"",

-    "\"CHAR\"",

-    "\"CHARACTER\"",

-    "\"CLOB\"",

-    "\"COMMIT\"",

-    "\"CONSTANT\"",

-    "\"CURRENT_USER\"",

-    "\"DATE\"",

-    "\"DAY\"",

-    "\"DEC\"",

-    "\"DECIMAL\"",

-    "\"DEFINER\"",

-    "\"DELETE\"",

-    "\"DETERMINISTIC\"",

-    "\"DOUBLE\"",

-    "\"ENABLE\"",

-    "\"FINAL\"",

-    "\"FLOAT\"",

-    "\"FORCE\"",

-    "\"GLOBAL\"",

-    "\"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\"",

-    "\"RANGE\"",

-    "\"RAW\"",

-    "\"REAL\"",

-    "\"RECORD\"",

-    "\"REF\"",

-    "\"REPLACE\"",

-    "\"RESULT_CACHE\"",

-    "\"RETURN\"",

-    "\"ROWID\"",

-    "\"ROWS\"",

-    "\"SECOND\"",

-    "\"SET\"",

-    "\"SIGNTYPE\"",

-    "\"SIMPLE_DOUBLE\"",

-    "\"SIMPLE_FLOAT\"",

-    "\"SIMPLE_INTEGER\"",

-    "\"SMALLINT\"",

-    "\"STRING\"",

-    "\"SYS_REFCURSOR\"",

-    "\"TEMPORARY\"",

-    "\"TIME\"",

-    "\"TIMESTAMP\"",

-    "\"UROWID\"",

-    "\"VARCHAR2\"",

-    "\"VARCHAR\"",

-    "\"VARRAY\"",

-    "\"VARYING\"",

-    "\"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_CHARSET = 51;
+  /** RegularExpression Id. */
+  int R_CHECK = 52;
+  /** RegularExpression Id. */
+  int R_CLUSTERS = 53;
+  /** RegularExpression Id. */
+  int R_CLUSTER = 54;
+  /** RegularExpression Id. */
+  int R_COLAUTH = 55;
+  /** RegularExpression Id. */
+  int R_COLUMNS = 56;
+  /** RegularExpression Id. */
+  int R_COMPRESS = 57;
+  /** RegularExpression Id. */
+  int R_CONNECT = 58;
+  /** RegularExpression Id. */
+  int R_CONSTRAINT = 59;
+  /** RegularExpression Id. */
+  int R_CRASH = 60;
+  /** RegularExpression Id. */
+  int R_CREATE = 61;
+  /** RegularExpression Id. */
+  int R_CURSOR = 62;
+  /** RegularExpression Id. */
+  int R_DECLARE = 63;
+  /** RegularExpression Id. */
+  int R_DEFAULT = 64;
+  /** RegularExpression Id. */
+  int R_DESC = 65;
+  /** RegularExpression Id. */
+  int R_DISTINCT = 66;
+  /** RegularExpression Id. */
+  int R_DROP = 67;
+  /** RegularExpression Id. */
+  int R_ELSE = 68;
+  /** RegularExpression Id. */
+  int R_END = 69;
+  /** RegularExpression Id. */
+  int R_EXCEPTION = 70;
+  /** RegularExpression Id. */
+  int R_EXCLUSIVE = 71;
+  /** RegularExpression Id. */
+  int R_FETCH = 72;
+  /** RegularExpression Id. */
+  int R_FOR = 73;
+  /** RegularExpression Id. */
+  int R_FROM = 74;
+  /** RegularExpression Id. */
+  int R_FUNCTION = 75;
+  /** RegularExpression Id. */
+  int R_GOTO = 76;
+  /** RegularExpression Id. */
+  int R_GRANT = 77;
+  /** RegularExpression Id. */
+  int R_GROUP = 78;
+  /** RegularExpression Id. */
+  int R_HAVING = 79;
+  /** RegularExpression Id. */
+  int R_IDENTIFIED = 80;
+  /** RegularExpression Id. */
+  int R_IF = 81;
+  /** RegularExpression Id. */
+  int R_IN = 82;
+  /** RegularExpression Id. */
+  int R_INDEX = 83;
+  /** RegularExpression Id. */
+  int R_INDEXES = 84;
+  /** RegularExpression Id. */
+  int R_INSERT = 85;
+  /** RegularExpression Id. */
+  int R_INTERSECT = 86;
+  /** RegularExpression Id. */
+  int R_INTO = 87;
+  /** RegularExpression Id. */
+  int R_IS = 88;
+  /** RegularExpression Id. */
+  int R_LIKE = 89;
+  /** RegularExpression Id. */
+  int R_LOCK = 90;
+  /** RegularExpression Id. */
+  int R_MINUS = 91;
+  /** RegularExpression Id. */
+  int R_MODE = 92;
+  /** RegularExpression Id. */
+  int R_NOCOMPRESS = 93;
+  /** RegularExpression Id. */
+  int R_NOT = 94;
+  /** RegularExpression Id. */
+  int R_NOWAIT = 95;
+  /** RegularExpression Id. */
+  int R_NULL = 96;
+  /** RegularExpression Id. */
+  int R_OF = 97;
+  /** RegularExpression Id. */
+  int R_ON = 98;
+  /** RegularExpression Id. */
+  int R_OPTION = 99;
+  /** RegularExpression Id. */
+  int R_OR = 100;
+  /** RegularExpression Id. */
+  int R_ORDER = 101;
+  /** RegularExpression Id. */
+  int R_OVERLAPS = 102;
+  /** RegularExpression Id. */
+  int R_PRIMARY = 103;
+  /** RegularExpression Id. */
+  int R_PROCEDURE = 104;
+  /** RegularExpression Id. */
+  int R_PUBLIC = 105;
+  /** RegularExpression Id. */
+  int R_RESOURCE = 106;
+  /** RegularExpression Id. */
+  int R_REVOKE = 107;
+  /** RegularExpression Id. */
+  int R_SELECT = 108;
+  /** RegularExpression Id. */
+  int R_SHARE = 109;
+  /** RegularExpression Id. */
+  int R_SIZE = 110;
+  /** RegularExpression Id. */
+  int R_SQL = 111;
+  /** RegularExpression Id. */
+  int R_START = 112;
+  /** RegularExpression Id. */
+  int R_SUBTYPE = 113;
+  /** RegularExpression Id. */
+  int R_TABAUTH = 114;
+  /** RegularExpression Id. */
+  int R_TABLE = 115;
+  /** RegularExpression Id. */
+  int R_THEN = 116;
+  /** RegularExpression Id. */
+  int R_TO = 117;
+  /** RegularExpression Id. */
+  int R_TYPE = 118;
+  /** RegularExpression Id. */
+  int R_UNION = 119;
+  /** RegularExpression Id. */
+  int R_UNIQUE = 120;
+  /** RegularExpression Id. */
+  int R_UPDATE = 121;
+  /** RegularExpression Id. */
+  int R_VALUES = 122;
+  /** RegularExpression Id. */
+  int R_VIEW = 123;
+  /** RegularExpression Id. */
+  int R_VIEWS = 124;
+  /** RegularExpression Id. */
+  int R_WHEN = 125;
+  /** RegularExpression Id. */
+  int R_WHERE = 126;
+  /** RegularExpression Id. */
+  int R_WITH = 127;
+  /** RegularExpression Id. */
+  int K_ARRAY = 128;
+  /** RegularExpression Id. */
+  int K_AUTHID = 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_CLOB = 139;
+  /** RegularExpression Id. */
+  int K_COMMIT = 140;
+  /** RegularExpression Id. */
+  int K_CONSTANT = 141;
+  /** RegularExpression Id. */
+  int K_CURRENT_USER = 142;
+  /** RegularExpression Id. */
+  int K_DATE = 143;
+  /** RegularExpression Id. */
+  int K_DAY = 144;
+  /** RegularExpression Id. */
+  int K_DEC = 145;
+  /** RegularExpression Id. */
+  int K_DECIMAL = 146;
+  /** RegularExpression Id. */
+  int K_DEFINER = 147;
+  /** RegularExpression Id. */
+  int K_DELETE = 148;
+  /** RegularExpression Id. */
+  int K_DETERMINISTIC = 149;
+  /** RegularExpression Id. */
+  int K_DOUBLE = 150;
+  /** RegularExpression Id. */
+  int K_ENABLE = 151;
+  /** RegularExpression Id. */
+  int K_FINAL = 152;
+  /** RegularExpression Id. */
+  int K_FLOAT = 153;
+  /** RegularExpression Id. */
+  int K_FORCE = 154;
+  /** RegularExpression Id. */
+  int K_GLOBAL = 155;
+  /** RegularExpression Id. */
+  int K_INSTANTIABLE = 156;
+  /** RegularExpression Id. */
+  int K_INT = 157;
+  /** RegularExpression Id. */
+  int K_INTEGER = 158;
+  /** RegularExpression Id. */
+  int K_INTERVAL = 159;
+  /** RegularExpression Id. */
+  int K_KEY = 160;
+  /** RegularExpression Id. */
+  int K_LOCAL = 161;
+  /** RegularExpression Id. */
+  int K_LONG = 162;
+  /** RegularExpression Id. */
+  int K_MLSLABEL = 163;
+  /** RegularExpression Id. */
+  int K_MONTH = 164;
+  /** RegularExpression Id. */
+  int K_NATIONAL = 165;
+  /** RegularExpression Id. */
+  int K_NATURAL = 166;
+  /** RegularExpression Id. */
+  int K_NCHAR = 167;
+  /** RegularExpression Id. */
+  int K_NCLOB = 168;
+  /** RegularExpression Id. */
+  int K_NOCOPY = 169;
+  /** RegularExpression Id. */
+  int K_NUMBER = 170;
+  /** RegularExpression Id. */
+  int K_NUMERIC = 171;
+  /** RegularExpression Id. */
+  int K_NVARCHAR2 = 172;
+  /** RegularExpression Id. */
+  int K_NVARCHAR = 173;
+  /** RegularExpression Id. */
+  int K_OBJECT = 174;
+  /** RegularExpression Id. */
+  int K_OID = 175;
+  /** RegularExpression Id. */
+  int K_ORGANIZATION = 176;
+  /** RegularExpression Id. */
+  int K_OUT = 177;
+  /** RegularExpression Id. */
+  int K_OVERFLOW = 178;
+  /** RegularExpression Id. */
+  int K_PACKAGE = 179;
+  /** RegularExpression Id. */
+  int K_PARALLEL_ENABLE = 180;
+  /** RegularExpression Id. */
+  int K_PIPELINED = 181;
+  /** RegularExpression Id. */
+  int K_PLS_INTEGER = 182;
+  /** RegularExpression Id. */
+  int K_POSITIVE = 183;
+  /** RegularExpression Id. */
+  int K_PRAGMA = 184;
+  /** RegularExpression Id. */
+  int K_PRECISION = 185;
+  /** RegularExpression Id. */
+  int K_PRESERVE = 186;
+  /** RegularExpression Id. */
+  int K_RANGE = 187;
+  /** RegularExpression Id. */
+  int K_RAW = 188;
+  /** RegularExpression Id. */
+  int K_REAL = 189;
+  /** RegularExpression Id. */
+  int K_RECORD = 190;
+  /** RegularExpression Id. */
+  int K_REF = 191;
+  /** RegularExpression Id. */
+  int K_REPLACE = 192;
+  /** RegularExpression Id. */
+  int K_RESULT_CACHE = 193;
+  /** RegularExpression Id. */
+  int K_RETURN = 194;
+  /** RegularExpression Id. */
+  int K_ROWID = 195;
+  /** RegularExpression Id. */
+  int K_ROWS = 196;
+  /** RegularExpression Id. */
+  int K_SECOND = 197;
+  /** RegularExpression Id. */
+  int K_SET = 198;
+  /** RegularExpression Id. */
+  int K_SIGNTYPE = 199;
+  /** RegularExpression Id. */
+  int K_SIMPLE_DOUBLE = 200;
+  /** RegularExpression Id. */
+  int K_SIMPLE_FLOAT = 201;
+  /** RegularExpression Id. */
+  int K_SIMPLE_INTEGER = 202;
+  /** RegularExpression Id. */
+  int K_SMALLINT = 203;
+  /** RegularExpression Id. */
+  int K_STRING = 204;
+  /** RegularExpression Id. */
+  int K_SYS_REFCURSOR = 205;
+  /** RegularExpression Id. */
+  int K_TEMPORARY = 206;
+  /** RegularExpression Id. */
+  int K_TIME = 207;
+  /** RegularExpression Id. */
+  int K_TIMESTAMP = 208;
+  /** RegularExpression Id. */
+  int K_UROWID = 209;
+  /** RegularExpression Id. */
+  int K_VARCHAR2 = 210;
+  /** RegularExpression Id. */
+  int K_VARCHAR = 211;
+  /** RegularExpression Id. */
+  int K_VARRAY = 212;
+  /** RegularExpression Id. */
+  int K_VARYING = 213;
+  /** RegularExpression Id. */
+  int K_YEAR = 214;
+  /** RegularExpression Id. */
+  int K_ZONE = 215;
+  /** RegularExpression Id. */
+  int S_IDENTIFIER = 216;
+  /** RegularExpression Id. */
+  int LETTER = 217;
+  /** RegularExpression Id. */
+  int SPECIAL_CHARS = 218;
+  /** RegularExpression Id. */
+  int S_BIND = 219;
+  /** RegularExpression Id. */
+  int S_CHAR_LITERAL = 220;
+  /** RegularExpression Id. */
+  int S_QUOTED_IDENTIFIER = 221;
+
+  /** 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\"",
+    "\"%CHARSET\"",
+    "\"CHECK\"",
+    "\"CLUSTERS\"",
+    "\"CLUSTER\"",
+    "\"COLAUTH\"",
+    "\"COLUMNS\"",
+    "\"COMPRESS\"",
+    "\"CONNECT\"",
+    "\"CONSTRAINT\"",
+    "\"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\"",
+    "\"NOT\"",
+    "\"NOWAIT\"",
+    "\"NULL\"",
+    "\"OF\"",
+    "\"ON\"",
+    "\"OPTION\"",
+    "\"OR\"",
+    "\"ORDER\"",
+    "\"OVERLAPS\"",
+    "\"PRIMARY\"",
+    "\"PROCEDURE\"",
+    "\"PUBLIC\"",
+    "\"RESOURCE\"",
+    "\"REVOLE\"",
+    "\"SELECT\"",
+    "\"SHARE\"",
+    "\"SIZE\"",
+    "\"SQL\"",
+    "\"START\"",
+    "\"SUBTYPE\"",
+    "\"TABAUTH\"",
+    "\"TABLE\"",
+    "\"THEN\"",
+    "\"TO\"",
+    "\"TYPE\"",
+    "\"UNION\"",
+    "\"UNIQUE\"",
+    "\"UPDATE\"",
+    "\"VALUES\"",
+    "\"VIEW\"",
+    "\"VIEWS\"",
+    "\"WHEN\"",
+    "\"WHERE\"",
+    "\"WITH\"",
+    "\"ARRAY\"",
+    "\"AUTHID\"",
+    "\"BFILE\"",
+    "\"BINARY_DOUBLE\"",
+    "\"BINARY_FLOAT\"",
+    "\"BINARY_INTEGER\"",
+    "\"BLOB\"",
+    "\"BOOLEAN\"",
+    "\"BYTE\"",
+    "\"CHAR\"",
+    "\"CHARACTER\"",
+    "\"CLOB\"",
+    "\"COMMIT\"",
+    "\"CONSTANT\"",
+    "\"CURRENT_USER\"",
+    "\"DATE\"",
+    "\"DAY\"",
+    "\"DEC\"",
+    "\"DECIMAL\"",
+    "\"DEFINER\"",
+    "\"DELETE\"",
+    "\"DETERMINISTIC\"",
+    "\"DOUBLE\"",
+    "\"ENABLE\"",
+    "\"FINAL\"",
+    "\"FLOAT\"",
+    "\"FORCE\"",
+    "\"GLOBAL\"",
+    "\"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\"",
+    "\"RANGE\"",
+    "\"RAW\"",
+    "\"REAL\"",
+    "\"RECORD\"",
+    "\"REF\"",
+    "\"REPLACE\"",
+    "\"RESULT_CACHE\"",
+    "\"RETURN\"",
+    "\"ROWID\"",
+    "\"ROWS\"",
+    "\"SECOND\"",
+    "\"SET\"",
+    "\"SIGNTYPE\"",
+    "\"SIMPLE_DOUBLE\"",
+    "\"SIMPLE_FLOAT\"",
+    "\"SIMPLE_INTEGER\"",
+    "\"SMALLINT\"",
+    "\"STRING\"",
+    "\"SYS_REFCURSOR\"",
+    "\"TEMPORARY\"",
+    "\"TIME\"",
+    "\"TIMESTAMP\"",
+    "\"UROWID\"",
+    "\"VARCHAR2\"",
+    "\"VARCHAR\"",
+    "\"VARRAY\"",
+    "\"VARYING\"",
+    "\"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 d172194..cb1ceaf 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,3821 +10,3821 @@
  *

  * 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(0x8060000000000L, 0x0L, 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, 0x0L, 0x3L, 0x0L);

-      case 66:

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

-      case 67:

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

-      case 68:

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

-      case 69:

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

-      case 70:

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

-      case 71:

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

-      case 72:

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

-      case 73:

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

-      case 75:

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

-      case 76:

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

-      case 77:

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

-      case 78:

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

-      case 79:

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

-      case 80:

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

-      case 82:

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

-      case 83:

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

-      case 84:

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

-      case 85:

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

-      case 86:

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

-      case 87:

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

-      case 89:

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

-      case 90:

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

-      case 97:

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

-      case 98:

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

-      case 99:

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

-      case 100:

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

-      case 101:

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

-      case 102:

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

-      case 103:

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

-      case 104:

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

-      case 105:

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

-      case 107:

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

-      case 108:

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

-      case 109:

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

-      case 110:

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

-      case 111:

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

-      case 112:

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

-      case 114:

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

-      case 115:

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

-      case 116:

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

-      case 117:

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

-      case 118:

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

-      case 119:

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

-      case 121:

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

-      case 122:

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

-      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, 0x40c000000008000L, active2, 0x1818006000018000L, active3, 0x3c0000L);

-      case 66:

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

-      case 67:

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

-      case 68:

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

-      case 69:

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

-      case 70:

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

-         {

-            jjmatchedKind = 81;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 97;

-            jjmatchedPos = 1;

-         }

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

-      case 72:

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

-      case 73:

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

-      case 76:

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

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 82;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 98;

-            jjmatchedPos = 1;

-         }

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

-      case 79:

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

-         {

-            jjmatchedKind = 117;

-            jjmatchedPos = 1;

-         }

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

-      case 80:

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

-      case 81:

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

-      case 82:

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

-         {

-            jjmatchedKind = 100;

-            jjmatchedPos = 1;

-         }

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

-      case 83:

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

-         {

-            jjmatchedKind = 44;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 88;

-            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, 0x1000000000000L, active2, 0L, active3, 0x1000L);

-      case 85:

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

-      case 86:

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

-      case 88:

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

-      case 89:

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

-         {

-            jjmatchedKind = 49;

-            jjmatchedPos = 1;

-         }

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

-      case 97:

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

-      case 98:

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

-      case 99:

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

-      case 100:

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

-      case 101:

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

-      case 102:

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

-         {

-            jjmatchedKind = 81;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 97;

-            jjmatchedPos = 1;

-         }

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

-      case 104:

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

-      case 105:

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

-      case 108:

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

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 82;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 98;

-            jjmatchedPos = 1;

-         }

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

-      case 111:

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

-         {

-            jjmatchedKind = 117;

-            jjmatchedPos = 1;

-         }

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

-      case 112:

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

-      case 113:

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

-      case 114:

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

-         {

-            jjmatchedKind = 100;

-            jjmatchedPos = 1;

-         }

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

-      case 115:

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

-         {

-            jjmatchedKind = 44;

-            jjmatchedPos = 1;

-         }

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

-         {

-            jjmatchedKind = 88;

-            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, 0x1000000000000L, active2, 0L, active3, 0x1000L);

-      case 117:

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

-      case 118:

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

-      case 120:

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

-      case 121:

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

-         {

-            jjmatchedKind = 49;

-            jjmatchedPos = 1;

-         }

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

-      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, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x2100300000800600L, active3, 0x400800L);

-      case 66:

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

-      case 67:

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

-         {

-            jjmatchedKind = 45;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 145;

-            jjmatchedPos = 2;

-         }

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

-      case 68:

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

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 69;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 175;

-            jjmatchedPos = 2;

-         }

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

-      case 69:

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

-      case 70:

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

-         {

-            jjmatchedKind = 191;

-            jjmatchedPos = 2;

-         }

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

-      case 71:

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

-      case 72:

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

-      case 73:

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

-      case 74:

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

-      case 75:

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

-      case 76:

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

-         {

-            jjmatchedKind = 39;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 111;

-            jjmatchedPos = 2;

-         }

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

-      case 77:

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

-      case 78:

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

-      case 79:

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

-      case 80:

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

-      case 82:

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

-         {

-            jjmatchedKind = 73;

-            jjmatchedPos = 2;

-         }

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

-      case 83:

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

-      case 84:

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

-         {

-            jjmatchedKind = 94;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 157;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 177;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 198;

-            jjmatchedPos = 2;

-         }

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

-      case 85:

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

-      case 86:

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

-      case 87:

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

-         {

-            jjmatchedKind = 188;

-            jjmatchedPos = 2;

-         }

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

-      case 89:

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

-         {

-            jjmatchedKind = 144;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 160;

-            jjmatchedPos = 2;

-         }

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

-      case 90:

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

-      case 97:

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

-      case 98:

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

-      case 99:

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

-         {

-            jjmatchedKind = 45;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 145;

-            jjmatchedPos = 2;

-         }

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

-      case 100:

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

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 69;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 175;

-            jjmatchedPos = 2;

-         }

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

-      case 101:

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

-      case 102:

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

-         {

-            jjmatchedKind = 191;

-            jjmatchedPos = 2;

-         }

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

-      case 103:

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

-      case 104:

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

-      case 105:

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

-      case 106:

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

-      case 107:

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

-      case 108:

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

-         {

-            jjmatchedKind = 39;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 111;

-            jjmatchedPos = 2;

-         }

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

-      case 109:

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

-      case 110:

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

-      case 111:

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

-      case 112:

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

-      case 114:

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

-         {

-            jjmatchedKind = 73;

-            jjmatchedPos = 2;

-         }

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

-      case 115:

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

-      case 116:

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

-         {

-            jjmatchedKind = 94;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 157;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 177;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 198;

-            jjmatchedPos = 2;

-         }

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

-      case 117:

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

-      case 118:

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

-      case 119:

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

-         {

-            jjmatchedKind = 188;

-            jjmatchedPos = 2;

-         }

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

-      case 121:

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

-         {

-            jjmatchedKind = 144;

-            jjmatchedPos = 2;

-         }

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

-         {

-            jjmatchedKind = 160;

-            jjmatchedPos = 2;

-         }

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

-      case 122:

-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x400000000000L, 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 65:

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

-      case 66:

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

-         {

-            jjmatchedKind = 134;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 139;

-            jjmatchedPos = 3;

-         }

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

-      case 67:

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

-         {

-            jjmatchedKind = 65;

-            jjmatchedPos = 3;

-         }

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

-      case 69:

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

-         {

-            jjmatchedKind = 50;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 68;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 89;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 92;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 110;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 118;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 136;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 143;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 207;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 215;

-            jjmatchedPos = 3;

-         }

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

-      case 71:

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

-         {

-            jjmatchedKind = 162;

-            jjmatchedPos = 3;

-         }

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

-      case 72:

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

-         {

-            jjmatchedKind = 127;

-            jjmatchedPos = 3;

-         }

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

-      case 73:

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

-      case 75:

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

-         {

-            jjmatchedKind = 90;

-            jjmatchedPos = 3;

-         }

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

-      case 76:

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

-         {

-            jjmatchedKind = 96;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 189;

-            jjmatchedPos = 3;

-         }

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

-      case 77:

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

-         {

-            jjmatchedKind = 74;

-            jjmatchedPos = 3;

-         }

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

-      case 78:

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

-         {

-            jjmatchedKind = 116;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 125;

-            jjmatchedPos = 3;

-         }

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

-      case 79:

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

-         {

-            jjmatchedKind = 76;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 87;

-            jjmatchedPos = 3;

-         }

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

-      case 80:

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

-         {

-            jjmatchedKind = 67;

-            jjmatchedPos = 3;

-         }

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

-      case 81:

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

-      case 82:

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

-         {

-            jjmatchedKind = 137;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 214;

-            jjmatchedPos = 3;

-         }

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

-      case 83:

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

-         {

-            jjmatchedKind = 196;

-            jjmatchedPos = 3;

-         }

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

-      case 84:

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

-      case 85:

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

-      case 87:

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

-         {

-            jjmatchedKind = 123;

-            jjmatchedPos = 3;

-         }

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

-      case 89:

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

-      case 95:

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

-      case 97:

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

-      case 98:

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

-         {

-            jjmatchedKind = 134;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 139;

-            jjmatchedPos = 3;

-         }

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

-      case 99:

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

-         {

-            jjmatchedKind = 65;

-            jjmatchedPos = 3;

-         }

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

-      case 101:

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

-         {

-            jjmatchedKind = 50;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 68;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 89;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 92;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 110;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 118;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 136;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 143;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 207;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 215;

-            jjmatchedPos = 3;

-         }

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

-      case 103:

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

-         {

-            jjmatchedKind = 162;

-            jjmatchedPos = 3;

-         }

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

-      case 104:

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

-         {

-            jjmatchedKind = 127;

-            jjmatchedPos = 3;

-         }

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

-      case 105:

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

-      case 107:

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

-         {

-            jjmatchedKind = 90;

-            jjmatchedPos = 3;

-         }

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

-      case 108:

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

-         {

-            jjmatchedKind = 96;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 189;

-            jjmatchedPos = 3;

-         }

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

-      case 109:

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

-         {

-            jjmatchedKind = 74;

-            jjmatchedPos = 3;

-         }

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

-      case 110:

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

-         {

-            jjmatchedKind = 116;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 125;

-            jjmatchedPos = 3;

-         }

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

-      case 111:

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

-         {

-            jjmatchedKind = 76;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 87;

-            jjmatchedPos = 3;

-         }

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

-      case 112:

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

-         {

-            jjmatchedKind = 67;

-            jjmatchedPos = 3;

-         }

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

-      case 113:

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

-      case 114:

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

-         {

-            jjmatchedKind = 137;

-            jjmatchedPos = 3;

-         }

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

-         {

-            jjmatchedKind = 214;

-            jjmatchedPos = 3;

-         }

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

-      case 115:

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

-         {

-            jjmatchedKind = 196;

-            jjmatchedPos = 3;

-         }

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

-      case 116:

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

-      case 117:

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

-      case 119:

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

-         {

-            jjmatchedKind = 123;

-            jjmatchedPos = 3;

-         }

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

-      case 121:

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

-      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 65:

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

-      case 66:

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

-         {

-            jjmatchedKind = 168;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 67:

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

-      case 68:

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

-         {

-            jjmatchedKind = 195;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 69:

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

-         {

-            jjmatchedKind = 42;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 109;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 115;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 126;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 130;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 154;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 187;

-            jjmatchedPos = 4;

-         }

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

-      case 70:

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

-      case 71:

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

-      case 72:

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

-         {

-            jjmatchedKind = 60;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 72;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 164;

-            jjmatchedPos = 4;

-         }

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

-      case 73:

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

-      case 75:

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

-         {

-            jjmatchedKind = 52;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 76:

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

-         {

-            jjmatchedKind = 152;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 161;

-            jjmatchedPos = 4;

-         }

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

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 47;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 119;

-            jjmatchedPos = 4;

-         }

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

-      case 79:

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

-      case 80:

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

-         {

-            jjmatchedKind = 78;

-            jjmatchedPos = 4;

-         }

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

-      case 82:

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

-         {

-            jjmatchedKind = 40;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 101;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 167;

-            jjmatchedPos = 4;

-         }

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

-      case 83:

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

-         {

-            jjmatchedKind = 91;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 124;

-            jjmatchedPos = 4;

-         }

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

-      case 84:

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

-         {

-            jjmatchedKind = 77;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 112;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 153;

-            jjmatchedPos = 4;

-         }

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

-      case 85:

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

-      case 88:

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

-         {

-            jjmatchedKind = 83;

-            jjmatchedPos = 4;

-         }

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

-      case 89:

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

-         {

-            jjmatchedKind = 128;

-            jjmatchedPos = 4;

-         }

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

-      case 97:

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

-      case 98:

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

-         {

-            jjmatchedKind = 168;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 99:

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

-      case 100:

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

-         {

-            jjmatchedKind = 195;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 101:

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

-         {

-            jjmatchedKind = 42;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 109;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 115;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 126;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 130;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 154;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 187;

-            jjmatchedPos = 4;

-         }

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

-      case 102:

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

-      case 103:

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

-      case 104:

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

-         {

-            jjmatchedKind = 60;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 72;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 164;

-            jjmatchedPos = 4;

-         }

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

-      case 105:

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

-      case 107:

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

-         {

-            jjmatchedKind = 52;

-            jjmatchedPos = 4;

-         }

-         break;

-      case 108:

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

-         {

-            jjmatchedKind = 152;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 161;

-            jjmatchedPos = 4;

-         }

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

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 47;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 119;

-            jjmatchedPos = 4;

-         }

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

-      case 111:

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

-      case 112:

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

-         {

-            jjmatchedKind = 78;

-            jjmatchedPos = 4;

-         }

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

-      case 114:

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

-         {

-            jjmatchedKind = 40;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 101;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 167;

-            jjmatchedPos = 4;

-         }

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

-      case 115:

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

-         {

-            jjmatchedKind = 91;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 124;

-            jjmatchedPos = 4;

-         }

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

-      case 116:

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

-         {

-            jjmatchedKind = 77;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 112;

-            jjmatchedPos = 4;

-         }

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

-         {

-            jjmatchedKind = 153;

-            jjmatchedPos = 4;

-         }

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

-      case 117:

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

-      case 120:

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

-         {

-            jjmatchedKind = 83;

-            jjmatchedPos = 4;

-         }

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

-      case 121:

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

-         {

-            jjmatchedKind = 128;

-            jjmatchedPos = 4;

-         }

-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000000000000L, 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 & 0x100000000000000L) != 0L)

-         {

-            jjmatchedKind = 184;

-            jjmatchedPos = 5;

-         }

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

-      case 66:

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

-      case 67:

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

-         {

-            jjmatchedKind = 105;

-            jjmatchedPos = 5;

-         }

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

-      case 68:

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

-         {

-            jjmatchedKind = 129;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 190;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 197;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 209;

-            jjmatchedPos = 5;

-         }

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

-      case 69:

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

-         {

-            jjmatchedKind = 61;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 107;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 120;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 121;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 148;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 150;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 151;

-            jjmatchedPos = 5;

-         }

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

-      case 71:

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

-         {

-            jjmatchedKind = 79;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 204;

-            jjmatchedPos = 5;

-         }

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

-      case 72:

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

-      case 73:

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

-      case 76:

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

-         {

-            jjmatchedKind = 155;

-            jjmatchedPos = 5;

-         }

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

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 99;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 194;

-            jjmatchedPos = 5;

-         }

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

-      case 80:

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

-      case 82:

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

-         {

-            jjmatchedKind = 62;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 170;

-            jjmatchedPos = 5;

-         }

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

-      case 83:

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

-         {

-            jjmatchedKind = 122;

-            jjmatchedPos = 5;

-         }

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

-      case 84:

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

-         {

-            jjmatchedKind = 85;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 95;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 108;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 140;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 174;

-            jjmatchedPos = 5;

-         }

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

-      case 86:

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

-      case 89:

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

-         {

-            jjmatchedKind = 169;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 212;

-            jjmatchedPos = 5;

-         }

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

-      case 97:

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

-         {

-            jjmatchedKind = 184;

-            jjmatchedPos = 5;

-         }

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

-      case 98:

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

-      case 99:

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

-         {

-            jjmatchedKind = 105;

-            jjmatchedPos = 5;

-         }

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

-      case 100:

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

-         {

-            jjmatchedKind = 129;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 190;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 197;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 209;

-            jjmatchedPos = 5;

-         }

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

-      case 101:

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

-         {

-            jjmatchedKind = 61;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 107;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 120;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 121;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 148;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 150;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 151;

-            jjmatchedPos = 5;

-         }

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

-      case 103:

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

-         {

-            jjmatchedKind = 79;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 204;

-            jjmatchedPos = 5;

-         }

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

-      case 104:

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

-      case 105:

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

-      case 108:

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

-         {

-            jjmatchedKind = 155;

-            jjmatchedPos = 5;

-         }

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

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 99;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 194;

-            jjmatchedPos = 5;

-         }

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

-      case 112:

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

-      case 114:

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

-         {

-            jjmatchedKind = 62;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 170;

-            jjmatchedPos = 5;

-         }

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

-      case 115:

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

-         {

-            jjmatchedKind = 122;

-            jjmatchedPos = 5;

-         }

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

-      case 116:

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

-         {

-            jjmatchedKind = 85;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 95;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 108;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 140;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 174;

-            jjmatchedPos = 5;

-         }

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

-      case 118:

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

-      case 121:

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

-         {

-            jjmatchedKind = 169;

-            jjmatchedPos = 5;

-         }

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

-         {

-            jjmatchedKind = 212;

-            jjmatchedPos = 5;

-         }

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

-      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, 0x800000000000000L, active1, 0L, active2, 0x302080000000L, active3, 0x14000L);

-      case 67:

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

-         {

-            jjmatchedKind = 171;

-            jjmatchedPos = 6;

-         }

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

-      case 69:

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

-         {

-            jjmatchedKind = 63;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 113;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 179;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 192;

-            jjmatchedPos = 6;

-         }

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

-      case 70:

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

-      case 71:

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

-         {

-            jjmatchedKind = 213;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 72:

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

-         {

-            jjmatchedKind = 55;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 114;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 73:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x200000000200000L, active3, 0L);

-      case 76:

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

-         {

-            jjmatchedKind = 146;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 166;

-            jjmatchedPos = 6;

-         }

-         break;

-      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, 0x20000000002000L, active3, 0x800L);

-      case 79:

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

-      case 80:

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x80L);

-      case 82:

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

-         {

-            jjmatchedKind = 54;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 147;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 158;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 211;

-            jjmatchedPos = 6;

-         }

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x40000L);

-      case 83:

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

-         {

-            jjmatchedKind = 56;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 84;

-            jjmatchedPos = 6;

-         }

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

-      case 84:

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

-         {

-            jjmatchedKind = 58;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 64;

-            jjmatchedPos = 6;

-         }

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

-      case 85:

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

-      case 86:

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

-      case 89:

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

-         {

-            jjmatchedKind = 103;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 90:

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

-      case 95:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x38L, active3, 0x702L);

-      case 97:

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

-      case 99:

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

-         {

-            jjmatchedKind = 171;

-            jjmatchedPos = 6;

-         }

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

-      case 101:

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

-         {

-            jjmatchedKind = 63;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 113;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 179;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 192;

-            jjmatchedPos = 6;

-         }

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

-      case 102:

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

-      case 103:

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

-         {

-            jjmatchedKind = 213;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 104:

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

-         {

-            jjmatchedKind = 55;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 114;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 105:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x200000000200000L, active3, 0L);

-      case 108:

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

-         {

-            jjmatchedKind = 146;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 166;

-            jjmatchedPos = 6;

-         }

-         break;

-      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, 0x20000000002000L, active3, 0x800L);

-      case 111:

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

-      case 112:

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x80L);

-      case 114:

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

-         {

-            jjmatchedKind = 54;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 147;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 158;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 211;

-            jjmatchedPos = 6;

-         }

-         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x40000L);

-      case 115:

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

-         {

-            jjmatchedKind = 56;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 84;

-            jjmatchedPos = 6;

-         }

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

-      case 116:

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

-         {

-            jjmatchedKind = 58;

-            jjmatchedPos = 6;

-         }

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

-         {

-            jjmatchedKind = 64;

-            jjmatchedPos = 6;

-         }

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

-      case 117:

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

-      case 118:

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

-      case 121:

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

-         {

-            jjmatchedKind = 103;

-            jjmatchedPos = 6;

-         }

-         break;

-      case 122:

-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, 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 & 0x40000L) != 0L)

-         {

-            jjmatchedKind = 210;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 65:

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

-      case 67:

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

-      case 68:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

-      case 69:

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

-         {

-            jjmatchedKind = 41;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 106;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 183;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 186;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 199;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0x60000000000400L, active3, 0L);

-      case 70:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

-      case 73:

-         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x10000020L, active3, 0x400L);

-      case 76:

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

-         {

-            jjmatchedKind = 159;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 163;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 165;

-            jjmatchedPos = 7;

-         }

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

-      case 77:

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

-      case 78:

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

-         {

-            jjmatchedKind = 75;

-            jjmatchedPos = 7;

-         }

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

-      case 79:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x200000000000000L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 173;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x100000000000L, active3, 0x4000L);

-      case 83:

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

-         {

-            jjmatchedKind = 53;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 57;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 102;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 84:

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

-         {

-            jjmatchedKind = 51;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 66;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 141;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 203;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 86:

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

-      case 87:

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

-         {

-            jjmatchedKind = 178;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 95:

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

-      case 97:

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

-      case 99:

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

-      case 100:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

-      case 101:

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

-         {

-            jjmatchedKind = 41;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 106;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 183;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 186;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 199;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0x60000000000400L, active3, 0L);

-      case 102:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

-      case 105:

-         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x10000020L, active3, 0x400L);

-      case 108:

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

-         {

-            jjmatchedKind = 159;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 163;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 165;

-            jjmatchedPos = 7;

-         }

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

-      case 109:

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

-      case 110:

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

-         {

-            jjmatchedKind = 75;

-            jjmatchedPos = 7;

-         }

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

-      case 111:

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x200000000000000L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 173;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x100000000000L, active3, 0x4000L);

-      case 115:

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

-         {

-            jjmatchedKind = 53;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 57;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 102;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 116:

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

-         {

-            jjmatchedKind = 51;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 66;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 141;

-            jjmatchedPos = 7;

-         }

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

-         {

-            jjmatchedKind = 203;

-            jjmatchedPos = 7;

-         }

-         break;

-      case 118:

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

-      case 119:

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

-         {

-            jjmatchedKind = 178;

-            jjmatchedPos = 7;

-         }

-         break;

-      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 & 0x100000000000L) != 0L)

-         {

-            jjmatchedKind = 172;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 65:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0x2L);

-      case 68:

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

-         {

-            jjmatchedKind = 181;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 69:

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

-         {

-            jjmatchedKind = 71;

-            jjmatchedPos = 8;

-         }

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

-         {

-            jjmatchedKind = 104;

-            jjmatchedPos = 8;

-         }

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

-      case 71:

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

-      case 73:

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

-      case 76:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

-      case 78:

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

-         {

-            jjmatchedKind = 70;

-            jjmatchedPos = 8;

-         }

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

-         {

-            jjmatchedKind = 185;

-            jjmatchedPos = 8;

-         }

-         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x400L);

-      case 79:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

-      case 80:

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

-         {

-            jjmatchedKind = 208;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 82:

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

-         {

-            jjmatchedKind = 138;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 83:

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

-      case 84:

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

-         {

-            jjmatchedKind = 86;

-            jjmatchedPos = 8;

-         }

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

-      case 85:

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

-      case 89:

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

-         {

-            jjmatchedKind = 206;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 95:

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

-      case 97:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0x2L);

-      case 100:

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

-         {

-            jjmatchedKind = 181;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 101:

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

-         {

-            jjmatchedKind = 71;

-            jjmatchedPos = 8;

-         }

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

-         {

-            jjmatchedKind = 104;

-            jjmatchedPos = 8;

-         }

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

-      case 103:

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

-      case 105:

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

-      case 108:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

-      case 110:

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

-         {

-            jjmatchedKind = 70;

-            jjmatchedPos = 8;

-         }

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

-         {

-            jjmatchedKind = 185;

-            jjmatchedPos = 8;

-         }

-         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x400L);

-      case 111:

-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

-      case 112:

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

-         {

-            jjmatchedKind = 208;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 114:

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

-         {

-            jjmatchedKind = 138;

-            jjmatchedPos = 8;

-         }

-         break;

-      case 115:

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

-      case 116:

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

-         {

-            jjmatchedKind = 86;

-            jjmatchedPos = 8;

-         }

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

-      case 117:

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

-      case 121:

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

-         {

-            jjmatchedKind = 206;

-            jjmatchedPos = 8;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 8);

-}

-private int jjMoveStringLiteralDfa9_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, 8);

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

-   catch(java.io.IOException e) {

-   return jjMoveNfa_0(5, 8);

-   }

-   switch(curChar)

-   {

-      case 66:

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

-      case 67:

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

-      case 68:

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

-         {

-            jjmatchedKind = 80;

-            jjmatchedPos = 9;

-         }

-         break;

-      case 69:

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

-      case 73:

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

-      case 79:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

-      case 82:

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

-      case 83:

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

-         {

-            jjmatchedKind = 93;

-            jjmatchedPos = 9;

-         }

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

-      case 84:

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

-         {

-            jjmatchedKind = 59;

-            jjmatchedPos = 9;

-         }

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x400L);

-      case 85:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

-      case 98:

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

-      case 99:

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

-      case 100:

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

-         {

-            jjmatchedKind = 80;

-            jjmatchedPos = 9;

-         }

-         break;

-      case 101:

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

-      case 105:

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

-      case 111:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);

-      case 114:

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

-      case 115:

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

-         {

-            jjmatchedKind = 93;

-            jjmatchedPos = 9;

-         }

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

-      case 116:

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

-         {

-            jjmatchedKind = 59;

-            jjmatchedPos = 9;

-         }

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x400L);

-      case 117:

-         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 9);

-}

-private int jjMoveStringLiteralDfa10_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, 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, 0x200L);

-      case 66:

-         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x100L);

-      case 69:

-         return jjMoveStringLiteralDfa11_0(active2, 0x4020L, active3, 0x400L);

-      case 72:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2L);

-      case 76:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000L, active3, 0L);

-      case 78:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);

-      case 79:

-         return jjMoveStringLiteralDfa11_0(active2, 0x1000000000000L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 182;

-            jjmatchedPos = 10;

-         }

-         break;

-      case 83:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2000L);

-      case 84:

-         return jjMoveStringLiteralDfa11_0(active2, 0x200000L, active3, 0L);

-      case 97:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x200L);

-      case 98:

-         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x100L);

-      case 101:

-         return jjMoveStringLiteralDfa11_0(active2, 0x4020L, active3, 0x400L);

-      case 104:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2L);

-      case 108:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000L, active3, 0L);

-      case 110:

-         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);

-      case 111:

-         return jjMoveStringLiteralDfa11_0(active2, 0x1000000000000L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 182;

-            jjmatchedPos = 10;

-         }

-         break;

-      case 115:

-         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2000L);

-      case 116:

-         return jjMoveStringLiteralDfa11_0(active2, 0x200000L, 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, 0x10000000000000L, active3, 0L);

-      case 69:

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

-         {

-            jjmatchedKind = 156;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 193;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 71:

-         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x400L);

-      case 73:

-         return jjMoveStringLiteralDfa12_0(active2, 0x200000L, active3, 0L);

-      case 76:

-         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x100L);

-      case 78:

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

-         {

-            jjmatchedKind = 176;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 79:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x2000L);

-      case 82:

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

-         {

-            jjmatchedKind = 142;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 84:

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

-         {

-            jjmatchedKind = 132;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 201;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 97:

-         return jjMoveStringLiteralDfa12_0(active2, 0x10000000000000L, active3, 0L);

-      case 101:

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

-         {

-            jjmatchedKind = 156;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 193;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 103:

-         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x400L);

-      case 105:

-         return jjMoveStringLiteralDfa12_0(active2, 0x200000L, active3, 0L);

-      case 108:

-         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x100L);

-      case 110:

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

-         {

-            jjmatchedKind = 176;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 111:

-         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x2000L);

-      case 114:

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

-         {

-            jjmatchedKind = 142;

-            jjmatchedPos = 11;

-         }

-         break;

-      case 116:

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

-         {

-            jjmatchedKind = 132;

-            jjmatchedPos = 11;

-         }

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

-         {

-            jjmatchedKind = 201;

-            jjmatchedPos = 11;

-         }

-         break;

-      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, 0x10000000000000L, active3, 0L);

-      case 67:

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

-         {

-            jjmatchedKind = 149;

-            jjmatchedPos = 12;

-         }

-         break;

-      case 69:

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

-         {

-            jjmatchedKind = 131;

-            jjmatchedPos = 12;

-         }

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

-         {

-            jjmatchedKind = 200;

-            jjmatchedPos = 12;

-         }

-         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x400L);

-      case 82:

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

-         {

-            jjmatchedKind = 205;

-            jjmatchedPos = 12;

-         }

-         break;

-      case 98:

-         return jjMoveStringLiteralDfa13_0(active2, 0x10000000000000L, active3, 0L);

-      case 99:

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

-         {

-            jjmatchedKind = 149;

-            jjmatchedPos = 12;

-         }

-         break;

-      case 101:

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

-         {

-            jjmatchedKind = 131;

-            jjmatchedPos = 12;

-         }

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

-         {

-            jjmatchedKind = 200;

-            jjmatchedPos = 12;

-         }

-         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x400L);

-      case 114:

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

-         {

-            jjmatchedKind = 205;

-            jjmatchedPos = 12;

-         }

-         break;

-      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 76:

-         return jjMoveStringLiteralDfa14_0(active2, 0x10000000000000L, active3, 0L);

-      case 82:

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

-         {

-            jjmatchedKind = 133;

-            jjmatchedPos = 13;

-         }

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

-         {

-            jjmatchedKind = 202;

-            jjmatchedPos = 13;

-         }

-         break;

-      case 108:

-         return jjMoveStringLiteralDfa14_0(active2, 0x10000000000000L, active3, 0L);

-      case 114:

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

-         {

-            jjmatchedKind = 133;

-            jjmatchedPos = 13;

-         }

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

-         {

-            jjmatchedKind = 202;

-            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 69:

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

-         {

-            jjmatchedKind = 180;

-            jjmatchedPos = 14;

-         }

-         break;

-      case 101:

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

-         {

-            jjmatchedKind = 180;

-            jjmatchedPos = 14;

-         }

-         break;

-      default :

-         break;

-   }

-   return jjMoveNfa_0(5, 14);

-}

+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(0x8060000000000L, 0x0L, 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, 0x0L, 0x3L, 0x0L);
+      case 66:
+         return jjMoveStringLiteralDfa1_0(0x3800000000000L, 0x0L, 0x1fcL, 0x0L);
+      case 67:
+         return jjMoveStringLiteralDfa1_0(0x7ff4000000000000L, 0x0L, 0x7e00L, 0x0L);
+      case 68:
+         return jjMoveStringLiteralDfa1_0(0x8000000000000000L, 0xfL, 0x7f8000L, 0x0L);
+      case 69:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf0L, 0x800000L, 0x0L);
+      case 70:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf00L, 0x7000000L, 0x0L);
+      case 71:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7000L, 0x8000000L, 0x0L);
+      case 72:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x8000L, 0x0L, 0x0L);
+      case 73:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1ff0000L, 0xf0000000L, 0x0L);
+      case 75:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x100000000L, 0x0L);
+      case 76:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0x600000000L, 0x0L);
+      case 77:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x18000000L, 0x1800000000L, 0x0L);
+      case 78:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1e0000000L, 0x3fe000000000L, 0x0L);
+      case 79:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7e00000000L, 0x7c00000000000L, 0x0L);
+      case 80:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000000L, 0x7f8000000000000L, 0x0L);
+      case 82:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xc0000000000L, 0xf800000000000000L, 0x1fL);
+      case 83:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000000L, 0x0L, 0x3fe0L);
+      case 84:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7c000000000000L, 0x0L, 0x1c000L);
+      case 85:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x380000000000000L, 0x0L, 0x20000L);
+      case 86:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x3c0000L);
+      case 87:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xe000000000000000L, 0x0L, 0x0L);
+      case 89:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x400000L);
+      case 90:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x800000L);
+      case 97:
+         return jjMoveStringLiteralDfa1_0(0x798000000000L, 0x0L, 0x3L, 0x0L);
+      case 98:
+         return jjMoveStringLiteralDfa1_0(0x3800000000000L, 0x0L, 0x1fcL, 0x0L);
+      case 99:
+         return jjMoveStringLiteralDfa1_0(0x7ff4000000000000L, 0x0L, 0x7e00L, 0x0L);
+      case 100:
+         return jjMoveStringLiteralDfa1_0(0x8000000000000000L, 0xfL, 0x7f8000L, 0x0L);
+      case 101:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf0L, 0x800000L, 0x0L);
+      case 102:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xf00L, 0x7000000L, 0x0L);
+      case 103:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7000L, 0x8000000L, 0x0L);
+      case 104:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x8000L, 0x0L, 0x0L);
+      case 105:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1ff0000L, 0xf0000000L, 0x0L);
+      case 107:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x100000000L, 0x0L);
+      case 108:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x6000000L, 0x600000000L, 0x0L);
+      case 109:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x18000000L, 0x1800000000L, 0x0L);
+      case 110:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1e0000000L, 0x3fe000000000L, 0x0L);
+      case 111:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7e00000000L, 0x7c00000000000L, 0x0L);
+      case 112:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000000L, 0x7f8000000000000L, 0x0L);
+      case 114:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xc0000000000L, 0xf800000000000000L, 0x1fL);
+      case 115:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x3f00000000000L, 0x0L, 0x3fe0L);
+      case 116:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x7c000000000000L, 0x0L, 0x1c000L);
+      case 117:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x380000000000000L, 0x0L, 0x20000L);
+      case 118:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000000L, 0x0L, 0x3c0000L);
+      case 119:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0xe000000000000000L, 0x0L, 0x0L);
+      case 121:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x400000L);
+      case 122:
+         return jjMoveStringLiteralDfa1_0(0x0L, 0x0L, 0x0L, 0x800000L);
+      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, 0x40c000000008000L, active2, 0x1818006000018000L, active3, 0x3c0000L);
+      case 66:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0x18000000000L, active3, 0L);
+      case 68:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);
+      case 69:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8001800000000000L, active1, 0x1c0000000103L, active2, 0xe0000001003e0000L, active3, 0x404067L);
+      case 70:
+         if ((active1 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 81;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 97;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x4L, active3, 0L);
+      case 72:
+         return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0x6010200000000000L, active2, 0x600L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x980040000a000004L, active2, 0x20800001000038L, active3, 0x18780L);
+      case 76:
+         return jjMoveStringLiteralDfa2_0(active0, 0x60018000000000L, active1, 0x10L, active2, 0x4000080a000840L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x800L);
+      case 78:
+         if ((active1 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 82;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 98;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x180000000f80020L, active2, 0xf0800000L, active3, 0L);
+      case 79:
+         if ((active1 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 117;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0xf80000000000000L, active1, 0xf4001200L, active2, 0x80021604403080L, active3, 0x800018L);
+      case 80:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000800000000L, active2, 0L, active3, 0L);
+      case 81:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x800000000000L, active2, 0L, active3, 0L);
+      case 82:
+         if ((active1 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 100;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x3000020000000000L, active1, 0x1a000006408L, active2, 0x701000000000001L, active3, 0x20000L);
+      case 83:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 44;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 88;
+            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, 0x1000000000000L, active2, 0L, active3, 0x1000L);
+      case 85:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0x2020100000800L, active2, 0x20c0000004002L, active3, 0L);
+      case 86:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000L, active2, 0x4300000000000L, active3, 0L);
+      case 88:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0xc0L, active2, 0L, active3, 0L);
+      case 89:
+         if ((active0 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 49;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x40000000000000L, active2, 0x100L, active3, 0x2000L);
+      case 97:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L, active1, 0x40c000000008000L, active2, 0x1818006000018000L, active3, 0x3c0000L);
+      case 98:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0x18000000000L, active3, 0L);
+      case 100:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);
+      case 101:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8001800000000000L, active1, 0x1c0000000103L, active2, 0xe0000001003e0000L, active3, 0x404067L);
+      case 102:
+         if ((active1 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 81;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 97;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x4L, active3, 0L);
+      case 104:
+         return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0x6010200000000000L, active2, 0x600L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x980040000a000004L, active2, 0x20800001000038L, active3, 0x18780L);
+      case 108:
+         return jjMoveStringLiteralDfa2_0(active0, 0x60018000000000L, active1, 0x10L, active2, 0x4000080a000840L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x800L);
+      case 110:
+         if ((active1 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 82;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 98;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x80000000000L, active1, 0x180000000f80020L, active2, 0xf0800000L, active3, 0L);
+      case 111:
+         if ((active1 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 117;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0xf80000000000000L, active1, 0xf4001200L, active2, 0x80021604403080L, active3, 0x800018L);
+      case 112:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000800000000L, active2, 0L, active3, 0L);
+      case 113:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x800000000000L, active2, 0L, active3, 0L);
+      case 114:
+         if ((active1 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 100;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0x3000020000000000L, active1, 0x1a000006408L, active2, 0x701000000000001L, active3, 0x20000L);
+      case 115:
+         if ((active0 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 44;
+            jjmatchedPos = 1;
+         }
+         else if ((active1 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 88;
+            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, 0x1000000000000L, active2, 0L, active3, 0x1000L);
+      case 117:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0x2020100000800L, active2, 0x20c0000004002L, active3, 0L);
+      case 118:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000L, active2, 0x4300000000000L, active3, 0L);
+      case 120:
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0xc0L, active2, 0L, active3, 0L);
+      case 121:
+         if ((active0 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 49;
+            jjmatchedPos = 1;
+         }
+         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x40000000000000L, active2, 0x100L, active3, 0x2000L);
+      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, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x2100300000800600L, active3, 0x400800L);
+      case 66:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0xe020000000000L, active2, 0L, active3, 0L);
+      case 67:
+         if ((active0 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 45;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 145;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, active1, 0x240000c0L, active2, 0x4008020200040000L, active3, 0x20L);
+      case 68:
+         if ((active0 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 69;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 175;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200002010180000L, active2, 0L, active3, 0L);
+      case 69:
+         return jjMoveStringLiteralDfa3_0(active0, 0x2010000000000000L, active1, 0x7810004000010000L, active2, 0x604000000000000L, active3, 0L);
+      case 70:
+         if ((active2 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 191;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L, active2, 0x80000L, active3, 0L);
+      case 71:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x1000000000000L, active3, 0x80L);
+      case 72:
+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x8000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x180008000000000L, active2, 0x4L, active3, 0L);
+      case 74:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);
+      case 75:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000000L, active2, 0L, active3, 0L);
+      case 76:
+         if ((active0 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 39;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 111;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000000L, active1, 0x400100100000000L, active2, 0x10000100000L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0xc0000001000L, active3, 0x1c700L);
+      case 78:
+         return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, active1, 0x8000800L, active2, 0x800001401002038L, active3, 0x800000L);
+      case 79:
+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x10000004408L, active2, 0xa0008c0L, active3, 0x20000L);
+      case 80:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L, active2, 0x20000000000000L, active3, 0x1L);
+      case 82:
+         if ((active1 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 73;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x10000004004001L, active3, 0x3c1000L);
+      case 83:
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x40000200016L, active2, 0xc0000810000000L, active3, 0x2002L);
+      case 84:
+         if ((active1 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 94;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 157;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 177;
+            jjmatchedPos = 2;
+         }
+         else if ((active3 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 198;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x8000000800c01100L, active2, 0x60c0208102L, active3, 0x4L);
+      case 85:
+         return jjMoveStringLiteralDfa3_0(active0, 0x60000000000000L, active1, 0L, active2, 0x400000L, active3, 0L);
+      case 86:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000008000L, active2, 0L, active3, 0L);
+      case 87:
+         if ((active2 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 188;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000L, active2, 0L, active3, 0x18L);
+      case 89:
+         if ((active2 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 144;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 160;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 90:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x400000000000L, active2, 0L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0x1200000002000L, active2, 0x2100300000800600L, active3, 0x400800L);
+      case 98:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0xe020000000000L, active2, 0L, active3, 0L);
+      case 99:
+         if ((active0 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 45;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 145;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, active1, 0x240000c0L, active2, 0x4008020200040000L, active3, 0x20L);
+      case 100:
+         if ((active0 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 69;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 175;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200002010180000L, active2, 0L, active3, 0L);
+      case 101:
+         return jjMoveStringLiteralDfa3_0(active0, 0x2010000000000000L, active1, 0x7810004000010000L, active2, 0x604000000000000L, active3, 0L);
+      case 102:
+         if ((active2 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 191;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L, active2, 0x80000L, active3, 0L);
+      case 103:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L, active2, 0x1000000000000L, active3, 0x80L);
+      case 104:
+         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x8000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x180008000000000L, active2, 0x4L, active3, 0L);
+      case 106:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x400000000000L, active3, 0L);
+      case 107:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000000L, active2, 0L, active3, 0L);
+      case 108:
+         if ((active0 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 39;
+            jjmatchedPos = 2;
+         }
+         else if ((active1 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 111;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000000L, active1, 0x400100100000000L, active2, 0x10000100000L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0xc0000001000L, active3, 0x1c700L);
+      case 110:
+         return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, active1, 0x8000800L, active2, 0x800001401002038L, active3, 0x800000L);
+      case 111:
+         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L, active1, 0x10000004408L, active2, 0xa0008c0L, active3, 0x20000L);
+      case 112:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000000000L, active2, 0x20000000000000L, active3, 0x1L);
+      case 114:
+         if ((active1 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 73;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0L, active2, 0x10000004004001L, active3, 0x3c1000L);
+      case 115:
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x40000200016L, active2, 0xc0000810000000L, active3, 0x2002L);
+      case 116:
+         if ((active1 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 94;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 157;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 177;
+            jjmatchedPos = 2;
+         }
+         else if ((active3 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 198;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x1010000000000L, active1, 0x8000000800c01100L, active2, 0x60c0208102L, active3, 0x4L);
+      case 117:
+         return jjMoveStringLiteralDfa3_0(active0, 0x60000000000000L, active1, 0L, active2, 0x400000L, active3, 0L);
+      case 118:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000008000L, active2, 0L, active3, 0L);
+      case 119:
+         if ((active2 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 188;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000L, active2, 0L, active3, 0x18L);
+      case 121:
+         if ((active2 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 144;
+            jjmatchedPos = 2;
+         }
+         else if ((active2 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 160;
+            jjmatchedPos = 2;
+         }
+         return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 122:
+         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x400000000000L, 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 65:
+         return jjMoveStringLiteralDfa4_0(active0, 0x2088000000000000L, active1, 0x204000080000001L, active2, 0x11008203000039L, active3, 0L);
+      case 66:
+         if ((active2 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 134;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 139;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x40008c00000L, active3, 0L);
+      case 67:
+         if ((active1 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 65;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0x10000000900L, active2, 0x200000004000000L, active3, 0xc0000L);
+      case 69:
+         if ((active0 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 50;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 68;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 89;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 92;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 110;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 118;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 136;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 143;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 207;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 215;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x102000780040L, active2, 0x204800c0300000L, active3, 0x10000L);
+      case 71:
+         if ((active2 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 162;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x900000000000000L, active3, 0L);
+      case 72:
+         if ((active1 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 127;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x800008000L, active2, 0x800020000c0000L, active3, 0x1008L);
+      case 75:
+         if ((active1 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 90;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);
+      case 76:
+         if ((active1 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 96;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 189;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x8020000000080L, active2, 0x800000084L, active3, 0x801L);
+      case 77:
+         if ((active1 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 74;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x8000000000L, active2, 0x1000L, active3, 0L);
+      case 78:
+         if ((active1 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 116;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 125;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0x12000L, active2, 0L, active3, 0x80L);
+      case 79:
+         if ((active1 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 76;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 87;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800c0020000000L, active2, 0x4000030000000000L, active3, 0x20L);
+      case 80:
+         if ((active1 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 67;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x200040000000000L, active1, 0L, active2, 0L, active3, 0x4700L);
+      case 81:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000000000L, active2, 0L, active3, 0L);
+      case 82:
+         if ((active2 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 137;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 214;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4001204000000000L, active2, 0x4300000004400L, active3, 0x100000L);
+      case 83:
+         if ((active3 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 196;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x5860000000000000L, active1, 0L, active2, 0x400000000002000L, active3, 0L);
+      case 84:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000004L, active2, 0x1010000000L, active3, 0L);
+      case 85:
+         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x400000008004000L, active2, 0x4000000000L, active3, 0x6L);
+      case 87:
+         if ((active1 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 123;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x1000000000000000L, active2, 0L, active3, 0x20000L);
+      case 89:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x200000L);
+      case 95:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0x2000L);
+      case 97:
+         return jjMoveStringLiteralDfa4_0(active0, 0x2088000000000000L, active1, 0x204000080000001L, active2, 0x11008203000039L, active3, 0L);
+      case 98:
+         if ((active2 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 134;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 139;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x40008c00000L, active3, 0L);
+      case 99:
+         if ((active1 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 65;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0x10000000900L, active2, 0x200000004000000L, active3, 0xc0000L);
+      case 101:
+         if ((active0 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 50;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 68;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 89;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 92;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 110;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 118;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 136;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 143;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 207;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 215;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0x102000780040L, active2, 0x204800c0300000L, active3, 0x10000L);
+      case 103:
+         if ((active2 & 0x400000000L) != 0L)
+         {
+            jjmatchedKind = 162;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x900000000000000L, active3, 0L);
+      case 104:
+         if ((active1 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 127;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x2L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L, active1, 0x800008000L, active2, 0x800020000c0000L, active3, 0x1008L);
+      case 107:
+         if ((active1 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 90;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);
+      case 108:
+         if ((active1 & 0x100000000L) != 0L)
+         {
+            jjmatchedKind = 96;
+            jjmatchedPos = 3;
+         }
+         else if ((active2 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 189;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x8020000000080L, active2, 0x800000084L, active3, 0x801L);
+      case 109:
+         if ((active1 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 74;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x8000000000L, active2, 0x1000L, active3, 0L);
+      case 110:
+         if ((active1 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 116;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 125;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0x12000L, active2, 0L, active3, 0x80L);
+      case 111:
+         if ((active1 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 76;
+            jjmatchedPos = 3;
+         }
+         else if ((active1 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 87;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800c0020000000L, active2, 0x4000030000000000L, active3, 0x20L);
+      case 112:
+         if ((active1 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 67;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x200040000000000L, active1, 0L, active2, 0L, active3, 0x4700L);
+      case 113:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000000000L, active2, 0L, active3, 0L);
+      case 114:
+         if ((active2 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 137;
+            jjmatchedPos = 3;
+         }
+         else if ((active3 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 214;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4001204000000000L, active2, 0x4300000004400L, active3, 0x100000L);
+      case 115:
+         if ((active3 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 196;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x5860000000000000L, active1, 0L, active2, 0x400000000002000L, active3, 0L);
+      case 116:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000004L, active2, 0x1010000000L, active3, 0L);
+      case 117:
+         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x400000008004000L, active2, 0x4000000000L, active3, 0x6L);
+      case 119:
+         if ((active1 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 123;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x1020000000000L, active1, 0x1000000000000000L, active2, 0L, active3, 0x20000L);
+      case 121:
+         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x200000L);
+      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 65:
+         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0x8000000000L, active2, 0x8000818000400L, active3, 0x100001L);
+      case 66:
+         if ((active2 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 168;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 67:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000000000L, active2, 0x700000000000L, active3, 0L);
+      case 68:
+         if ((active3 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 195;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 69:
+         if ((active0 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 42;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 109;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 115;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 126;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 130;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 154;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 187;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x401000000000000L, active1, 0x400010000000000L, active2, 0x400040000004080L, active3, 0L);
+      case 70:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);
+      case 71:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x40000000L, active3, 0L);
+      case 72:
+         if ((active0 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 60;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 72;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 164;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0xc0000L);
+      case 73:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20080000004L, active2, 0x240000000001002L, active3, 0x220000L);
+      case 75:
+         if ((active0 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 52;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 76:
+         if ((active2 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 152;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 161;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x84000000000L, active2, 0x30000000c00000L, active3, 0xf02L);
+      case 77:
+         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x20000000L, active2, 0x100000000040000L, active3, 0L);
+      case 78:
+         if ((active0 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 47;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 119;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0x1000000080000L, active3, 0x1020L);
+      case 79:
+         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x800000000L, active2, 0x2000000000L, active3, 0x4000L);
+      case 80:
+         if ((active1 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 78;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40L, active2, 0x20000000000L, active3, 0L);
+      case 82:
+         if ((active0 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 40;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 101;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 167;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x208000000000000L, active1, 0x600000L, active2, 0x4000084080200038L, active3, 0x2004L);
+      case 83:
+         if ((active1 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 91;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 124;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);
+      case 84:
+         if ((active1 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 77;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 112;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 153;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x2860020000000000L, active1, 0x200000000010800L, active2, 0x80000000102000L, active3, 0x80L);
+      case 85:
+         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x104040000000081L, active2, 0L, active3, 0L);
+      case 88:
+         if ((active1 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 83;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000L, active2, 0L, active3, 0L);
+      case 89:
+         if ((active2 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 128;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000000000000L, active2, 0L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0x8000000000L, active2, 0x8000818000400L, active3, 0x100001L);
+      case 98:
+         if ((active2 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 168;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 99:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000000000L, active2, 0x700000000000L, active3, 0L);
+      case 100:
+         if ((active3 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 195;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 101:
+         if ((active0 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 42;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 109;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 115;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 126;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 130;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x4000000L) != 0L)
+         {
+            jjmatchedKind = 154;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 187;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x401000000000000L, active1, 0x400010000000000L, active2, 0x400040000004080L, active3, 0L);
+      case 102:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x4000000000000L, active3, 0L);
+      case 103:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x40000000L, active3, 0L);
+      case 104:
+         if ((active0 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 60;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 72;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 164;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0xc0000L);
+      case 105:
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20080000004L, active2, 0x240000000001002L, active3, 0x220000L);
+      case 107:
+         if ((active0 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 52;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 108:
+         if ((active2 & 0x1000000L) != 0L)
+         {
+            jjmatchedKind = 152;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 161;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x84000000000L, active2, 0x30000000c00000L, active3, 0xf02L);
+      case 109:
+         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x20000000L, active2, 0x100000000040000L, active3, 0L);
+      case 110:
+         if ((active0 & 0x800000000000L) != 0L)
+         {
+            jjmatchedKind = 47;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 119;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0x1000000080000L, active3, 0x1020L);
+      case 111:
+         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x800000000L, active2, 0x2000000000L, active3, 0x4000L);
+      case 112:
+         if ((active1 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 78;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40L, active2, 0x20000000000L, active3, 0L);
+      case 114:
+         if ((active0 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 40;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 101;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 167;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x208000000000000L, active1, 0x600000L, active2, 0x4000084080200038L, active3, 0x2004L);
+      case 115:
+         if ((active1 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 91;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000000000L) != 0L)
+         {
+            jjmatchedKind = 124;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);
+      case 116:
+         if ((active1 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 77;
+            jjmatchedPos = 4;
+         }
+         else if ((active1 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 112;
+            jjmatchedPos = 4;
+         }
+         else if ((active2 & 0x2000000L) != 0L)
+         {
+            jjmatchedKind = 153;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0x2860020000000000L, active1, 0x200000000010800L, active2, 0x80000000102000L, active3, 0x80L);
+      case 117:
+         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0x104040000000081L, active2, 0L, active3, 0L);
+      case 120:
+         if ((active1 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 83;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000L, active2, 0L, active3, 0L);
+      case 121:
+         if ((active2 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 128;
+            jjmatchedPos = 4;
+         }
+         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000000000000L, 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 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 184;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0x4000042080L, active3, 0xc0000L);
+      case 66:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000000L, active3, 0L);
+      case 67:
+         if ((active1 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 105;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, active1, 0L, active2, 0x400L, active3, 0x1L);
+      case 68:
+         if ((active2 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 129;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 190;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 197;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 209;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);
+      case 69:
+         if ((active0 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 61;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 107;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 120;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 121;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 148;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 150;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 151;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x261000000000000L, active1, 0x100000L, active2, 0x40080000L, active3, 0x2700L);
+      case 71:
+         if ((active1 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 79;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 204;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);
+      case 72:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x300000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10800L, active2, 0xa1080000000000L, active3, 0x800L);
+      case 76:
+         if ((active2 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 155;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1L, active2, 0x14000000000000L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 78:
+         if ((active1 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 99;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 194;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x4L, active2, 0x40002010004000L, active3, 0x200000L);
+      case 80:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000020000000L, active2, 0L, active3, 0L);
+      case 82:
+         if ((active0 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 62;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 170;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L, active1, 0x48000000000L, active2, 0x400000000000000L, active3, 0x4000L);
+      case 83:
+         if ((active1 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 122;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0x400080L, active2, 0x200000000000000L, active3, 0L);
+      case 84:
+         if ((active1 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 85;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 95;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 108;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 140;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 174;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x4000000000040L, active2, 0L, active3, 0x10002L);
+      case 86:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x80000000L, active3, 0L);
+      case 89:
+         if ((active2 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 169;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 212;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x80L);
+      case 97:
+         if ((active2 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 184;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000000000L, active2, 0x4000042080L, active3, 0xc0000L);
+      case 98:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800000000L, active3, 0L);
+      case 99:
+         if ((active1 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 105;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, active1, 0L, active2, 0x400L, active3, 0x1L);
+      case 100:
+         if ((active2 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 129;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 190;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 197;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x20000L) != 0L)
+         {
+            jjmatchedKind = 209;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);
+      case 101:
+         if ((active0 & 0x2000000000000000L) != 0L)
+         {
+            jjmatchedKind = 61;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 107;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 120;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 121;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 148;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 150;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x800000L) != 0L)
+         {
+            jjmatchedKind = 151;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x261000000000000L, active1, 0x100000L, active2, 0x40080000L, active3, 0x2700L);
+      case 103:
+         if ((active1 & 0x8000L) != 0L)
+         {
+            jjmatchedKind = 79;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 204;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x8000000000000L, active3, 0L);
+      case 104:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x300000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10800L, active2, 0xa1080000000000L, active3, 0x800L);
+      case 108:
+         if ((active2 & 0x8000000L) != 0L)
+         {
+            jjmatchedKind = 155;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1L, active2, 0x14000000000000L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 110:
+         if ((active1 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 99;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 194;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x4L, active2, 0x40002010004000L, active3, 0x200000L);
+      case 112:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2000020000000L, active2, 0L, active3, 0L);
+      case 114:
+         if ((active0 & 0x4000000000000000L) != 0L)
+         {
+            jjmatchedKind = 62;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 170;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x8800000000000000L, active1, 0x48000000000L, active2, 0x400000000000000L, active3, 0x4000L);
+      case 115:
+         if ((active1 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 122;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0x400080L, active2, 0x200000000000000L, active3, 0L);
+      case 116:
+         if ((active1 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 85;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 95;
+            jjmatchedPos = 5;
+         }
+         else if ((active1 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 108;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 140;
+            jjmatchedPos = 5;
+         }
+         else if ((active2 & 0x400000000000L) != 0L)
+         {
+            jjmatchedKind = 174;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0x4000000000040L, active2, 0L, active3, 0x10002L);
+      case 118:
+         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x80000000L, active3, 0L);
+      case 121:
+         if ((active2 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 169;
+            jjmatchedPos = 5;
+         }
+         else if ((active3 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 212;
+            jjmatchedPos = 5;
+         }
+         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0L, active2, 0x38L, active3, 0x80L);
+      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, 0x800000000000000L, active1, 0L, active2, 0x302080000000L, active3, 0x14000L);
+      case 67:
+         if ((active2 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 171;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x40000000004L, active2, 0L, active3, 0L);
+      case 69:
+         if ((active0 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 63;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 113;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 179;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 192;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x10000800000000L, active3, 0L);
+      case 70:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0x2000L);
+      case 71:
+         if ((active3 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 213;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 72:
+         if ((active0 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 55;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 114;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 73:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x200000000200000L, active3, 0L);
+      case 76:
+         if ((active2 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 146;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 166;
+            jjmatchedPos = 6;
+         }
+         break;
+      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, 0x20000000002000L, active3, 0x800L);
+      case 79:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800L, active2, 0x4000000000000L, active3, 0L);
+      case 80:
+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x80L);
+      case 82:
+         if ((active0 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 54;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 147;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 158;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 211;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x40000L);
+      case 83:
+         if ((active0 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 56;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 84;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x200000000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 84:
+         if ((active0 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 58;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 64;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x40000010004400L, active3, 0L);
+      case 85:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);
+      case 86:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x480000000000000L, active3, 0L);
+      case 89:
+         if ((active1 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 103;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 90:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 95:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x38L, active3, 0x702L);
+      case 97:
+         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000000L, active1, 0L, active2, 0x302080000000L, active3, 0x14000L);
+      case 99:
+         if ((active2 & 0x80000000000L) != 0L)
+         {
+            jjmatchedKind = 171;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x40000000004L, active2, 0L, active3, 0L);
+      case 101:
+         if ((active0 & 0x8000000000000000L) != 0L)
+         {
+            jjmatchedKind = 63;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x2000000000000L) != 0L)
+         {
+            jjmatchedKind = 113;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 179;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 192;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0x400000L, active2, 0x10000800000000L, active3, 0L);
+      case 102:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0x2000L);
+      case 103:
+         if ((active3 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 213;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 104:
+         if ((active0 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 55;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 114;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 105:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0xc0L, active2, 0x200000000200000L, active3, 0L);
+      case 108:
+         if ((active2 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 146;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 166;
+            jjmatchedPos = 6;
+         }
+         break;
+      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, 0x20000000002000L, active3, 0x800L);
+      case 111:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800L, active2, 0x4000000000000L, active3, 0L);
+      case 112:
+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000L, active1, 0x4000000000L, active2, 0L, active3, 0x80L);
+      case 114:
+         if ((active0 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 54;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 147;
+            jjmatchedPos = 6;
+         }
+         else if ((active2 & 0x40000000L) != 0L)
+         {
+            jjmatchedKind = 158;
+            jjmatchedPos = 6;
+         }
+         else if ((active3 & 0x80000L) != 0L)
+         {
+            jjmatchedKind = 211;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x20000000L, active2, 0L, active3, 0x40000L);
+      case 115:
+         if ((active0 & 0x100000000000000L) != 0L)
+         {
+            jjmatchedKind = 56;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x100000L) != 0L)
+         {
+            jjmatchedKind = 84;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0x200000000000000L, active1, 0L, active2, 0L, active3, 0L);
+      case 116:
+         if ((active0 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 58;
+            jjmatchedPos = 6;
+         }
+         else if ((active1 & 0x1L) != 0L)
+         {
+            jjmatchedKind = 64;
+            jjmatchedPos = 6;
+         }
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x40000010004400L, active3, 0L);
+      case 117:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000000L, active2, 0L, active3, 0L);
+      case 118:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x480000000000000L, active3, 0L);
+      case 121:
+         if ((active1 & 0x8000000000L) != 0L)
+         {
+            jjmatchedKind = 103;
+            jjmatchedPos = 6;
+         }
+         break;
+      case 122:
+         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, 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 & 0x40000L) != 0L)
+         {
+            jjmatchedKind = 210;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x400000L, active2, 0L, active3, 0x2002L);
+      case 68:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);
+      case 69:
+         if ((active0 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 41;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 106;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 183;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 186;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 199;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0x60000000000400L, active3, 0L);
+      case 70:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);
+      case 73:
+         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x10000020L, active3, 0x400L);
+      case 76:
+         if ((active2 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 159;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 163;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 165;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 77:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);
+      case 78:
+         if ((active1 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 75;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x200000000000000L, active3, 0L);
+      case 82:
+         if ((active2 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 173;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x100000000000L, active3, 0x4000L);
+      case 83:
+         if ((active0 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 7;
+         }
+         else if ((active0 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 57;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 102;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 84:
+         if ((active0 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 51;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 66;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 141;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 203;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 86:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x80L, active2, 0L, active3, 0L);
+      case 87:
+         if ((active2 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 178;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 95:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x4000L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x400000L, active2, 0L, active3, 0x2002L);
+      case 100:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);
+      case 101:
+         if ((active0 & 0x20000000000L) != 0L)
+         {
+            jjmatchedKind = 41;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x40000000000L) != 0L)
+         {
+            jjmatchedKind = 106;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x80000000000000L) != 0L)
+         {
+            jjmatchedKind = 183;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x400000000000000L) != 0L)
+         {
+            jjmatchedKind = 186;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 199;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L, active2, 0x60000000000400L, active3, 0L);
+      case 102:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);
+      case 105:
+         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000000L, active1, 0x10000L, active2, 0x10000020L, active3, 0x400L);
+      case 108:
+         if ((active2 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 159;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x800000000L) != 0L)
+         {
+            jjmatchedKind = 163;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 165;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 109:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x10000L);
+      case 110:
+         if ((active1 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 75;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40L, active2, 0x200000000000000L, active3, 0L);
+      case 114:
+         if ((active2 & 0x200000000000L) != 0L)
+         {
+            jjmatchedKind = 173;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10000000000L, active2, 0x100000000000L, active3, 0x4000L);
+      case 115:
+         if ((active0 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 53;
+            jjmatchedPos = 7;
+         }
+         else if ((active0 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 57;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x4000000000L) != 0L)
+         {
+            jjmatchedKind = 102;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 116:
+         if ((active0 & 0x8000000000000L) != 0L)
+         {
+            jjmatchedKind = 51;
+            jjmatchedPos = 7;
+         }
+         else if ((active1 & 0x4L) != 0L)
+         {
+            jjmatchedKind = 66;
+            jjmatchedPos = 7;
+         }
+         else if ((active2 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 141;
+            jjmatchedPos = 7;
+         }
+         else if ((active3 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 203;
+            jjmatchedPos = 7;
+         }
+         break;
+      case 118:
+         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x80L, active2, 0L, active3, 0L);
+      case 119:
+         if ((active2 & 0x4000000000000L) != 0L)
+         {
+            jjmatchedKind = 178;
+            jjmatchedPos = 7;
+         }
+         break;
+      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 & 0x100000000000L) != 0L)
+         {
+            jjmatchedKind = 172;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 65:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0x2L);
+      case 68:
+         if ((active2 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 181;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 69:
+         if ((active1 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 71;
+            jjmatchedPos = 8;
+         }
+         else if ((active1 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 104;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);
+      case 71:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 76:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);
+      case 78:
+         if ((active1 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 70;
+            jjmatchedPos = 8;
+         }
+         else if ((active2 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 185;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x400L);
+      case 79:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);
+      case 80:
+         if ((active3 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 208;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 82:
+         if ((active2 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 138;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 83:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x20000000L, active2, 0L, active3, 0L);
+      case 84:
+         if ((active1 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 86;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 85:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x4000L, active3, 0x2000L);
+      case 89:
+         if ((active3 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 206;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 95:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000000000L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0x2L);
+      case 100:
+         if ((active2 & 0x20000000000000L) != 0L)
+         {
+            jjmatchedKind = 181;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 101:
+         if ((active1 & 0x80L) != 0L)
+         {
+            jjmatchedKind = 71;
+            jjmatchedPos = 8;
+         }
+         else if ((active1 & 0x10000000000L) != 0L)
+         {
+            jjmatchedKind = 104;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x10000L, active2, 0L, active3, 0L);
+      case 103:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x40000000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x200000L, active3, 0L);
+      case 108:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);
+      case 110:
+         if ((active1 & 0x40L) != 0L)
+         {
+            jjmatchedKind = 70;
+            jjmatchedPos = 8;
+         }
+         else if ((active2 & 0x200000000000000L) != 0L)
+         {
+            jjmatchedKind = 185;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000000L, active1, 0L, active2, 0x20L, active3, 0x400L);
+      case 111:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);
+      case 112:
+         if ((active3 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 208;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 114:
+         if ((active2 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 138;
+            jjmatchedPos = 8;
+         }
+         break;
+      case 115:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x20000000L, active2, 0L, active3, 0L);
+      case 116:
+         if ((active1 & 0x400000L) != 0L)
+         {
+            jjmatchedKind = 86;
+            jjmatchedPos = 8;
+         }
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 117:
+         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x4000L, active3, 0x2000L);
+      case 121:
+         if ((active3 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 206;
+            jjmatchedPos = 8;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 8);
+}
+private int jjMoveStringLiteralDfa9_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, 8);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(5, 8);
+   }
+   switch(curChar)
+   {
+      case 66:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0L);
+      case 67:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2L);
+      case 68:
+         if ((active1 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 80;
+            jjmatchedPos = 9;
+         }
+         break;
+      case 69:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x50000000000000L, active3, 0L);
+      case 73:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);
+      case 82:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2000L);
+      case 83:
+         if ((active1 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 93;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x204000L, active3, 0L);
+      case 84:
+         if ((active0 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 59;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x400L);
+      case 85:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);
+      case 98:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10000000L, active3, 0L);
+      case 99:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2L);
+      case 100:
+         if ((active1 & 0x10000L) != 0L)
+         {
+            jjmatchedKind = 80;
+            jjmatchedPos = 9;
+         }
+         break;
+      case 101:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x50000000000000L, active3, 0L);
+      case 105:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x1000000000000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x10L, active3, 0x200L);
+      case 114:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0L, active3, 0x2000L);
+      case 115:
+         if ((active1 & 0x20000000L) != 0L)
+         {
+            jjmatchedKind = 93;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x204000L, active3, 0L);
+      case 116:
+         if ((active0 & 0x800000000000000L) != 0L)
+         {
+            jjmatchedKind = 59;
+            jjmatchedPos = 9;
+         }
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x20L, active3, 0x400L);
+      case 117:
+         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x8L, active3, 0x100L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 9);
+}
+private int jjMoveStringLiteralDfa10_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, 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, 0x200L);
+      case 66:
+         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x100L);
+      case 69:
+         return jjMoveStringLiteralDfa11_0(active2, 0x4020L, active3, 0x400L);
+      case 72:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2L);
+      case 76:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10000000L, active3, 0L);
+      case 78:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);
+      case 79:
+         return jjMoveStringLiteralDfa11_0(active2, 0x1000000000000L, active3, 0L);
+      case 82:
+         if ((active2 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 182;
+            jjmatchedPos = 10;
+         }
+         break;
+      case 83:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2000L);
+      case 84:
+         return jjMoveStringLiteralDfa11_0(active2, 0x200000L, active3, 0L);
+      case 97:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10L, active3, 0x200L);
+      case 98:
+         return jjMoveStringLiteralDfa11_0(active2, 0x8L, active3, 0x100L);
+      case 101:
+         return jjMoveStringLiteralDfa11_0(active2, 0x4020L, active3, 0x400L);
+      case 104:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2L);
+      case 108:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10000000L, active3, 0L);
+      case 110:
+         return jjMoveStringLiteralDfa11_0(active2, 0x10000000000000L, active3, 0L);
+      case 111:
+         return jjMoveStringLiteralDfa11_0(active2, 0x1000000000000L, active3, 0L);
+      case 114:
+         if ((active2 & 0x40000000000000L) != 0L)
+         {
+            jjmatchedKind = 182;
+            jjmatchedPos = 10;
+         }
+         break;
+      case 115:
+         return jjMoveStringLiteralDfa11_0(active2, 0L, active3, 0x2000L);
+      case 116:
+         return jjMoveStringLiteralDfa11_0(active2, 0x200000L, 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, 0x10000000000000L, active3, 0L);
+      case 69:
+         if ((active2 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 156;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 193;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 71:
+         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x400L);
+      case 73:
+         return jjMoveStringLiteralDfa12_0(active2, 0x200000L, active3, 0L);
+      case 76:
+         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x100L);
+      case 78:
+         if ((active2 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 176;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 79:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x2000L);
+      case 82:
+         if ((active2 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 142;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 84:
+         if ((active2 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 132;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 201;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 97:
+         return jjMoveStringLiteralDfa12_0(active2, 0x10000000000000L, active3, 0L);
+      case 101:
+         if ((active2 & 0x10000000L) != 0L)
+         {
+            jjmatchedKind = 156;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x2L) != 0L)
+         {
+            jjmatchedKind = 193;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 103:
+         return jjMoveStringLiteralDfa12_0(active2, 0x20L, active3, 0x400L);
+      case 105:
+         return jjMoveStringLiteralDfa12_0(active2, 0x200000L, active3, 0L);
+      case 108:
+         return jjMoveStringLiteralDfa12_0(active2, 0x8L, active3, 0x100L);
+      case 110:
+         if ((active2 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 176;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 111:
+         return jjMoveStringLiteralDfa12_0(active2, 0L, active3, 0x2000L);
+      case 114:
+         if ((active2 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 142;
+            jjmatchedPos = 11;
+         }
+         break;
+      case 116:
+         if ((active2 & 0x10L) != 0L)
+         {
+            jjmatchedKind = 132;
+            jjmatchedPos = 11;
+         }
+         else if ((active3 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 201;
+            jjmatchedPos = 11;
+         }
+         break;
+      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, 0x10000000000000L, active3, 0L);
+      case 67:
+         if ((active2 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 149;
+            jjmatchedPos = 12;
+         }
+         break;
+      case 69:
+         if ((active2 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 131;
+            jjmatchedPos = 12;
+         }
+         else if ((active3 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 200;
+            jjmatchedPos = 12;
+         }
+         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x400L);
+      case 82:
+         if ((active3 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 205;
+            jjmatchedPos = 12;
+         }
+         break;
+      case 98:
+         return jjMoveStringLiteralDfa13_0(active2, 0x10000000000000L, active3, 0L);
+      case 99:
+         if ((active2 & 0x200000L) != 0L)
+         {
+            jjmatchedKind = 149;
+            jjmatchedPos = 12;
+         }
+         break;
+      case 101:
+         if ((active2 & 0x8L) != 0L)
+         {
+            jjmatchedKind = 131;
+            jjmatchedPos = 12;
+         }
+         else if ((active3 & 0x100L) != 0L)
+         {
+            jjmatchedKind = 200;
+            jjmatchedPos = 12;
+         }
+         return jjMoveStringLiteralDfa13_0(active2, 0x20L, active3, 0x400L);
+      case 114:
+         if ((active3 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 205;
+            jjmatchedPos = 12;
+         }
+         break;
+      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 76:
+         return jjMoveStringLiteralDfa14_0(active2, 0x10000000000000L, active3, 0L);
+      case 82:
+         if ((active2 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 133;
+            jjmatchedPos = 13;
+         }
+         else if ((active3 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 202;
+            jjmatchedPos = 13;
+         }
+         break;
+      case 108:
+         return jjMoveStringLiteralDfa14_0(active2, 0x10000000000000L, active3, 0L);
+      case 114:
+         if ((active2 & 0x20L) != 0L)
+         {
+            jjmatchedKind = 133;
+            jjmatchedPos = 13;
+         }
+         else if ((active3 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 202;
+            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 69:
+         if ((active2 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 180;
+            jjmatchedPos = 14;
+         }
+         break;
+      case 101:
+         if ((active2 & 0x10000000000000L) != 0L)
+         {
+            jjmatchedKind = 180;
+            jjmatchedPos = 14;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(5, 14);
+}
 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 > 216)

-                     kind = 216;

-                  jjstateSet[jjnewStateCnt++] = 14;

-                  break;

-               case 15:

-                  if (curChar == 58)

-                     jjAddStates(7, 9);

-                  break;

-               case 17:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjAddStates(16, 17);

-                  break;

-               case 18:

-                  if (curChar == 46)

-                     jjstateSet[jjnewStateCnt++] = 19;

-                  break;

-               case 20:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjstateSet[jjnewStateCnt++] = 20;

-                  break;

-               case 21:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddStates(18, 24);

-                  break;

-               case 22:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAdd(22);

-                  break;

-               case 23:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddTwoStates(23, 24);

-                  break;

-               case 24:

-                  if (curChar == 46)

-                     jjCheckNAdd(25);

-                  break;

-               case 25:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAdd(25);

-                  break;

-               case 26:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  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 > 219)

-                     kind = 219;

-                  jjCheckNAdd(30);

-                  break;

-               case 31:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddStates(27, 29);

-                  break;

-               case 32:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAdd(32);

-                  break;

-               case 33:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddTwoStates(33, 34);

-                  break;

-               case 34:

-                  if (curChar == 46)

-                     jjCheckNAdd(35);

-                  break;

-               case 35:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAdd(35);

-                  break;

-               case 36:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddStates(30, 32);

-                  break;

-               case 37:

-                  if (curChar == 46)

-                     jjCheckNAdd(38);

-                  break;

-               case 38:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddTwoStates(38, 27);

-                  break;

-               case 39:

-                  if (curChar == 46)

-                     jjCheckNAddTwoStates(40, 41);

-                  break;

-               case 40:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAdd(40);

-                  break;

-               case 41:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  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 > 220)

-                     kind = 220;

-                  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 > 221)

-                     kind = 221;

-                  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 > 216)

-                     kind = 216;

-                  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 > 216)

-                     kind = 216;

-                  jjCheckNAdd(14);

-                  break;

-               case 16:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddStates(41, 43);

-                  break;

-               case 17:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddTwoStates(17, 18);

-                  break;

-               case 19:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  jjCheckNAddTwoStates(19, 20);

-                  break;

-               case 20:

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

-                     break;

-                  if (kind > 219)

-                     kind = 219;

-                  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 > 216)
+                     kind = 216;
+                  jjstateSet[jjnewStateCnt++] = 14;
+                  break;
+               case 15:
+                  if (curChar == 58)
+                     jjAddStates(7, 9);
+                  break;
+               case 17:
+                  if ((0x3ff001800000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjAddStates(16, 17);
+                  break;
+               case 18:
+                  if (curChar == 46)
+                     jjstateSet[jjnewStateCnt++] = 19;
+                  break;
+               case 20:
+                  if ((0x3ff001800000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjstateSet[jjnewStateCnt++] = 20;
+                  break;
+               case 21:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddStates(18, 24);
+                  break;
+               case 22:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAdd(22);
+                  break;
+               case 23:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddTwoStates(23, 24);
+                  break;
+               case 24:
+                  if (curChar == 46)
+                     jjCheckNAdd(25);
+                  break;
+               case 25:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAdd(25);
+                  break;
+               case 26:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  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 > 219)
+                     kind = 219;
+                  jjCheckNAdd(30);
+                  break;
+               case 31:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddStates(27, 29);
+                  break;
+               case 32:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAdd(32);
+                  break;
+               case 33:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddTwoStates(33, 34);
+                  break;
+               case 34:
+                  if (curChar == 46)
+                     jjCheckNAdd(35);
+                  break;
+               case 35:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAdd(35);
+                  break;
+               case 36:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddStates(30, 32);
+                  break;
+               case 37:
+                  if (curChar == 46)
+                     jjCheckNAdd(38);
+                  break;
+               case 38:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddTwoStates(38, 27);
+                  break;
+               case 39:
+                  if (curChar == 46)
+                     jjCheckNAddTwoStates(40, 41);
+                  break;
+               case 40:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAdd(40);
+                  break;
+               case 41:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  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 > 220)
+                     kind = 220;
+                  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 > 221)
+                     kind = 221;
+                  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 > 216)
+                     kind = 216;
+                  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 > 216)
+                     kind = 216;
+                  jjCheckNAdd(14);
+                  break;
+               case 16:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddStates(41, 43);
+                  break;
+               case 17:
+                  if ((0x7fffffe87ffffffL & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddTwoStates(17, 18);
+                  break;
+               case 19:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  jjCheckNAddTwoStates(19, 20);
+                  break;
+               case 20:
+                  if ((0x7fffffe87ffffffL & l) == 0L)
+                     break;
+                  if (kind > 219)
+                     kind = 219;
+                  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, };

-

-/** 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, };
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+   "DEFAULT",
+};
 static final long[] jjtoToken = {
    0xffffff8fffffff01L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x39ffffffL, 
-};

+};
 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) */