| /* 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 |
| * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 |
| * which accompanies this distribution. |
| * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| * and the Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * Mike Norman - June 10 2011, created DDL parser package |
| ******************************************************************************/ |
| package org.eclipse.persistence.tools.oracleddl.parser; |
| |
| //javase imports |
| import java.io.InputStream; |
| |
| //metadata imports |
| 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.NestedTableType; |
| 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.PLSQLPackageType; |
| import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLType; |
| 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.TableType; |
| 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.SIMPLE_INTEGER_TYPE; |
| import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.SMALLINT_TYPE; |
| import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.TIME_TYPE; |
| import static org.eclipse.persistence.tools.oracleddl.metadata.ScalarDatabaseTypeEnum.TIMESTAMP_TYPE; |
| |
| @SuppressWarnings("all") |
| public class DDLParser/*@bgen(jjtree)*/implements DDLParserTreeConstants, DDLParserConstants {/*@bgen(jjtree)*/ |
| protected static JJTDDLParserState jjtree = new JJTDDLParserState(); |
| protected DatabaseTypesRepository typesRepository = new DatabaseTypesRepository(); |
| |
| public DDLParser() { |
| super(); |
| } |
| |
| public void setTypesRepository(DatabaseTypesRepository typesRepository) { |
| this.typesRepository = typesRepository; |
| } |
| |
| // stripped-down version of PLSQL grammar: only parses package/top-level DDL specifications |
| |
| // PLSQLPackage at 'top-level' |
| final public PLSQLPackageType parsePLSQLPackage() throws ParseException { |
| /*@bgen(jjtree) parsePLSQLPackage */ |
| SimpleNode jjtn000 = new SimpleNode(JJTPARSEPLSQLPACKAGE); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));String schema = null; |
| String packageName = null; |
| PLSQLPackageType packageType = new PLSQLPackageType(); |
| try { |
| jj_consume_token(K_CREATE); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_OR: |
| jj_consume_token(K_OR); |
| jj_consume_token(K_REPLACE); |
| break; |
| default: |
| jj_la1[0] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_PACKAGE); |
| if (jj_2_1(2)) { |
| schema = OracleObjectName(); |
| jj_consume_token(O_DOT); |
| } else { |
| ; |
| } |
| packageName = OracleObjectName(); |
| if (schema != null) { |
| packageType.setPackageName(schema + "." + packageName); |
| } |
| else { |
| packageType.setPackageName(packageName); |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AUTHID: |
| jj_consume_token(K_AUTHID); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_CURRENT_USER: |
| case K_DEFINER: |
| 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_la1[1] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[2] = jj_gen; |
| ; |
| } |
| break; |
| default: |
| jj_la1[3] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AS: |
| case K_IS: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AS: |
| jj_consume_token(K_AS); |
| break; |
| case K_IS: |
| jj_consume_token(K_IS); |
| break; |
| default: |
| jj_la1[4] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[5] = jj_gen; |
| ; |
| } |
| label_1: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_CURSOR: |
| case K_FUNCTION: |
| case K_PRAGMA: |
| case K_PROCEDURE: |
| case K_TYPE: |
| case S_IDENTIFIER: |
| ; |
| break; |
| default: |
| jj_la1[6] = jj_gen; |
| break label_1; |
| } |
| packageDeclaration(packageType); |
| } |
| jj_consume_token(K_END); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| OracleObjectName(); |
| break; |
| default: |
| jj_la1[7] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_SEMICOLON); |
| jj_consume_token(0); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| typesRepository.setDatabaseType(packageName, packageType); |
| {if (true) return packageType;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| // procedure at 'top-level' |
| final public ProcedureType parseTopLevelProcedure() throws ParseException { |
| /*@bgen(jjtree) parseTopLevelProcedure */ |
| SimpleNode jjtn000 = new SimpleNode(JJTPARSETOPLEVELPROCEDURE); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));ProcedureType procedureType = null; |
| String schema = null; |
| String procedureName = null; |
| try { |
| jj_consume_token(K_CREATE); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_OR: |
| jj_consume_token(K_OR); |
| jj_consume_token(K_REPLACE); |
| break; |
| default: |
| jj_la1[8] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_PROCEDURE); |
| if (jj_2_2(2)) { |
| schema = OracleObjectName(); |
| jj_consume_token(O_DOT); |
| } else { |
| ; |
| } |
| procedureName = OracleObjectName(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| argumentList(); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[9] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AS: |
| case K_IS: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AS: |
| jj_consume_token(K_AS); |
| break; |
| case K_IS: |
| jj_consume_token(K_IS); |
| break; |
| default: |
| jj_la1[10] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[11] = jj_gen; |
| ; |
| } |
| skipToEnd(); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| procedureType = new ProcedureType(procedureName); |
| if (schema != null) { |
| procedureType.setSchema(schema); |
| } |
| typesRepository.setDatabaseType(procedureName, procedureType); |
| {if (true) return procedureType;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| // function at 'top-level' |
| final public FunctionType parseTopLevelFunction() throws ParseException { |
| /*@bgen(jjtree) parseTopLevelFunction */ |
| SimpleNode jjtn000 = new SimpleNode(JJTPARSETOPLEVELFUNCTION); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));FunctionType functionType = null; |
| String schema = null; |
| String functionName = null; |
| try { |
| jj_consume_token(K_CREATE); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_OR: |
| jj_consume_token(K_OR); |
| jj_consume_token(K_REPLACE); |
| break; |
| default: |
| jj_la1[12] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_FUNCTION); |
| if (jj_2_3(2)) { |
| schema = OracleObjectName(); |
| jj_consume_token(O_DOT); |
| } else { |
| ; |
| } |
| functionName = OracleObjectName(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| argumentList(); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[13] = jj_gen; |
| ; |
| } |
| functionReturnSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AS: |
| case K_IS: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AS: |
| jj_consume_token(K_AS); |
| break; |
| case K_IS: |
| jj_consume_token(K_IS); |
| break; |
| default: |
| jj_la1[14] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[15] = jj_gen; |
| ; |
| } |
| skipToEnd(); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| functionType = new FunctionType(functionName); |
| if (schema != null) { |
| functionType.setSchema(schema); |
| } |
| //TODO - figure out returnType |
| typesRepository.setDatabaseType(functionName, functionType); |
| {if (true) return functionType;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| // table at 'top-level' |
| final public TableType parseTable() throws ParseException { |
| /*@bgen(jjtree) parseTable */ |
| SimpleNode jjtn000 = new SimpleNode(JJTPARSETABLE); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));TableType tableType = null; |
| String schema = null; |
| String tableName = null; |
| try { |
| jj_consume_token(K_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_la1[16] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_TABLE); |
| if (jj_2_4(2)) { |
| schema = OracleObjectName(); |
| jj_consume_token(O_DOT); |
| } else { |
| ; |
| } |
| tableName = OracleObjectName(); |
| tableType = new TableType(tableName); |
| if (schema != null) { |
| tableType.setSchema(schema); |
| } |
| jj_consume_token(O_OPENPAREN); |
| columnDeclarations(tableType); |
| jj_consume_token(O_CLOSEPAREN); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_ON: |
| jj_consume_token(K_ON); |
| jj_consume_token(K_COMMIT); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_DELETE: |
| case K_PRESERVE: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_DELETE: |
| jj_consume_token(K_DELETE); |
| break; |
| case K_PRESERVE: |
| jj_consume_token(K_PRESERVE); |
| break; |
| default: |
| jj_la1[17] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[18] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_ROWS); |
| break; |
| default: |
| jj_la1[19] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_SEMICOLON); |
| label_2: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_ALTER: |
| ; |
| break; |
| default: |
| jj_la1[20] = jj_gen; |
| break label_2; |
| } |
| alterDeclaration(tableType); |
| jj_consume_token(O_SEMICOLON); |
| } |
| jj_consume_token(0); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| typesRepository.setDatabaseType(tableName, tableType); |
| {if (true) return tableType;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public SimpleNode alterDeclaration(TableType table) throws ParseException { |
| /*@bgen(jjtree) alterDeclaration */ |
| SimpleNode jjtn000 = new SimpleNode(JJTALTERDECLARATION); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1)); |
| try { |
| jj_consume_token(K_ALTER); |
| jj_consume_token(K_TABLE); |
| columnSpec(); |
| jj_consume_token(K_ADD); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_CONSTRAINT: |
| jj_consume_token(K_CONSTRAINT); |
| OracleObjectName(); |
| break; |
| default: |
| jj_la1[21] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_PRIMARY); |
| jj_consume_token(K_KEY); |
| jj_consume_token(O_OPENPAREN); |
| OracleObjectName(); |
| label_3: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| ; |
| break; |
| default: |
| jj_la1[22] = jj_gen; |
| break label_3; |
| } |
| jj_consume_token(O_COMMA); |
| OracleObjectName(); |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| jj_consume_token(K_ENABLE); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| Token first = jjtn000.jjtGetFirstToken(); |
| Token last = jjtn000.jjtGetLastToken(); |
| Token cur = first; |
| while (cur.kind != O_OPENPAREN) { |
| cur = cur.next; |
| } |
| cur = cur.next; |
| while (cur.kind != O_CLOSEPAREN) { |
| if (cur.kind == O_COMMA) { |
| cur = cur.next; |
| continue; |
| } |
| String str = cur.image; |
| if (str.startsWith("\u005c"")) { |
| str = str.substring(1, str.length()); |
| } |
| if (str.endsWith("\u005c"")) { |
| str = str.substring(0, str.length() - 1); |
| } |
| for (FieldType col : table.getColumns()) { |
| if (col.getFieldName().equals(str)) { |
| col.setPk(); |
| break; |
| } |
| } |
| cur = cur.next; |
| } |
| {if (true) return jjtn000;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| // type at 'top-level' |
| final public CompositeDatabaseType parseType() throws ParseException { |
| /*@bgen(jjtree) parseType */ |
| SimpleNode jjtn000 = new SimpleNode(JJTPARSETYPE); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));CompositeDatabaseType databaseType = null; |
| String schema = null; |
| String typeName = null; |
| boolean varray = false; |
| boolean nestedTable = false; |
| try { |
| jj_consume_token(K_CREATE); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_OR: |
| jj_consume_token(K_OR); |
| jj_consume_token(K_REPLACE); |
| break; |
| default: |
| jj_la1[23] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_TYPE); |
| if (jj_2_5(2)) { |
| schema = OracleObjectName(); |
| jj_consume_token(O_DOT); |
| } else { |
| ; |
| } |
| typeName = OracleObjectName(); |
| jj_consume_token(K_AS); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_OBJECT: |
| case K_TABLE: |
| 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); |
| jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| jj_consume_token(K_OF); |
| databaseType = new VArrayType(typeName); |
| if (schema != null) { |
| ((VArrayType)databaseType).setSchema(schema); |
| } |
| columnTypeSpec(databaseType); |
| break; |
| case K_TABLE: |
| jj_consume_token(K_TABLE); |
| jj_consume_token(K_OF); |
| databaseType = new NestedTableType(typeName); |
| if (schema != null) { |
| ((NestedTableType)databaseType).setSchema(schema); |
| } |
| columnTypeSpec(databaseType); |
| break; |
| default: |
| jj_la1[24] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[25] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_SEMICOLON: |
| jj_consume_token(O_SEMICOLON); |
| break; |
| default: |
| jj_la1[26] = jj_gen; |
| ; |
| } |
| jj_consume_token(0); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| typesRepository.setDatabaseType(typeName, databaseType); |
| {if (true) return databaseType;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public void columnDeclarations(CompositeDatabaseType enclosingType) throws ParseException { |
| columnDeclaration(enclosingType); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| jj_consume_token(O_COMMA); |
| columnDeclarations(enclosingType); |
| break; |
| default: |
| jj_la1[27] = jj_gen; |
| ; |
| } |
| } |
| |
| 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(); |
| column = new FieldType(s); |
| if (enclosingType != null) { |
| enclosingType.addCompositeType(column); |
| } |
| columnType = columnTypeSpec(enclosingType); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOT: |
| jj_consume_token(K_NOT); |
| jj_consume_token(K_NULL); |
| jj_consume_token(K_ENABLE); |
| notNull = true; |
| break; |
| default: |
| jj_la1[28] = jj_gen; |
| ; |
| } |
| column.setDataType(columnType); |
| if (notNull) { |
| column.setNotNull(); |
| } |
| } |
| |
| final public DatabaseType columnTypeSpec(CompositeDatabaseType enclosingType) throws ParseException { |
| /*@bgen(jjtree) columnTypeSpec */ |
| SimpleNode jjtn000 = new SimpleNode(JJTCOLUMNTYPESPEC); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));String s = null; |
| Token t = null; |
| DatabaseType dt = null; |
| try { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_BFILE: |
| case K_BINARY_DOUBLE: |
| case K_BINARY_FLOAT: |
| case K_BINARY_INTEGER: |
| case K_BLOB: |
| case K_BOOLEAN: |
| case K_CHAR: |
| case K_CHARACTER: |
| case K_CLOB: |
| case K_DATE: |
| case K_DEC: |
| case K_DECIMAL: |
| case K_DOUBLE: |
| case K_FLOAT: |
| case K_INT: |
| case K_INTEGER: |
| case K_INTERVAL: |
| case K_LONG: |
| case K_MLSLABEL: |
| case K_NATIONAL: |
| case K_NATURAL: |
| case K_NCHAR: |
| case K_NCLOB: |
| case K_NUMBER: |
| case K_NUMERIC: |
| case K_NVARCHAR2: |
| case K_NVARCHAR: |
| case K_PLS_INTEGER: |
| case K_POSITIVE: |
| case K_RAW: |
| case K_REAL: |
| case K_ROWID: |
| case K_SIMPLE_INTEGER: |
| case K_SMALLINT: |
| case K_TIME: |
| case K_TIMESTAMP: |
| case K_UROWID: |
| case K_VARCHAR2: |
| case K_VARCHAR: |
| dt = datatype(); |
| break; |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| s = columnSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| t = jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[29] = jj_gen; |
| ; |
| } |
| break; |
| default: |
| jj_la1[30] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| if (s != null) { |
| if (t != null) { |
| Long size = Long.decode(t.image); |
| dt = new UnresolvedSizedType(s, size); |
| } |
| else { |
| dt = new UnresolvedType(s); |
| } |
| } |
| {if (true) return dt;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public void packageDeclaration(PLSQLPackageType packageType) throws ParseException { |
| if (jj_2_6(2)) { |
| variableDeclaration(packageType); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_TYPE: |
| typeDeclaration(packageType); |
| break; |
| case K_CURSOR: |
| cursorDeclaration(packageType); |
| break; |
| case K_PROCEDURE: |
| procedureSpec(packageType); |
| break; |
| case K_FUNCTION: |
| functionSpec(packageType); |
| break; |
| case S_IDENTIFIER: |
| exceptionDeclaration(packageType); |
| break; |
| case K_PRAGMA: |
| pragmaDeclaration(packageType); |
| break; |
| default: |
| jj_la1[31] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| } |
| |
| final public void variableDeclaration(PLSQLPackageType packageType) throws ParseException { |
| /*@bgen(jjtree) variableDeclaration */ |
| SimpleNode jjtn000 = new SimpleNode(JJTVARIABLEDECLARATION); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1)); |
| try { |
| jj_consume_token(S_IDENTIFIER); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_CONSTANT: |
| jj_consume_token(K_CONSTANT); |
| break; |
| default: |
| jj_la1[32] = jj_gen; |
| ; |
| } |
| typeSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOT: |
| jj_consume_token(K_NOT); |
| jj_consume_token(K_NULL); |
| break; |
| default: |
| jj_la1[33] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_DEFAULT: |
| case O_ASSIGN: |
| variableDefaultAssignment(); |
| break; |
| default: |
| jj_la1[34] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_SEMICOLON); |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| } |
| |
| final public void variableDefaultAssignment() throws ParseException { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_ASSIGN: |
| jj_consume_token(O_ASSIGN); |
| break; |
| case K_DEFAULT: |
| jj_consume_token(K_DEFAULT); |
| break; |
| default: |
| jj_la1[35] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| skipToSemiColon(); |
| } |
| |
| final public DatabaseType datatype() throws ParseException { |
| /*@bgen(jjtree) datatype */ |
| SimpleNode jjtn000 = new SimpleNode(JJTDATATYPE); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));Token t = null; |
| DatabaseType dt = null; |
| Token precision = null; |
| Long sl; |
| Long pl; |
| Token scale = null; |
| try { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_BINARY_INTEGER: |
| jj_consume_token(K_BINARY_INTEGER); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return BINARY_INTEGER_TYPE;} |
| break; |
| case K_BINARY_FLOAT: |
| jj_consume_token(K_BINARY_FLOAT); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return BINARY_FLOAT_TYPE;} |
| break; |
| case K_BINARY_DOUBLE: |
| jj_consume_token(K_BINARY_DOUBLE); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return BINARY_DOUBLE_TYPE;} |
| break; |
| case K_NATURAL: |
| jj_consume_token(K_NATURAL); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return NATURAL_TYPE;} |
| break; |
| case K_POSITIVE: |
| jj_consume_token(K_POSITIVE); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return POSITIVE_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_la1[36] = jj_gen; |
| 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_la1[37] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[38] = jj_gen; |
| ; |
| } |
| label_4: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| ; |
| break; |
| default: |
| jj_la1[39] = jj_gen; |
| break label_4; |
| } |
| jj_consume_token(O_COMMA); |
| scale = jj_consume_token(S_NUMBER); |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[40] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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); |
| } |
| } |
| } |
| 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: |
| jj_la1[41] = jj_gen; |
| ; |
| } |
| 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_la1[42] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[43] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return BOOLEAN_TYPE;} |
| break; |
| case K_DATE: |
| jj_consume_token(K_DATE); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return DATE_TYPE;} |
| break; |
| default: |
| jj_la1[82] = jj_gen; |
| if (jj_2_15(2)) { |
| jj_consume_token(K_INTERVAL); |
| jj_consume_token(K_DAY); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| precision = jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[44] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_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: |
| jj_la1[45] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| if (precision == null) { |
| dt = new IntervalDayToSecond(); |
| } |
| else { |
| pl = Long.decode(precision.image); |
| if (scale == null) { |
| dt = new IntervalDayToSecond(pl); |
| } |
| else { |
| sl = Long.decode(scale.image); |
| dt = new IntervalDayToSecond(pl, sl); |
| } |
| } |
| {if (true) return dt;} |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_INTERVAL: |
| jj_consume_token(K_INTERVAL); |
| jj_consume_token(K_YEAR); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[46] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_TO); |
| jj_consume_token(K_MONTH); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| if (precision == null) { |
| dt = new IntervalYearToMonth(); |
| } |
| else { |
| pl = Long.decode(precision.image); |
| dt = new IntervalYearToMonth(pl); |
| } |
| {if (true) return dt;} |
| break; |
| case K_TIME: |
| case K_TIMESTAMP: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_TIME: |
| jj_consume_token(K_TIME); |
| {if (true) return TIME_TYPE;} |
| break; |
| case K_TIMESTAMP: |
| jj_consume_token(K_TIMESTAMP); |
| {if (true) return TIMESTAMP_TYPE;} |
| break; |
| default: |
| jj_la1[47] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| 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_la1[48] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_WITH: |
| jj_consume_token(K_WITH); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_LOCAL: |
| jj_consume_token(K_LOCAL); |
| break; |
| default: |
| jj_la1[49] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_TIME); |
| jj_consume_token(K_ZONE); |
| break; |
| default: |
| jj_la1[50] = jj_gen; |
| ; |
| } |
| break; |
| case K_INTEGER: |
| jj_consume_token(K_INTEGER); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return INTEGER_TYPE;} |
| break; |
| case K_INT: |
| jj_consume_token(K_INT); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return INTEGER_TYPE;} |
| break; |
| case K_SMALLINT: |
| jj_consume_token(K_SMALLINT); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {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: |
| jj_la1[51] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return new RealType();} |
| break; |
| case K_MLSLABEL: |
| jj_consume_token(K_MLSLABEL); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return MLSLABEL_TYPE;} |
| break; |
| case K_PLS_INTEGER: |
| jj_consume_token(K_PLS_INTEGER); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return PLS_INTEGER_TYPE;} |
| break; |
| case K_SIMPLE_INTEGER: |
| jj_consume_token(K_SIMPLE_INTEGER); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return SIMPLE_INTEGER_TYPE;} |
| break; |
| case K_BLOB: |
| jj_consume_token(K_BLOB); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return new BlobType();} |
| break; |
| case K_NCLOB: |
| jj_consume_token(K_NCLOB); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return new NClobType();} |
| break; |
| case K_BFILE: |
| jj_consume_token(K_BFILE); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return BFILE_TYPE;} |
| break; |
| case K_ROWID: |
| jj_consume_token(K_ROWID); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {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: |
| jj_la1[52] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {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: |
| jj_la1[53] = jj_gen; |
| ; |
| } |
| 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_la1[54] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[55] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[56] = jj_gen; |
| ; |
| } |
| if (jj_2_8(2)) { |
| jj_consume_token(K_CHARACTER); |
| jj_consume_token(K_SET); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| if (jj_2_7(2)) { |
| jj_consume_token(S_IDENTIFIER); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| columnSpec(); |
| jj_consume_token(K_CHARSET); |
| break; |
| default: |
| jj_la1[57] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| break; |
| default: |
| jj_la1[58] = jj_gen; |
| ; |
| } |
| } else { |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[59] = jj_gen; |
| ; |
| } |
| 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_la1[60] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[61] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[62] = jj_gen; |
| ; |
| } |
| if (jj_2_10(2)) { |
| jj_consume_token(K_CHARACTER); |
| jj_consume_token(K_SET); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| if (jj_2_9(2)) { |
| jj_consume_token(S_IDENTIFIER); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| columnSpec(); |
| jj_consume_token(K_CHARSET); |
| break; |
| default: |
| jj_la1[63] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| break; |
| default: |
| jj_la1[64] = jj_gen; |
| ; |
| } |
| } else { |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[65] = jj_gen; |
| ; |
| } |
| 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_la1[66] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[67] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[68] = jj_gen; |
| ; |
| } |
| if (jj_2_12(2)) { |
| jj_consume_token(K_CHARACTER); |
| jj_consume_token(K_SET); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| if (jj_2_11(2)) { |
| jj_consume_token(S_IDENTIFIER); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| columnSpec(); |
| jj_consume_token(K_CHARSET); |
| break; |
| default: |
| jj_la1[69] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| break; |
| default: |
| jj_la1[70] = jj_gen; |
| ; |
| } |
| } else { |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[71] = jj_gen; |
| ; |
| } |
| 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_la1[72] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[73] = jj_gen; |
| ; |
| } |
| 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_la1[74] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[75] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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: |
| jj_la1[76] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| 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_la1[77] = jj_gen; |
| 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: |
| jj_la1[78] = jj_gen; |
| ; |
| } |
| 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_la1[79] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| if (t == null) { |
| if (precision == null) { |
| {if (true) return new NCharType();} |
| } |
| else { |
| pl = Long.decode(precision.image); |
| {if (true) return new NCharType(pl);} |
| } |
| } |
| else { |
| // ANSI syntax for NVARCHAR2 |
| if (precision == null) { |
| {if (true) return new NVarChar2Type();} |
| } |
| else { |
| pl = Long.decode(precision.image); |
| {if (true) return new NVarChar2Type(pl);} |
| } |
| } |
| break; |
| case K_CLOB: |
| jj_consume_token(K_CLOB); |
| if (jj_2_14(2)) { |
| jj_consume_token(K_CHARACTER); |
| jj_consume_token(K_SET); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| if (jj_2_13(2)) { |
| jj_consume_token(S_IDENTIFIER); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| columnSpec(); |
| jj_consume_token(K_CHARSET); |
| break; |
| default: |
| jj_la1[80] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| break; |
| default: |
| jj_la1[81] = jj_gen; |
| ; |
| } |
| } else { |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| {if (true) return new ClobType();} |
| break; |
| default: |
| jj_la1[83] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| } |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public String typeSpec() throws ParseException { |
| /*@bgen(jjtree) typeSpec */ |
| SimpleNode jjtn000 = new SimpleNode(JJTTYPESPEC); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));String s = null; |
| try { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_BFILE: |
| case K_BINARY_DOUBLE: |
| case K_BINARY_FLOAT: |
| case K_BINARY_INTEGER: |
| case K_BLOB: |
| case K_BOOLEAN: |
| case K_CHAR: |
| case K_CHARACTER: |
| case K_CLOB: |
| case K_DATE: |
| case K_DEC: |
| case K_DECIMAL: |
| case K_DOUBLE: |
| case K_FLOAT: |
| case K_INT: |
| case K_INTEGER: |
| case K_INTERVAL: |
| case K_LONG: |
| case K_MLSLABEL: |
| case K_NATIONAL: |
| case K_NATURAL: |
| case K_NCHAR: |
| case K_NCLOB: |
| case K_NUMBER: |
| case K_NUMERIC: |
| case K_NVARCHAR2: |
| case K_NVARCHAR: |
| case K_PLS_INTEGER: |
| case K_POSITIVE: |
| case K_RAW: |
| case K_REAL: |
| case K_ROWID: |
| case K_SIMPLE_INTEGER: |
| case K_SMALLINT: |
| case K_TIME: |
| case K_TIMESTAMP: |
| case K_UROWID: |
| case K_VARCHAR2: |
| case K_VARCHAR: |
| datatype(); |
| break; |
| default: |
| jj_la1[85] = jj_gen; |
| if (jj_2_16(3)) { |
| columnSpec(); |
| jj_consume_token(K_TYPE2); |
| } else if (jj_2_17(3)) { |
| tableSpec(); |
| jj_consume_token(K_ROWTYPE); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| typeName(); |
| 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_la1[84] = jj_gen; |
| ; |
| } |
| break; |
| default: |
| jj_la1[86] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| Token first = jjtn000.jjtGetFirstToken(); |
| Token last = jjtn000.jjtGetLastToken(); |
| Token cur = first; |
| StringBuilder sb = new StringBuilder(); |
| sb.append(first.image); |
| while (cur != last) { |
| cur = cur.next; |
| sb.append(cur.image); |
| } |
| jjtn000.jjtSetValue(sb.toString()); |
| {if (true) return sb.toString();} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| 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: |
| jj_la1[87] = jj_gen; |
| ; |
| } |
| break; |
| default: |
| jj_la1[88] = jj_gen; |
| ; |
| } |
| 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: |
| jj_la1[89] = jj_gen; |
| ; |
| } |
| break; |
| default: |
| jj_la1[90] = jj_gen; |
| ; |
| } |
| {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: |
| jj_la1[91] = jj_gen; |
| ; |
| } |
| {if (true) return token.image;} |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public void typeDeclaration(PLSQLPackageType packageType) throws ParseException { |
| String s = null; |
| jj_consume_token(K_TYPE); |
| s = typeName(); |
| jj_consume_token(K_IS); |
| aTypeDeclaration(packageType); |
| jj_consume_token(O_SEMICOLON); |
| } |
| |
| final public void aTypeDeclaration(PLSQLPackageType packageType) throws ParseException { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_RECORD: |
| recordDeclaration(packageType); |
| break; |
| case K_SUBTYPE: |
| subtypeDeclaration(packageType); |
| break; |
| case K_TABLE: |
| plsqlTableDeclaration(packageType); |
| break; |
| case K_VARRAY: |
| case K_VARYING: |
| varrayDeclaration(packageType); |
| break; |
| case K_REF: |
| refCursorDeclaration(packageType); |
| break; |
| default: |
| jj_la1[92] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| |
| final public void recordDeclaration(PLSQLPackageType packageType) throws ParseException { |
| jj_consume_token(K_RECORD); |
| jj_consume_token(O_OPENPAREN); |
| fieldDeclarations(); |
| jj_consume_token(O_CLOSEPAREN); |
| } |
| |
| final public void fieldDeclarations() throws ParseException { |
| fieldDeclaration(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| jj_consume_token(O_COMMA); |
| fieldDeclarations(); |
| break; |
| default: |
| jj_la1[93] = jj_gen; |
| ; |
| } |
| } |
| |
| final public SimpleNode fieldDeclaration() throws ParseException { |
| /*@bgen(jjtree) fieldDeclaration */ |
| SimpleNode jjtn000 = new SimpleNode(JJTFIELDDECLARATION); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));String s = null; |
| try { |
| s = typeName(); |
| typeSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOT: |
| jj_consume_token(K_NOT); |
| jj_consume_token(K_NULL); |
| break; |
| default: |
| jj_la1[94] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_DEFAULT: |
| case O_ASSIGN: |
| variableDefaultAssignment(); |
| break; |
| default: |
| jj_la1[95] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| jjtn000.jjtSetValue(s); |
| {if (true) return jjtn000;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public void subtypeDeclaration(PLSQLPackageType packageType) throws ParseException { |
| jj_consume_token(K_SUBTYPE); |
| OracleObjectName(); |
| jj_consume_token(K_IS); |
| datatype(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_RANGE: |
| jj_consume_token(K_RANGE); |
| jj_consume_token(S_NUMBER); |
| jj_consume_token(O_DOUBLEDOT); |
| jj_consume_token(S_NUMBER); |
| break; |
| case S_NUMBER: |
| jj_consume_token(S_NUMBER); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| jj_consume_token(O_COMMA); |
| jj_consume_token(S_NUMBER); |
| break; |
| default: |
| jj_la1[96] = jj_gen; |
| ; |
| } |
| break; |
| case K_CHARACTER: |
| jj_consume_token(K_CHARACTER); |
| jj_consume_token(K_SET); |
| jj_consume_token(S_IDENTIFIER); |
| break; |
| default: |
| jj_la1[97] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOT: |
| jj_consume_token(K_NOT); |
| jj_consume_token(K_NULL); |
| break; |
| default: |
| jj_la1[98] = jj_gen; |
| ; |
| } |
| } |
| |
| final public void plsqlTableDeclaration(PLSQLPackageType packageType) throws ParseException { |
| jj_consume_token(K_TABLE); |
| jj_consume_token(K_OF); |
| typeSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOT: |
| jj_consume_token(K_NOT); |
| jj_consume_token(K_NULL); |
| break; |
| default: |
| jj_la1[99] = jj_gen; |
| ; |
| } |
| jj_consume_token(K_INDEX); |
| jj_consume_token(K_BY); |
| plsqlTableIndexByDeclaration(packageType); |
| } |
| |
| final public void plsqlTableIndexByDeclaration(PLSQLPackageType packageType) throws ParseException { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_PLS_INTEGER: |
| jj_consume_token(K_PLS_INTEGER); |
| break; |
| case K_BINARY_INTEGER: |
| jj_consume_token(K_BINARY_INTEGER); |
| break; |
| case K_VARCHAR2: |
| jj_consume_token(K_VARCHAR2); |
| jj_consume_token(O_OPENPAREN); |
| jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| case K_STRING: |
| jj_consume_token(K_STRING); |
| jj_consume_token(O_OPENPAREN); |
| jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[100] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| |
| 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_la1[101] = jj_gen; |
| 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(K_OF); |
| datatype(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOT: |
| jj_consume_token(K_NOT); |
| jj_consume_token(K_NULL); |
| break; |
| default: |
| jj_la1[102] = jj_gen; |
| ; |
| } |
| } |
| |
| final public void refCursorDeclaration(PLSQLPackageType packageType) throws ParseException { |
| String s = null; |
| jj_consume_token(K_REF); |
| jj_consume_token(K_CURSOR); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_RETURN: |
| refCursorTypeSpec(packageType); |
| break; |
| default: |
| jj_la1[103] = jj_gen; |
| ; |
| } |
| } |
| |
| final public void refCursorTypeSpec(PLSQLPackageType packageType) throws ParseException { |
| String s = null; |
| jj_consume_token(K_RETURN); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| case S_QUOTED_IDENTIFIER: |
| if (jj_2_18(3)) { |
| s = columnSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_TYPE2: |
| jj_consume_token(K_TYPE2); |
| break; |
| default: |
| jj_la1[104] = jj_gen; |
| ; |
| } |
| } else if (jj_2_19(3)) { |
| s = tableSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_ROWTYPE: |
| jj_consume_token(K_ROWTYPE); |
| break; |
| default: |
| jj_la1[105] = jj_gen; |
| ; |
| } |
| } else { |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[106] = jj_gen; |
| ; |
| } |
| } |
| |
| final public void cursorDeclaration(PLSQLPackageType packageType) throws ParseException { |
| Token t = null; |
| jj_consume_token(K_CURSOR); |
| t = jj_consume_token(S_IDENTIFIER); |
| jj_consume_token(O_SEMICOLON); |
| } |
| |
| // Procedure Specification |
| final public void procedureSpec(PLSQLPackageType packageType) throws ParseException { |
| Token t = null; |
| jj_consume_token(K_PROCEDURE); |
| t = jj_consume_token(S_IDENTIFIER); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| argumentList(); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[107] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_SEMICOLON); |
| } |
| |
| final public void argumentList() throws ParseException { |
| argument(); |
| label_5: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| ; |
| break; |
| default: |
| jj_la1[108] = jj_gen; |
| break label_5; |
| } |
| jj_consume_token(O_COMMA); |
| argument(); |
| } |
| } |
| |
| // Function Specification |
| final public void functionSpec(PLSQLPackageType packageType) throws ParseException { |
| Token t = null; |
| jj_consume_token(K_FUNCTION); |
| t = jj_consume_token(S_IDENTIFIER); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_OPENPAREN: |
| jj_consume_token(O_OPENPAREN); |
| argumentList(); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[109] = jj_gen; |
| ; |
| } |
| 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_la1[110] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[111] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_SEMICOLON); |
| } |
| |
| final public SimpleNode functionReturnSpec() throws ParseException { |
| /*@bgen(jjtree) functionReturnSpec */ |
| SimpleNode jjtn000 = new SimpleNode(JJTFUNCTIONRETURNSPEC); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1)); |
| try { |
| jj_consume_token(K_RETURN); |
| typeSpec(); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| jjtn000.jjtSetValue("RETURN"); |
| {if (true) return jjtn000;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public SimpleNode argument() throws ParseException { |
| /*@bgen(jjtree) argument */ |
| SimpleNode jjtn000 = new SimpleNode(JJTARGUMENT); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1));Token t = null; |
| String direction = null; |
| try { |
| t = jj_consume_token(S_IDENTIFIER); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_IN: |
| case K_OUT: |
| direction = direction(); |
| break; |
| default: |
| jj_la1[112] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NOCOPY: |
| jj_consume_token(K_NOCOPY); |
| break; |
| default: |
| jj_la1[113] = jj_gen; |
| ; |
| } |
| typeSpec(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_DEFAULT: |
| case O_ASSIGN: |
| argumentDefaultAssignment(); |
| break; |
| default: |
| jj_la1[114] = jj_gen; |
| ; |
| } |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| if (direction != null) { |
| jjtn000.jjtSetValue(direction + " " + t.image); |
| } |
| else { |
| // by default, arguments are IN |
| jjtn000.jjtSetValue("IN " + t.image); |
| } |
| {if (true) return jjtn000;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public String direction() throws ParseException { |
| if (jj_2_20(2)) { |
| jj_consume_token(K_IN); |
| jj_consume_token(K_OUT); |
| {if (true) return "IN OUT";} |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_IN: |
| jj_consume_token(K_IN); |
| {if (true) return "IN";} |
| break; |
| case K_OUT: |
| jj_consume_token(K_OUT); |
| {if (true) return "OUT";} |
| break; |
| default: |
| jj_la1[115] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public SimpleNode argumentDefaultAssignment() throws ParseException { |
| /*@bgen(jjtree) argumentDefaultAssignment */ |
| SimpleNode jjtn000 = new SimpleNode(JJTARGUMENTDEFAULTASSIGNMENT); |
| boolean jjtc000 = true; |
| jjtree.openNodeScope(jjtn000); |
| jjtn000.jjtSetFirstToken(getToken(1)); |
| try { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_ASSIGN: |
| jj_consume_token(O_ASSIGN); |
| break; |
| case K_DEFAULT: |
| jj_consume_token(K_DEFAULT); |
| break; |
| default: |
| jj_la1[116] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| skipToNextArg(); |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtc000 = false; |
| jjtn000.jjtSetLastToken(getToken(0)); |
| jjtn000.jjtSetValue(" (optional)"); |
| {if (true) return jjtn000;} |
| } catch (Throwable jjte000) { |
| if (jjtc000) { |
| jjtree.clearNodeScope(jjtn000); |
| jjtc000 = false; |
| } else { |
| jjtree.popNode(); |
| } |
| if (jjte000 instanceof RuntimeException) { |
| {if (true) throw (RuntimeException)jjte000;} |
| } |
| if (jjte000 instanceof ParseException) { |
| {if (true) throw (ParseException)jjte000;} |
| } |
| {if (true) throw (Error)jjte000;} |
| } finally { |
| if (jjtc000) { |
| jjtree.closeNodeScope(jjtn000, true); |
| jjtn000.jjtSetLastToken(getToken(0)); |
| } |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public void exceptionDeclaration(PLSQLPackageType packageType) throws ParseException { |
| jj_consume_token(S_IDENTIFIER); |
| jj_consume_token(K_EXCEPTION); |
| jj_consume_token(O_SEMICOLON); |
| } |
| |
| final public void pragmaDeclaration(PLSQLPackageType packageType) throws ParseException { |
| jj_consume_token(K_PRAGMA); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AUTONOMOUS_TRANSACTION: |
| case K_EXCEPTION_INIT: |
| case K_INLINE: |
| case K_RESTRICT_REFERENCES: |
| case K_SERIALLY_REUSABLE: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_AUTONOMOUS_TRANSACTION: |
| jj_consume_token(K_AUTONOMOUS_TRANSACTION); |
| break; |
| case K_EXCEPTION_INIT: |
| jj_consume_token(K_EXCEPTION_INIT); |
| jj_consume_token(O_OPENPAREN); |
| jj_consume_token(S_IDENTIFIER); |
| jj_consume_token(O_COMMA); |
| jj_consume_token(S_NUMBER); |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| case K_SERIALLY_REUSABLE: |
| jj_consume_token(K_SERIALLY_REUSABLE); |
| break; |
| case K_INLINE: |
| jj_consume_token(K_INLINE); |
| jj_consume_token(O_OPENPAREN); |
| jj_consume_token(S_IDENTIFIER); |
| jj_consume_token(O_COMMA); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_NO: |
| case K_YES: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_YES: |
| jj_consume_token(K_YES); |
| break; |
| case K_NO: |
| jj_consume_token(K_NO); |
| break; |
| default: |
| jj_la1[117] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[118] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| case K_RESTRICT_REFERENCES: |
| jj_consume_token(K_RESTRICT_REFERENCES); |
| jj_consume_token(O_OPENPAREN); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_DEFAULT: |
| case S_IDENTIFIER: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| jj_consume_token(S_IDENTIFIER); |
| break; |
| case K_DEFAULT: |
| jj_consume_token(K_DEFAULT); |
| break; |
| default: |
| jj_la1[119] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[120] = jj_gen; |
| ; |
| } |
| label_6: |
| while (true) { |
| jj_consume_token(O_COMMA); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_RNDS: |
| case K_RNPS: |
| case K_TRUST: |
| case K_WNDS: |
| case K_WNPS: |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case K_RNDS: |
| jj_consume_token(K_RNDS); |
| break; |
| case K_WNDS: |
| jj_consume_token(K_WNDS); |
| break; |
| case K_RNPS: |
| jj_consume_token(K_RNPS); |
| break; |
| case K_WNPS: |
| jj_consume_token(K_WNPS); |
| break; |
| case K_TRUST: |
| jj_consume_token(K_TRUST); |
| break; |
| default: |
| jj_la1[121] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[122] = jj_gen; |
| ; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case O_COMMA: |
| ; |
| break; |
| default: |
| jj_la1[123] = jj_gen; |
| break label_6; |
| } |
| } |
| jj_consume_token(O_CLOSEPAREN); |
| break; |
| default: |
| jj_la1[124] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| break; |
| default: |
| jj_la1[125] = jj_gen; |
| ; |
| } |
| jj_consume_token(O_SEMICOLON); |
| } |
| |
| final public String OracleObjectName() throws ParseException { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case S_IDENTIFIER: |
| jj_consume_token(S_IDENTIFIER); |
| {if (true) return token.image;} |
| break; |
| case S_QUOTED_IDENTIFIER: |
| jj_consume_token(S_QUOTED_IDENTIFIER); |
| String s = token.image; |
| {if (true) return s.substring(1, s.length() - 1);} // strip-off quotes |
| |
| break; |
| default: |
| jj_la1[126] = jj_gen; |
| jj_consume_token(-1); |
| throw new ParseException(); |
| } |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public void skipToSemiColon() throws ParseException { |
| Token t = getNextToken(); |
| while (t.kind != O_SEMICOLON) { |
| t = getNextToken(); |
| } |
| token_source.input_stream.backup(1); |
| } |
| |
| final public void 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; } |
| finally { jj_save(0, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(1, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(2, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(3, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(4, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(5, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(6, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(7, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(8, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(9, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(10, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(11, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(12, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(13, xla); } |
| } |
| |
| 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; } |
| finally { jj_save(14, xla); } |
| } |
| |
| private boolean jj_2_16(int xla) { |
| jj_la = xla; jj_lastpos = jj_scanpos = token; |
| try { return !jj_3_16(); } |
| catch(LookaheadSuccess ls) { return true; } |
| finally { jj_save(15, xla); } |
| } |
| |
| private boolean jj_2_17(int xla) { |
| jj_la = xla; jj_lastpos = jj_scanpos = token; |
| try { return !jj_3_17(); } |
| catch(LookaheadSuccess ls) { return true; } |
| finally { jj_save(16, xla); } |
| } |
| |
| private boolean jj_2_18(int xla) { |
| jj_la = xla; jj_lastpos = jj_scanpos = token; |
| try { return !jj_3_18(); } |
| catch(LookaheadSuccess ls) { return true; } |
| finally { jj_save(17, xla); } |
| } |
| |
| private boolean jj_2_19(int xla) { |
| jj_la = xla; jj_lastpos = jj_scanpos = token; |
| try { return !jj_3_19(); } |
| catch(LookaheadSuccess ls) { return true; } |
| finally { jj_save(18, xla); } |
| } |
| |
| private boolean jj_2_20(int xla) { |
| jj_la = xla; jj_lastpos = jj_scanpos = token; |
| try { return !jj_3_20(); } |
| catch(LookaheadSuccess ls) { return true; } |
| finally { jj_save(19, xla); } |
| } |
| |
| private boolean jj_3R_33() { |
| if (jj_scan_token(K_INT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_32() { |
| if (jj_scan_token(K_INTEGER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_55() { |
| if (jj_scan_token(K_TIME)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_20() { |
| if (jj_scan_token(K_IN)) return true; |
| if (jj_scan_token(K_OUT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_31() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_55()) { |
| jj_scanpos = xsp; |
| if (jj_3R_56()) return true; |
| } |
| return false; |
| } |
| |
| private boolean jj_3R_30() { |
| if (jj_scan_token(K_INTERVAL)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_4() { |
| if (jj_3R_7()) return true; |
| if (jj_scan_token(O_DOT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_14() { |
| if (jj_scan_token(K_CHARACTER)) return true; |
| if (jj_scan_token(K_SET)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_17() { |
| if (jj_3R_19()) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_49() { |
| if (jj_scan_token(K_CHARACTER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_17() { |
| if (jj_3R_10()) return true; |
| if (jj_scan_token(K_ROWTYPE)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_16() { |
| if (jj_3R_9()) return true; |
| if (jj_scan_token(K_TYPE2)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_16() { |
| if (jj_3R_18()) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_25() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_scan_token(116)) { |
| jj_scanpos = xsp; |
| if (jj_scan_token(117)) { |
| jj_scanpos = xsp; |
| if (jj_scan_token(48)) { |
| jj_scanpos = xsp; |
| if (jj_scan_token(47)) return true; |
| } |
| } |
| } |
| return false; |
| } |
| |
| private boolean jj_3_7() { |
| if (jj_scan_token(S_IDENTIFIER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_24() { |
| if (jj_scan_token(K_POSITIVE)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_23() { |
| if (jj_scan_token(K_NATURAL)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_13() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_16()) { |
| jj_scanpos = xsp; |
| if (jj_3_16()) { |
| jj_scanpos = xsp; |
| if (jj_3_17()) { |
| jj_scanpos = xsp; |
| if (jj_3R_17()) return true; |
| } |
| } |
| } |
| return false; |
| } |
| |
| private boolean jj_3R_22() { |
| if (jj_scan_token(K_BINARY_DOUBLE)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_12() { |
| if (jj_scan_token(K_CHARACTER)) return true; |
| if (jj_scan_token(K_SET)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_21() { |
| if (jj_scan_token(K_BINARY_FLOAT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_54() { |
| if (jj_scan_token(K_CLOB)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_18() { |
| Token xsp; |
| xsp = jj_scanpos; |
| 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_3_15()) { |
| 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()) return true; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| private boolean jj_3R_20() { |
| if (jj_scan_token(K_BINARY_INTEGER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_48() { |
| if (jj_scan_token(K_VARCHAR2)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_15() { |
| if (jj_scan_token(K_INTERVAL)) return true; |
| if (jj_scan_token(K_DAY)) 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_3_10() { |
| if (jj_scan_token(K_CHARACTER)) return true; |
| if (jj_scan_token(K_SET)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_47() { |
| if (jj_scan_token(K_VARCHAR)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_3() { |
| if (jj_3R_7()) return true; |
| if (jj_scan_token(O_DOT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_27() { |
| if (jj_scan_token(K_RAW)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_8() { |
| if (jj_scan_token(S_IDENTIFIER)) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_scan_token(35)) jj_scanpos = xsp; |
| if (jj_3R_13()) return true; |
| return false; |
| } |
| |
| private boolean jj_3_5() { |
| if (jj_3R_7()) return true; |
| if (jj_scan_token(O_DOT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_53() { |
| if (jj_scan_token(K_NATIONAL)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_15() { |
| if (jj_scan_token(O_DOT)) return true; |
| if (jj_3R_7()) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_12() { |
| if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_8() { |
| 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_NVARCHAR2)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_7() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_11()) { |
| jj_scanpos = xsp; |
| if (jj_3R_12()) return true; |
| } |
| return false; |
| } |
| |
| private boolean jj_3R_11() { |
| if (jj_scan_token(S_IDENTIFIER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_6() { |
| if (jj_3R_8()) return true; |
| return false; |
| } |
| |
| private boolean jj_3_18() { |
| if (jj_3R_9()) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_scan_token(188)) jj_scanpos = xsp; |
| return false; |
| } |
| |
| private boolean jj_3_2() { |
| if (jj_3R_7()) return true; |
| if (jj_scan_token(O_DOT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_46() { |
| if (jj_scan_token(K_CHAR)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_45() { |
| if (jj_scan_token(K_DOUBLE)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_26() { |
| if (jj_scan_token(K_LONG)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_19() { |
| if (jj_3R_7()) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_14() { |
| if (jj_scan_token(O_DOT)) return true; |
| if (jj_3R_7()) return true; |
| return false; |
| } |
| |
| private boolean jj_3_19() { |
| if (jj_3R_10()) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_scan_token(162)) jj_scanpos = xsp; |
| return false; |
| } |
| |
| private boolean jj_3R_51() { |
| if (jj_scan_token(K_NVARCHAR)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_44() { |
| if (jj_scan_token(K_UROWID)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_13() { |
| if (jj_scan_token(S_IDENTIFIER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_10() { |
| if (jj_3R_7()) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_15()) jj_scanpos = xsp; |
| return false; |
| } |
| |
| private boolean jj_3R_43() { |
| if (jj_scan_token(K_ROWID)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_42() { |
| if (jj_scan_token(K_BFILE)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_41() { |
| if (jj_scan_token(K_NCLOB)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_40() { |
| if (jj_scan_token(K_BLOB)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_39() { |
| if (jj_scan_token(K_SIMPLE_INTEGER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_38() { |
| if (jj_scan_token(K_PLS_INTEGER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_37() { |
| if (jj_scan_token(K_MLSLABEL)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_36() { |
| if (jj_scan_token(K_REAL)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_11() { |
| if (jj_scan_token(S_IDENTIFIER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_1() { |
| if (jj_3R_7()) return true; |
| if (jj_scan_token(O_DOT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_50() { |
| if (jj_scan_token(K_NCHAR)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_9() { |
| if (jj_3R_7()) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_14()) jj_scanpos = xsp; |
| return false; |
| } |
| |
| private boolean jj_3R_35() { |
| if (jj_scan_token(K_FLOAT)) return true; |
| return false; |
| } |
| |
| private boolean jj_3_9() { |
| if (jj_scan_token(S_IDENTIFIER)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_56() { |
| if (jj_scan_token(K_TIMESTAMP)) return true; |
| return false; |
| } |
| |
| private boolean jj_3R_34() { |
| if (jj_scan_token(K_SMALLINT)) 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; |
| private int jj_gen; |
| final private int[] jj_la1 = new int[127]; |
| static private int[] jj_la1_0; |
| static private int[] jj_la1_1; |
| static private int[] jj_la1_2; |
| static private int[] jj_la1_3; |
| static private int[] jj_la1_4; |
| static private int[] jj_la1_5; |
| static private int[] jj_la1_6; |
| static private int[] jj_la1_7; |
| static { |
| jj_la1_init_0(); |
| jj_la1_init_1(); |
| jj_la1_init_2(); |
| jj_la1_init_3(); |
| jj_la1_init_4(); |
| jj_la1_init_5(); |
| jj_la1_init_6(); |
| jj_la1_init_7(); |
| } |
| private static void jj_la1_init_0() { |
| jj_la1_0 = new int[] {0x0,0x0,0x0,0x2000,0x1000,0x1000,0x0,0x0,0x0,0x0,0x1000,0x1000,0x0,0x0,0x1000,0x1000,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb0be0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0x0,0x0,0x9c0000,0xb0220000,0x0,0xb0be0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x8000,0x0,}; |
| } |
| private static void jj_la1_init_1() { |
| jj_la1_1 = new int[] {0x0,0x80400,0x80400,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x100000,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x819000,0x800,0x8,0x0,0x40000,0x40000,0x18000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19000,0x800000,0x0,0x819000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x200000,0x0,0x0,0x40000,0x0,0x40000,0x0,0x0,0x40000,0x40000,0x0,0x0,0x0,0x80000000,0x80000000,0x0,}; |
| } |
| private static void jj_la1_init_2() { |
| jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x100000,0x100000,0x40,0x0,0x0,0x0,0x100000,0x100000,0x0,0x0,0x100000,0x100000,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800b0010,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0xb0010,0x0,0x800b0010,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x4000,0x0,}; |
| } |
| private static void jj_la1_init_3() { |
| jj_la1_3 = new int[] {0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x20000000,0x1000000,0x1000000,0x0,0x0,0x20000,0x0,0xf01b10,0x0,0x0,0x20000,0x0,0x0,0x300000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x300200,0xc01910,0x0,0xf01b10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x20000,0x20000,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x10000,0x0,0x40000000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; |
| } |
| private static void jj_la1_init_4() { |
| jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x840,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14030,0x840,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4020,0x10010,0x0,0x14030,0x0,0x0,0x0,0x0,0x0,0x0,0x60000,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x10,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000a,0x80000a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x30000000,0x0,0x400000,0x400000,0x0,}; |
| } |
| private static void jj_la1_init_5() { |
| jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x40000,0x0,0x0,0x0,0x0,0x603001,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x600000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x603001,0x0,0x603001,0x0,0x0,0x0,0x0,0x0,0x0,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x10000000,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x4000000,0x0,0x40,0x40,0x0,}; |
| } |
| private static void jj_la1_init_6() { |
| jj_la1_6 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x20,0x20,0x0,0x200000,0x0,0x0,0x1a,0x0,0x0,0x0,0x8000,0x8000,0x0,0x10000,0x10000,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x1a,0x0,0x1a,0x0,0x400000,0x400000,0x20000,0x400000,0x400000,0x60,0x200000,0x0,0x8000,0x200000,0x0,0x0,0x0,0x8,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x8000,0x2000,0x2000,0x0,0x0,0x600,0x600,0x200000,0x0,0x0,0x0,}; |
| } |
| private static void jj_la1_init_7() { |
| jj_la1_7 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x84000,0x0,0x8,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x8,0x84000,0x4000,0x0,0x0,0x0,0x0,0x0,0x400,0x400,0x0,0x8,0x0,0x8,0x8,0x8,0x8,0x8,0x0,0x8,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x8,0x84000,0x84000,0x0,0x0,0x0,0x8,0x84000,0x84000,0x0,0x0,0x0,0x8,0x84000,0x84000,0x0,0x8,0x0,0x8,0x8,0x8,0x0,0x0,0x8,0x84000,0x84000,0x0,0x0,0x8,0x0,0x84000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x84000,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x0,0x84000,}; |
| } |
| final private JJCalls[] jj_2_rtns = new JJCalls[20]; |
| private boolean jj_rescan = false; |
| private int jj_gc = 0; |
| |
| /** 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; |
| jj_gen = 0; |
| for (int i = 0; i < 127; i++) jj_la1[i] = -1; |
| for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
| } |
| |
| /** 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(); |
| jj_gen = 0; |
| for (int i = 0; i < 127; i++) jj_la1[i] = -1; |
| for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
| } |
| |
| /** 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; |
| jj_gen = 0; |
| for (int i = 0; i < 127; i++) jj_la1[i] = -1; |
| for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
| } |
| |
| /** 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(); |
| jj_gen = 0; |
| for (int i = 0; i < 127; i++) jj_la1[i] = -1; |
| for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
| } |
| |
| /** Constructor with generated Token Manager. */ |
| public DDLParser(DDLParserTokenManager tm) { |
| token_source = tm; |
| token = new Token(); |
| jj_ntk = -1; |
| jj_gen = 0; |
| for (int i = 0; i < 127; i++) jj_la1[i] = -1; |
| for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
| } |
| |
| /** Reinitialise. */ |
| public void ReInit(DDLParserTokenManager tm) { |
| token_source = tm; |
| token = new Token(); |
| jj_ntk = -1; |
| jjtree.reset(); |
| jj_gen = 0; |
| for (int i = 0; i < 127; i++) jj_la1[i] = -1; |
| for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); |
| } |
| |
| 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) { |
| jj_gen++; |
| if (++jj_gc > 100) { |
| jj_gc = 0; |
| for (int i = 0; i < jj_2_rtns.length; i++) { |
| JJCalls c = jj_2_rtns[i]; |
| while (c != null) { |
| if (c.gen < jj_gen) c.first = null; |
| c = c.next; |
| } |
| } |
| } |
| return token; |
| } |
| token = oldToken; |
| jj_kind = kind; |
| 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_rescan) { |
| int i = 0; Token tok = token; |
| while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } |
| if (tok != null) jj_add_error_token(kind, i); |
| } |
| 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; |
| jj_gen++; |
| 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); |
| } |
| |
| private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>(); |
| private int[] jj_expentry; |
| private int jj_kind = -1; |
| private int[] jj_lasttokens = new int[100]; |
| private int jj_endpos; |
| |
| private void jj_add_error_token(int kind, int pos) { |
| if (pos >= 100) return; |
| if (pos == jj_endpos + 1) { |
| jj_lasttokens[jj_endpos++] = kind; |
| } else if (jj_endpos != 0) { |
| jj_expentry = new int[jj_endpos]; |
| for (int i = 0; i < jj_endpos; i++) { |
| jj_expentry[i] = jj_lasttokens[i]; |
| } |
| jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) { |
| int[] oldentry = (int[])(it.next()); |
| if (oldentry.length == jj_expentry.length) { |
| for (int i = 0; i < jj_expentry.length; i++) { |
| if (oldentry[i] != jj_expentry[i]) { |
| continue jj_entries_loop; |
| } |
| } |
| jj_expentries.add(jj_expentry); |
| break jj_entries_loop; |
| } |
| } |
| if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; |
| } |
| } |
| |
| /** Generate ParseException. */ |
| public ParseException generateParseException() { |
| jj_expentries.clear(); |
| boolean[] la1tokens = new boolean[244]; |
| if (jj_kind >= 0) { |
| la1tokens[jj_kind] = true; |
| jj_kind = -1; |
| } |
| for (int i = 0; i < 127; i++) { |
| if (jj_la1[i] == jj_gen) { |
| for (int j = 0; j < 32; j++) { |
| if ((jj_la1_0[i] & (1<<j)) != 0) { |
| la1tokens[j] = true; |
| } |
| if ((jj_la1_1[i] & (1<<j)) != 0) { |
| la1tokens[32+j] = true; |
| } |
| if ((jj_la1_2[i] & (1<<j)) != 0) { |
| la1tokens[64+j] = true; |
| } |
| if ((jj_la1_3[i] & (1<<j)) != 0) { |
| la1tokens[96+j] = true; |
| } |
| if ((jj_la1_4[i] & (1<<j)) != 0) { |
| la1tokens[128+j] = true; |
| } |
| if ((jj_la1_5[i] & (1<<j)) != 0) { |
| la1tokens[160+j] = true; |
| } |
| if ((jj_la1_6[i] & (1<<j)) != 0) { |
| la1tokens[192+j] = true; |
| } |
| if ((jj_la1_7[i] & (1<<j)) != 0) { |
| la1tokens[224+j] = true; |
| } |
| } |
| } |
| } |
| for (int i = 0; i < 244; i++) { |
| if (la1tokens[i]) { |
| jj_expentry = new int[1]; |
| jj_expentry[0] = i; |
| jj_expentries.add(jj_expentry); |
| } |
| } |
| jj_endpos = 0; |
| jj_rescan_token(); |
| jj_add_error_token(0, 0); |
| int[][] exptokseq = new int[jj_expentries.size()][]; |
| for (int i = 0; i < jj_expentries.size(); i++) { |
| exptokseq[i] = jj_expentries.get(i); |
| } |
| return new ParseException(token, exptokseq, tokenImage); |
| } |
| |
| /** Enable tracing. */ |
| final public void enable_tracing() { |
| } |
| |
| /** Disable tracing. */ |
| final public void disable_tracing() { |
| } |
| |
| private void jj_rescan_token() { |
| jj_rescan = true; |
| for (int i = 0; i < 20; i++) { |
| try { |
| JJCalls p = jj_2_rtns[i]; |
| do { |
| if (p.gen > jj_gen) { |
| jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; |
| switch (i) { |
| case 0: jj_3_1(); break; |
| case 1: jj_3_2(); break; |
| case 2: jj_3_3(); break; |
| case 3: jj_3_4(); break; |
| case 4: jj_3_5(); break; |
| case 5: jj_3_6(); break; |
| case 6: jj_3_7(); break; |
| case 7: jj_3_8(); break; |
| case 8: jj_3_9(); break; |
| case 9: jj_3_10(); break; |
| case 10: jj_3_11(); break; |
| case 11: jj_3_12(); break; |
| case 12: jj_3_13(); break; |
| case 13: jj_3_14(); break; |
| case 14: jj_3_15(); break; |
| case 15: jj_3_16(); break; |
| case 16: jj_3_17(); break; |
| case 17: jj_3_18(); break; |
| case 18: jj_3_19(); break; |
| case 19: jj_3_20(); break; |
| } |
| } |
| p = p.next; |
| } while (p != null); |
| } catch(LookaheadSuccess ls) { } |
| } |
| jj_rescan = false; |
| } |
| |
| private void jj_save(int index, int xla) { |
| JJCalls p = jj_2_rtns[index]; |
| while (p.gen > jj_gen) { |
| if (p.next == null) { p = p.next = new JJCalls(); break; } |
| p = p.next; |
| } |
| p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; |
| } |
| |
| static final class JJCalls { |
| int gen; |
| Token first; |
| int arg; |
| JJCalls next; |
| } |
| |
| } |