From d6c0735fbb2298f6c506d34f8b6991a7b0dc7e1b Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 23 Jul 2018 14:21:58 +0800 Subject: [PATCH 01/31] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E7=9A=84=E8=A1=A8=E5=90=8D=EF=BC=8C=E5=88=97=E5=90=8D=E4=B8=AD?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E9=9A=8F=E6=84=8F=E4=B9=A6=E5=86=99=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B0=86=E8=BF=99=E4=BA=9B=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97=E6=AE=B5=E7=BB=9F=E4=B8=80=E4=B8=BA=E5=A4=A7?= =?UTF-8?q?=E5=86=99=E6=88=96=E8=80=85=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/ReplaceTableColum.java" | 56 + .../parser/SqlCreateFunction.java" | 62 + .../parser/SqlParserImpl.java" | 24129 ++++++++++++++++ 3 files changed, 24247 insertions(+) create mode 100644 "sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" create mode 100644 "sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" create mode 100644 "sql\350\247\243\346\236\220/parser/SqlParserImpl.java" diff --git "a/sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" "b/sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" new file mode 100644 index 0000000..ccbf9f9 --- /dev/null +++ "b/sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" @@ -0,0 +1,56 @@ +/** + 替换用户输入的表名,列名中存在随意书写的问题,将这些关键字段统一为大写或者小写 + 主要使用是先将用户输入的sql传入到calcite parser进行解析,解析后对应是SqlNode,变为String后表名,列名自动添加``处理,我们只要拿到``字段处理就可以了。 + **/ +public class ReplaceTableColumn { + /** + * 解析sql获取SqlNode + * @param sql + * @return + */ + public SqlNodeList getSqlNodeList(String sql) { + if (StringUtils.isBlank(sql)){ + return null; + } + + StringReader in = new StringReader(sql); + SqlParserImpl impl = new SqlParserImpl(in); + + // back tick as the quote + impl.switchTo("BTID"); + impl.setTabSize(1); + impl.setQuotedCasing(Lex.JAVA.quotedCasing); + impl.setUnquotedCasing(Lex.JAVA.unquotedCasing); + impl.setIdentifierMaxLength(DEFAULT_IDENTIFIER_MAX_LENGTH); + + try { + return impl.SqlStmtsEof(); + } catch (ParseException e) { + logger.error("input sql parse error : ",e); + } + + return null; + } + + /** + * 替换sql中的列,表名称 + * @param sql + * @return 替换成功的sql + */ + public String replaceInputTableColumn(String sql){ + String regEx = "`(.*?)`"; + Pattern pattern = Pattern.compile(regEx); + Matcher matcher = pattern.matcher(sql); + + String replaceAll = sql; + while(matcher.find()){ + String group = matcher.group(); + //替换为大写 + replaceAll = replaceAll.replace(group, group.toUpperCase()); + } + + return replaceAll; + } + +} +} \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" "b/sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" new file mode 100644 index 0000000..4072007 --- /dev/null +++ "b/sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" @@ -0,0 +1,62 @@ + +import org.apache.calcite.sql.*; +import org.apache.calcite.sql.parser.SqlParserPos; + +import java.util.Arrays; +import java.util.List; + +public class SqlCreateFunction extends SqlCall { + private static final SqlSpecialOperator OPERATOR = new SqlSpecialOperator("UDF", SqlKind.OTHER_DDL); + private final SqlIdentifier dbName; + private final SqlIdentifier funcName; + private final SqlNode className; + private final SqlNodeList jarList; + + public SqlCreateFunction(SqlParserPos pos, SqlIdentifier dbName, + SqlIdentifier funcName, SqlNode className, SqlNodeList jarList) { + super(pos); + this.dbName = dbName; + this.funcName = funcName; + this.className = className; + this.jarList = jarList; + } + + @Override + public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { + UnparseUtil u = new UnparseUtil(writer, leftPrec, rightPrec); + u.keyword("CREATE", "FUNCTION"); + if (dbName != null) { + u.node(dbName).keyword("."); + } + u.node(funcName).keyword("AS").node(className); + if (jarList != null) { + u.keyword("USING").nodeList(jarList); + } + } + + @Override + public SqlOperator getOperator() { + return OPERATOR; + } + + @Override + public List getOperandList() { + return Arrays.asList(dbName, funcName, className, jarList); + } + + public SqlIdentifier dbName() { + return dbName; + } + + public SqlIdentifier funcName() { + return funcName; + } + + public SqlNode className() { + return className; + } + + public SqlNodeList jarList() { + return jarList; + } +} \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/parser/SqlParserImpl.java" "b/sql\350\247\243\346\236\220/parser/SqlParserImpl.java" new file mode 100644 index 0000000..4ccf90a --- /dev/null +++ "b/sql\350\247\243\346\236\220/parser/SqlParserImpl.java" @@ -0,0 +1,24129 @@ +import java.util.*; + + + +import org.apache.calcite.avatica.util.Casing; +import org.apache.calcite.avatica.util.DateTimeUtils; +import org.apache.calcite.avatica.util.TimeUnit; +import org.apache.calcite.rel.type.RelDataType; +import org.apache.calcite.runtime.CalciteContextException; +import org.apache.calcite.sql.JoinConditionType; +import org.apache.calcite.sql.JoinType; +import org.apache.calcite.sql.SqlAlter; +import org.apache.calcite.sql.SqlBinaryOperator; +import org.apache.calcite.sql.SqlCall; +import org.apache.calcite.sql.SqlCharStringLiteral; +import org.apache.calcite.sql.SqlCollation; +import org.apache.calcite.sql.SqlDataTypeSpec; +import org.apache.calcite.sql.SqlDateLiteral; +import org.apache.calcite.sql.SqlDelete; +import org.apache.calcite.sql.SqlDescribeSchema; +import org.apache.calcite.sql.SqlDescribeTable; +import org.apache.calcite.sql.SqlDynamicParam; +import org.apache.calcite.sql.SqlExplain; +import org.apache.calcite.sql.SqlExplainFormat; +import org.apache.calcite.sql.SqlExplainLevel; +import org.apache.calcite.sql.SqlFunction; +import org.apache.calcite.sql.SqlFunctionCategory; +import org.apache.calcite.sql.SqlIdentifier; +import org.apache.calcite.sql.SqlInsert; +import org.apache.calcite.sql.SqlInsertKeyword; +import org.apache.calcite.sql.SqlIntervalLiteral; +import org.apache.calcite.sql.SqlIntervalQualifier; +import org.apache.calcite.sql.SqlJdbcDataTypeName; +import org.apache.calcite.sql.SqlJdbcFunctionCall; +import org.apache.calcite.sql.SqlJoin; +import org.apache.calcite.sql.SqlKind; +import org.apache.calcite.sql.SqlLiteral; +import org.apache.calcite.sql.SqlMatchRecognize; +import org.apache.calcite.sql.SqlMerge; +import org.apache.calcite.sql.SqlNode; +import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlNumericLiteral; +import org.apache.calcite.sql.SqlOperator; +import org.apache.calcite.sql.SqlOrderBy; +import org.apache.calcite.sql.SqlPostfixOperator; +import org.apache.calcite.sql.SqlPrefixOperator; +import org.apache.calcite.sql.SqlSampleSpec; +import org.apache.calcite.sql.SqlSelect; +import org.apache.calcite.sql.SqlSelectKeyword; +import org.apache.calcite.sql.SqlSetOption; +import org.apache.calcite.sql.SqlTimeLiteral; +import org.apache.calcite.sql.SqlTimestampLiteral; +import org.apache.calcite.sql.SqlUnnestOperator; +import org.apache.calcite.sql.SqlUpdate; +import org.apache.calcite.sql.SqlUtil; +import org.apache.calcite.sql.SqlWindow; +import org.apache.calcite.sql.SqlWith; +import org.apache.calcite.sql.SqlWithItem; +import org.apache.calcite.sql.fun.SqlCase; +import org.apache.calcite.sql.fun.OracleSqlOperatorTable; +import org.apache.calcite.sql.fun.SqlStdOperatorTable; +import org.apache.calcite.sql.fun.SqlTrimFunction; +import org.apache.calcite.sql.parser.Span; +import org.apache.calcite.sql.parser.SqlAbstractParserImpl; +import org.apache.calcite.sql.parser.SqlParseException; +import org.apache.calcite.sql.parser.SqlParser; +import org.apache.calcite.sql.parser.SqlParserImplFactory; +import org.apache.calcite.sql.parser.SqlParserPos; +import org.apache.calcite.sql.parser.SqlParserUtil; +import org.apache.calcite.sql.type.SqlTypeName; +import org.apache.calcite.sql.validate.SqlConformance; +import org.apache.calcite.util.Glossary; +import org.apache.calcite.util.NlsString; +import org.apache.calcite.util.Pair; +import org.apache.calcite.util.Util; +import org.apache.calcite.util.trace.CalciteTrace; + +import com.google.common.collect.Lists; + +import org.slf4j.Logger; + +import java.io.Reader; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import static org.apache.calcite.util.Static.RESOURCE; + +/** + * SQL parser, generated from Parser.jj by JavaCC. + * + *

The public wrapper for this parser is {@link SqlParser}. + */ +public class SqlParserImpl extends SqlAbstractParserImpl implements SqlParserImplConstants { + private static final Logger LOGGER = CalciteTrace.getParserTracer(); + + // Can't use quoted literal because of a bug in how JavaCC translates + // backslash-backslash. + private static final char BACKSLASH = 0x5c; + private static final char DOUBLE_QUOTE = 0x22; + private static final String DQ = DOUBLE_QUOTE + ""; + private static final String DQDQ = DQ + DQ; + + private static Metadata metadata; + + private Casing unquotedCasing; + private Casing quotedCasing; + private int identifierMaxLength; + private SqlConformance conformance; + + /** + * {@link SqlParserImplFactory} implementation for creating parser. + */ + public static final SqlParserImplFactory FACTORY = new SqlParserImplFactory() { + public SqlAbstractParserImpl getParser(Reader stream) { + return new SqlParserImpl(stream); + } + }; + + public SqlParseException normalizeException(Throwable ex) + { + try { + if (ex instanceof ParseException) { + ex = cleanupParseException((ParseException) ex); + } + return convertException(ex); + } catch (ParseException e) { + throw new AssertionError(e); + } + } + + public Metadata getMetadata() + { + synchronized (SqlParserImpl.class) { + if (metadata == null) { + metadata = new MetadataImpl( + new SqlParserImpl(new java.io.StringReader(""))); + } + return metadata; + } + } + + public void setTabSize(int tabSize) + { + jj_input_stream.setTabSize(tabSize); + } + + public void switchTo(String stateName) + { + int state = Arrays.asList(SqlParserImplTokenManager.lexStateNames) + .indexOf(stateName); + token_source.SwitchTo(state); + } + + public void setQuotedCasing(Casing quotedCasing) + { + this.quotedCasing = quotedCasing; + } + + public void setUnquotedCasing(Casing unquotedCasing) + { + this.unquotedCasing = unquotedCasing; + } + + public void setIdentifierMaxLength(int identifierMaxLength) + { + this.identifierMaxLength = identifierMaxLength; + } + + public void setConformance(SqlConformance conformance) + { + this.conformance = conformance; + } + + public SqlNode parseSqlExpressionEof() throws Exception + { + return SqlExpressionEof(); + } + + public SqlNode parseSqlStmtEof() throws Exception + { + return SqlStmtEof(); + } + + private SqlNode extend(SqlNode table, SqlNodeList extendList) { + return SqlStdOperatorTable.EXTEND.createCall( + Span.of(table, extendList).pos(), table, extendList); + } + + void debug_message1() throws ParseException { + LOGGER.info("{} , {}", getToken(0).image, getToken(1).image); + } + + String unquotedIdentifier() throws ParseException { + return SqlParserUtil.strip(getToken(0).image, null, null, null, + unquotedCasing); + } + + final public String NonReservedKeyWord() throws ParseException { + String kw; + kw = CommonNonReservedKeyWord(); + {if (true) return kw;} + throw new Error("Missing return statement in function"); + } + +/** + * Allows parser to be extended with new types of table references. The + * default implementation of this production is empty. + */ + final public SqlNode ExtendedTableRef() throws ParseException { + UnusedExtension(); + {if (true) return null;} + throw new Error("Missing return statement in function"); + } + +/** + * Allows an OVER clause following a table expression as an extension to + * standard SQL syntax. The default implementation of this production is empty. + */ + final public SqlNode TableOverOpt() throws ParseException { + {if (true) return null;} + throw new Error("Missing return statement in function"); + } + +/* + * Parses dialect-specific keywords immediately following the SELECT keyword. + */ + final public void SqlSelectKeywords(List keywords) throws ParseException { + E(); + } + +/* + * Parses dialect-specific keywords immediately following the INSERT keyword. + */ + final public void SqlInsertKeywords(List keywords) throws ParseException { + E(); + } + + final public SqlNode ExtendedBuiltinFunctionCall() throws ParseException { + UnusedExtension(); + {if (true) return null;} + throw new Error("Missing return statement in function"); + } + +/* +* Parse Floor/Ceil function parameters +*/ + final public SqlNode FloorCeilOptions(Span s, boolean floorFlag) throws ParseException { + SqlNode node; + node = StandardFloorCeilOptions(s, floorFlag); + {if (true) return node;} + throw new Error("Missing return statement in function"); + } + + void E() throws ParseException { + } + + List startList(Object o) throws ParseException { + List list = new ArrayList(); + list.add(o); + return list; + } + + protected SqlParserPos getPos() throws ParseException { + return new SqlParserPos( + token.beginLine, + token.beginColumn, + token.endLine, + token.endColumn); + } + + Span span() throws ParseException { + return Span.of(getPos()); + } + + void checkQueryExpression(ExprContext exprContext) throws ParseException { + switch (exprContext) { + case ACCEPT_NON_QUERY: + case ACCEPT_SUB_QUERY: + case ACCEPT_CURSOR: + throw SqlUtil.newContextException(getPos(), + RESOURCE.illegalQueryExpression()); + } + } + + void checkNonQueryExpression(ExprContext exprContext) throws ParseException { + switch (exprContext) { + case ACCEPT_QUERY: + throw SqlUtil.newContextException(getPos(), + RESOURCE.illegalNonQueryExpression()); + } + } + + SqlParseException convertException(Throwable ex) throws ParseException { + if (ex instanceof SqlParseException) { + return (SqlParseException) ex; + } + SqlParserPos pos = null; + int[][] expectedTokenSequences = null; + String[] tokenImage = null; + if (ex instanceof ParseException) { + ParseException pex = (ParseException) ex; + expectedTokenSequences = pex.expectedTokenSequences; + tokenImage = pex.tokenImage; + if (pex.currentToken != null) { + final Token token = pex.currentToken.next; + pos = new SqlParserPos( + token.beginLine, + token.beginColumn, + token.endLine, + token.endColumn); + } + } else if (ex instanceof TokenMgrError) { + TokenMgrError tme = (TokenMgrError) ex; + expectedTokenSequences = null; + tokenImage = null; + // Example: + // Lexical error at line 3, column 24. Encountered "#" after "a". + final java.util.regex.Pattern pattern = java.util.regex.Pattern.compile( + "(?s)Lexical error at line ([0-9]+), column ([0-9]+).*"); + java.util.regex.Matcher matcher = pattern.matcher(ex.getMessage()); + if (matcher.matches()) { + int line = Integer.parseInt(matcher.group(1)); + int column = Integer.parseInt(matcher.group(2)); + pos = new SqlParserPos(line, column, line, column); + } + } else if (ex instanceof CalciteContextException) { + // CalciteContextException is the standard wrapper for exceptions + // produced by the validator, but in the parser, the standard is + // SqlParseException; so, strip it away. In case you were wondering, + // the CalciteContextException appears because the parser + // occasionally calls into validator-style code such as + // SqlSpecialOperator.reduceExpr. + CalciteContextException ece = + (CalciteContextException) ex; + pos = new SqlParserPos( + ece.getPosLine(), + ece.getPosColumn(), + ece.getEndPosLine(), + ece.getEndPosColumn()); + ex = ece.getCause(); + } + + return new SqlParseException( + ex.getMessage(), pos, expectedTokenSequences, tokenImage, ex); + } + + ParseException cleanupParseException(ParseException ex) throws ParseException { + if (ex.expectedTokenSequences == null) { + return ex; + } + int iIdentifier = Arrays.asList(ex.tokenImage).indexOf(""); + + // Find all sequences in the error which contain identifier. For + // example, + // {} + // {A} + // {B, C} + // {D, } + // {D, A} + // {D, B} + // + // would yield + // {} + // {D} + boolean id = false; + final List prefixList = new ArrayList(); + for (int i = 0; i < ex.expectedTokenSequences.length; ++i) { + int[] seq = ex.expectedTokenSequences[i]; + int j = seq.length - 1; + int i1 = seq[j]; + if (i1 == iIdentifier) { + int[] prefix = new int[j]; + System.arraycopy(seq, 0, prefix, 0, j); + prefixList.add(prefix); + } + } + + if (prefixList.isEmpty()) { + return ex; + } + + int[][] prefixes = (int[][]) + prefixList.toArray(new int[prefixList.size()][]); + + // Since was one of the possible productions, + // we know that the parser will also have included all + // of the non-reserved keywords (which are treated as + // identifiers in non-keyword contexts). So, now we need + // to clean those out, since they're totally irrelevant. + + final List list = new ArrayList(); + Metadata metadata = getMetadata(); + for (int i = 0; i < ex.expectedTokenSequences.length; ++i) { + int [] seq = ex.expectedTokenSequences[i]; + String tokenImage = ex.tokenImage[seq[seq.length - 1]]; + String token = SqlParserUtil.getTokenVal(tokenImage); + if (token == null || !metadata.isNonReservedKeyword(token)) { + list.add(seq); + continue; + } + boolean match = matchesPrefix(seq, prefixes); + if (!match) { + list.add(seq); + } + } + + ex.expectedTokenSequences = + (int [][]) list.toArray(new int [list.size()][]); + return ex; + } + + boolean matchesPrefix(int[] seq, int[][] prefixes) throws ParseException { + nextPrefix: + for (int[] prefix : prefixes) { + if (seq.length == prefix.length + 1) { + for (int k = 0; k < prefix.length; k++) { + if (prefix[k] != seq[k]) { + continue nextPrefix; + } + } + return true; + } + } + return false; + } + +/***************************************** + * Syntactical Descriptions * + *****************************************/ + +/** + * Parses either a row expression or a query expression with an optional + * ORDER BY. + * + *

Postgres syntax for limit: + * + *

+ *    [ LIMIT { count | ALL } ]
+ *    [ OFFSET start ]
+ *
+ * + *

MySQL syntax for limit: + * + *

+ *    [ LIMIT { count | start, count } ]
+ *
+ * + *

SQL:2008 syntax for limit: + * + *

+ *    [ OFFSET start { ROW | ROWS } ]
+ *    [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
+ *
+ */ + final public SqlNode OrderedQueryOrExpr(ExprContext exprContext) throws ParseException { + SqlNode e; + SqlNodeList orderBy = null; + SqlNode start = null; + SqlNode count = null; + e = QueryOrExpr(exprContext); + if (jj_2_1(2)) { + // use the syntactic type of the expression we just parsed + // to decide whether ORDER BY makes sense + orderBy = OrderBy(e.isA(SqlKind.QUERY)); + } else { + ; + } + if (jj_2_5(2)) { + jj_consume_token(LIMIT); + if (jj_2_2(2)) { + // MySQL-style syntax. "LIMIT start, count" + start = UnsignedNumericLiteralOrParam(); + jj_consume_token(COMMA); + count = UnsignedNumericLiteralOrParam(); + if (!this.conformance.isLimitStartCountAllowed()) { + {if (true) throw new ParseException(RESOURCE.limitStartCountNotAllowed().str());} + } + } else if (jj_2_3(2)) { + count = UnsignedNumericLiteralOrParam(); + } else if (jj_2_4(2)) { + jj_consume_token(ALL); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + if (jj_2_9(2)) { + jj_consume_token(OFFSET); + start = UnsignedNumericLiteralOrParam(); + if (jj_2_8(2)) { + if (jj_2_6(2)) { + jj_consume_token(ROW); + } else if (jj_2_7(2)) { + jj_consume_token(ROWS); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + } else { + ; + } + if (jj_2_14(2)) { + jj_consume_token(FETCH); + if (jj_2_10(2)) { + jj_consume_token(FIRST); + } else if (jj_2_11(2)) { + jj_consume_token(NEXT); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + count = UnsignedNumericLiteralOrParam(); + if (jj_2_12(2)) { + jj_consume_token(ROW); + } else if (jj_2_13(2)) { + jj_consume_token(ROWS); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(ONLY); + } else { + ; + } + if (orderBy != null || start != null || count != null) { + if (orderBy == null) { + orderBy = SqlNodeList.EMPTY; + } + e = new SqlOrderBy(getPos(), e, orderBy, start, count); + + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a leaf in a query expression (SELECT, VALUES or TABLE). + */ + final public SqlNode LeafQuery(ExprContext exprContext) throws ParseException { + SqlNode e; + if (jj_2_15(2)) { + // ensure a query is legal in this context + checkQueryExpression(exprContext); + e = SqlSelect(); + {if (true) return e;} + } else if (jj_2_16(2)) { + e = TableConstructor(); + {if (true) return e;} + } else if (jj_2_17(2)) { + e = ExplicitTable(getPos()); + {if (true) return e;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a parenthesized query or single row expression. + */ + final public SqlNode ParenthesizedExpression(ExprContext exprContext) throws ParseException { + SqlNode e; + jj_consume_token(LPAREN); + // we've now seen left paren, so queries inside should + // be allowed as sub-queries + switch (exprContext) { + case ACCEPT_SUB_QUERY: + exprContext = ExprContext.ACCEPT_NONCURSOR; + break; + case ACCEPT_CURSOR: + exprContext = ExprContext.ACCEPT_ALL; + break; + } + e = OrderedQueryOrExpr(exprContext); + jj_consume_token(RPAREN); + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a parenthesized query or comma-list of row expressions. + * + *

REVIEW jvs 8-Feb-2004: There's a small hole in this production. It can be + * used to construct something like + * + *

+ * WHERE x IN (select count(*) from t where c=d,5)
+ *
+ * + *

which should be illegal. The above is interpreted as equivalent to + * + *

+ * WHERE x IN ((select count(*) from t where c=d),5)
+ *
+ * + *

which is a legal use of a sub-query. The only way to fix the hole is to + * be able to remember whether a subexpression was parenthesized or not, which + * means preserving parentheses in the SqlNode tree. This is probably + * desirable anyway for use in purely syntactic parsing applications (e.g. SQL + * pretty-printer). However, if this is done, it's important to also make + * isA() on the paren node call down to its operand so that we can + * always correctly discriminate a query from a row expression. + */ + final public SqlNodeList ParenthesizedQueryOrCommaList(ExprContext exprContext) throws ParseException { + SqlNode e; + List list; + ExprContext firstExprContext = exprContext; + final Span s; + jj_consume_token(LPAREN); + // we've now seen left paren, so a query by itself should + // be interpreted as a sub-query + s = span(); + switch (exprContext) { + case ACCEPT_SUB_QUERY: + firstExprContext = ExprContext.ACCEPT_NONCURSOR; + break; + case ACCEPT_CURSOR: + firstExprContext = ExprContext.ACCEPT_ALL; + break; + } + e = OrderedQueryOrExpr(firstExprContext); + list = startList(e); + label_1: + while (true) { + if (jj_2_18(2)) { + ; + } else { + break label_1; + } + jj_consume_token(COMMA); + // a comma-list can't appear where only a query is expected + checkNonQueryExpression(exprContext); + e = Expression(exprContext); + list.add(e); + } + jj_consume_token(RPAREN); + {if (true) return new SqlNodeList(list, s.end(this));} + throw new Error("Missing return statement in function"); + } + +/** As ParenthesizedQueryOrCommaList, but allows DEFAULT + * in place of any of the expressions. For example, + * {@code (x, DEFAULT, null, DEFAULT)}. */ + final public SqlNodeList ParenthesizedQueryOrCommaListWithDefault(ExprContext exprContext) throws ParseException { + SqlNode e; + List list; + ExprContext firstExprContext = exprContext; + final Span s; + jj_consume_token(LPAREN); + // we've now seen left paren, so a query by itself should + // be interpreted as a sub-query + s = span(); + switch (exprContext) { + case ACCEPT_SUB_QUERY: + firstExprContext = ExprContext.ACCEPT_NONCURSOR; + break; + case ACCEPT_CURSOR: + firstExprContext = ExprContext.ACCEPT_ALL; + break; + } + if (jj_2_19(2)) { + e = OrderedQueryOrExpr(firstExprContext); + } else if (jj_2_20(2)) { + e = Default(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + list = startList(e); + label_2: + while (true) { + if (jj_2_21(2)) { + ; + } else { + break label_2; + } + jj_consume_token(COMMA); + // a comma-list can't appear where only a query is expected + checkNonQueryExpression(exprContext); + if (jj_2_22(2)) { + e = Expression(exprContext); + } else if (jj_2_23(2)) { + e = Default(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + list.add(e); + } + jj_consume_token(RPAREN); + {if (true) return new SqlNodeList(list, s.end(this));} + throw new Error("Missing return statement in function"); + } + +/** + * Parses function parameter lists including DISTINCT keyword recognition, + * DEFAULT, and named argument assignment. + */ + final public List FunctionParameterList(ExprContext exprContext) throws ParseException { + SqlNode e = null; + List list = new ArrayList(); + jj_consume_token(LPAREN); + if (jj_2_26(2)) { + if (jj_2_24(2)) { + jj_consume_token(DISTINCT); + e = SqlSelectKeyword.DISTINCT.symbol(getPos()); + } else if (jj_2_25(2)) { + jj_consume_token(ALL); + e = SqlSelectKeyword.ALL.symbol(getPos()); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + list.add(e); + Arg0(list, exprContext); + label_3: + while (true) { + if (jj_2_27(2)) { + ; + } else { + break label_3; + } + jj_consume_token(COMMA); + // a comma-list can't appear where only a query is expected + checkNonQueryExpression(exprContext); + Arg(list, exprContext); + } + jj_consume_token(RPAREN); + {if (true) return list;} + throw new Error("Missing return statement in function"); + } + + final public void Arg0(List list, ExprContext exprContext) throws ParseException { + SqlIdentifier name = null; + SqlNode e = null; + final ExprContext firstExprContext; + { + // we've now seen left paren, so queries inside should + // be allowed as sub-queries + switch (exprContext) { + case ACCEPT_SUB_QUERY: + firstExprContext = ExprContext.ACCEPT_NONCURSOR; + break; + case ACCEPT_CURSOR: + firstExprContext = ExprContext.ACCEPT_ALL; + break; + default: + firstExprContext = exprContext; + break; + } + } + if (jj_2_28(2)) { + name = SimpleIdentifier(); + jj_consume_token(NAMED_ARGUMENT_ASSIGNMENT); + } else { + ; + } + if (jj_2_29(2)) { + e = Default(); + } else if (jj_2_30(2)) { + e = OrderedQueryOrExpr(firstExprContext); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (e != null) { + if (name != null) { + e = SqlStdOperatorTable.ARGUMENT_ASSIGNMENT.createCall( + Span.of(name, e).pos(), e, name); + } + list.add(e); + } + } + + final public void Arg(List list, ExprContext exprContext) throws ParseException { + SqlIdentifier name = null; + SqlNode e = null; + if (jj_2_31(2)) { + name = SimpleIdentifier(); + jj_consume_token(NAMED_ARGUMENT_ASSIGNMENT); + } else { + ; + } + if (jj_2_32(2)) { + e = Default(); + } else if (jj_2_33(2)) { + e = Expression(exprContext); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (e != null) { + if (name != null) { + e = SqlStdOperatorTable.ARGUMENT_ASSIGNMENT.createCall( + Span.of(name, e).pos(), e, name); + } + list.add(e); + } + } + + final public SqlNode Default() throws ParseException { + jj_consume_token(DEFAULT_); + {if (true) return SqlStdOperatorTable.DEFAULT.createCall(getPos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a query (SELECT, UNION, INTERSECT, EXCEPT, VALUES, TABLE) followed by + * the end-of-file symbol. + */ + final public SqlNode SqlQueryEof() throws ParseException { + SqlNode query; + query = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); + jj_consume_token(0); + {if (true) return query;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses an SQL statement. + */ + final public SqlNode SqlStmt() throws ParseException { + SqlNode stmt; + if (jj_2_34(2)) { + stmt = SqlCreateFunction(); + } else if (jj_2_35(2)) { + stmt = SqlSetOption(Span.of(), null); + } else if (jj_2_36(2)) { + stmt = SqlAlter(); + } else if (jj_2_37(2)) { + stmt = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); + } else if (jj_2_38(2)) { + stmt = SqlExplain(); + } else if (jj_2_39(2)) { + stmt = SqlDescribe(); + } else if (jj_2_40(2)) { + stmt = SqlInsert(); + } else if (jj_2_41(2)) { + stmt = SqlDelete(); + } else if (jj_2_42(2)) { + stmt = SqlUpdate(); + } else if (jj_2_43(2)) { + stmt = SqlMerge(); + } else if (jj_2_44(2)) { + stmt = SqlProcedureCall(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return stmt;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses an SQL statement followed by the end-of-file symbol. + */ + final public SqlNode SqlStmtEof() throws ParseException { + SqlNode stmt; + stmt = SqlStmt(); + jj_consume_token(0); + {if (true) return stmt;} + throw new Error("Missing return statement in function"); + } + + final private void FunctionJarDef(List list) throws ParseException { + SqlParserPos pos; + SqlNode uri; + if (jj_2_45(2)) { + jj_consume_token(JAR); + } else if (jj_2_46(2)) { + jj_consume_token(FILE); + } else if (jj_2_47(2)) { + jj_consume_token(ARCHIVE); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + pos = getPos(); + list.add(StringLiteral()); + } + + final public SqlNodeList FunctionJarDefList() throws ParseException { + SqlParserPos pos; + List list = Lists.newArrayList(); + jj_consume_token(USING); + pos = getPos(); + pos = getPos(); + FunctionJarDef(list); + label_4: + while (true) { + if (jj_2_48(2)) { + ; + } else { + break label_4; + } + jj_consume_token(COMMA); + FunctionJarDef(list); + } + {if (true) return new SqlNodeList(list, pos.plus(getPos()));} + throw new Error("Missing return statement in function"); + } + +/** + * CREATE FUNCTION [db_name.]function_name AS class_name + * [USING JAR|FILE|ARCHIVE 'file_uri' [, JAR|FILE|ARCHIVE 'file_uri'] + */ + final public SqlCreateFunction SqlCreateFunction() throws ParseException { + SqlParserPos pos; + SqlIdentifier dbName = null; + SqlIdentifier funcName; + SqlNode className; + SqlNodeList jarList = null; + jj_consume_token(CREATE); + pos = getPos(); + jj_consume_token(FUNCTION); + if (jj_2_49(2)) { + dbName = SimpleIdentifier(); + jj_consume_token(DOT); + } else { + ; + } + funcName = SimpleIdentifier(); + jj_consume_token(AS); + className = StringLiteral(); + if (jj_2_50(2)) { + jarList = FunctionJarDefList(); + } else { + ; + } + {if (true) return new SqlCreateFunction(pos, dbName, funcName, className, jarList);} + throw new Error("Missing return statement in function"); + } + + final private void SqlStmtList(SqlNodeList list) throws ParseException { + list.add(SqlStmt()); + } + + final public SqlNodeList SqlStmtsEof() throws ParseException { + SqlParserPos pos; + SqlNodeList stmts; + pos = getPos(); + stmts = new SqlNodeList(pos); + stmts.add(SqlStmt()); + label_5: + while (true) { + if (jj_2_51(2)) { + ; + } else { + break label_5; + } + jj_consume_token(SEMICOLON); + SqlStmtList(stmts); + } + if (jj_2_52(2)) { + jj_consume_token(SEMICOLON); + } else { + ; + } + jj_consume_token(0); + {if (true) return stmts;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a leaf SELECT expression without ORDER BY. + */ + final public SqlSelect SqlSelect() throws ParseException { + final List keywords = Lists.newArrayList(); + final SqlNodeList keywordList; + List selectList; + final SqlNode fromClause; + final SqlNode where; + final SqlNodeList groupBy; + final SqlNode having; + final SqlNodeList windowDecls; + final Span s; + jj_consume_token(SELECT); + s = span(); + SqlSelectKeywords(keywords); + if (jj_2_53(2)) { + jj_consume_token(STREAM); + keywords.add(SqlSelectKeyword.STREAM.symbol(getPos())); + } else { + ; + } + if (jj_2_56(2)) { + if (jj_2_54(2)) { + jj_consume_token(DISTINCT); + keywords.add(SqlSelectKeyword.DISTINCT.symbol(getPos())); + } else if (jj_2_55(2)) { + jj_consume_token(ALL); + keywords.add(SqlSelectKeyword.ALL.symbol(getPos())); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + keywordList = new SqlNodeList(keywords, s.addAll(keywords).pos()); + selectList = SelectList(); + if (jj_2_57(2)) { + jj_consume_token(FROM); + fromClause = FromClause(); + where = WhereOpt(); + groupBy = GroupByOpt(); + having = HavingOpt(); + windowDecls = WindowOpt(); + } else { + E(); + fromClause = null; + where = null; + groupBy = null; + having = null; + windowDecls = null; + } + {if (true) return new SqlSelect(s.end(this), keywordList, + new SqlNodeList(selectList, Span.of(selectList).pos()), + fromClause, where, groupBy, having, windowDecls, null, null, null);} + throw new Error("Missing return statement in function"); + } + +/* + * Abstract production: + * + * void SqlSelectKeywords(List keywords) + * + * Parses dialect-specific keywords immediately following the SELECT keyword. + */ + +/** + * Parses an EXPLAIN PLAN statement. + */ + final public SqlNode SqlExplain() throws ParseException { + SqlNode stmt; + SqlExplainLevel detailLevel = SqlExplainLevel.EXPPLAN_ATTRIBUTES; + SqlExplain.Depth depth; + final SqlExplainFormat format; + jj_consume_token(EXPLAIN); + jj_consume_token(PLAN); + if (jj_2_58(2)) { + detailLevel = ExplainDetailLevel(); + } else { + ; + } + depth = ExplainDepth(); + if (jj_2_59(2)) { + jj_consume_token(AS); + jj_consume_token(XML); + format = SqlExplainFormat.XML; + } else if (jj_2_60(2)) { + jj_consume_token(AS); + jj_consume_token(JSON); + format = SqlExplainFormat.JSON; + } else { + format = SqlExplainFormat.TEXT; + } + jj_consume_token(FOR); + stmt = SqlQueryOrDml(); + {if (true) return new SqlExplain(getPos(), + stmt, + detailLevel.symbol(SqlParserPos.ZERO), + depth.symbol(SqlParserPos.ZERO), + format.symbol(SqlParserPos.ZERO), + nDynamicParams);} + throw new Error("Missing return statement in function"); + } + +/** Parses a query (SELECT or VALUES) + * or DML statement (INSERT, UPDATE, DELETE, MERGE). */ + final public SqlNode SqlQueryOrDml() throws ParseException { + SqlNode stmt; + if (jj_2_61(2)) { + stmt = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); + } else if (jj_2_62(2)) { + stmt = SqlInsert(); + } else if (jj_2_63(2)) { + stmt = SqlDelete(); + } else if (jj_2_64(2)) { + stmt = SqlUpdate(); + } else if (jj_2_65(2)) { + stmt = SqlMerge(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return stmt;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses WITH TYPE | WITH IMPLEMENTATION | WITHOUT IMPLEMENTATION modifier for + * EXPLAIN PLAN. + */ + final public SqlExplain.Depth ExplainDepth() throws ParseException { + if (jj_2_66(2)) { + jj_consume_token(WITH); + jj_consume_token(TYPE); + {if (true) return SqlExplain.Depth.TYPE;} + } else if (jj_2_67(2)) { + jj_consume_token(WITH); + jj_consume_token(IMPLEMENTATION); + {if (true) return SqlExplain.Depth.PHYSICAL;} + } else if (jj_2_68(2)) { + jj_consume_token(WITHOUT); + jj_consume_token(IMPLEMENTATION); + {if (true) return SqlExplain.Depth.LOGICAL;} + } else { + {if (true) return SqlExplain.Depth.PHYSICAL;} + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses INCLUDING ALL ATTRIBUTES modifier for EXPLAIN PLAN. + */ + final public SqlExplainLevel ExplainDetailLevel() throws ParseException { + SqlExplainLevel level = SqlExplainLevel.EXPPLAN_ATTRIBUTES; + if (jj_2_70(2)) { + jj_consume_token(EXCLUDING); + jj_consume_token(ATTRIBUTES); + level = SqlExplainLevel.NO_ATTRIBUTES; + } else if (jj_2_71(2)) { + jj_consume_token(INCLUDING); + if (jj_2_69(2)) { + jj_consume_token(ALL); + level = SqlExplainLevel.ALL_ATTRIBUTES; + } else { + ; + } + jj_consume_token(ATTRIBUTES); + + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return level;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a DESCRIBE statement. + */ + final public SqlNode SqlDescribe() throws ParseException { + final Span s; + final SqlIdentifier table; + final SqlIdentifier column; + final SqlIdentifier id; + final SqlNode stmt; + jj_consume_token(DESCRIBE); + s = span(); + if (jj_2_78(2)) { + if (jj_2_72(2)) { + jj_consume_token(DATABASE); + } else if (jj_2_73(2)) { + jj_consume_token(CATALOG); + } else if (jj_2_74(2)) { + jj_consume_token(SCHEMA); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + id = CompoundIdentifier(); + // DESCRIBE DATABASE and DESCRIBE CATALOG currently do the same as + // DESCRIBE SCHEMA but should be different. See + // [CALCITE-1221] Implement DESCRIBE DATABASE, CATALOG, STATEMENT + {if (true) return new SqlDescribeSchema(s.end(id), id);} + } else if (jj_2_79(2147483647)) { + if (jj_2_75(2)) { + jj_consume_token(TABLE); + } else { + ; + } + table = CompoundIdentifier(); + if (jj_2_76(2)) { + column = SimpleIdentifier(); + } else { + E(); + column = null; + } + {if (true) return new SqlDescribeTable(s.add(table).addIf(column).pos(), + table, column);} + } else if (jj_2_80(2)) { + if (jj_2_77(2)) { + jj_consume_token(STATEMENT); + } else { + ; + } + stmt = SqlQueryOrDml(); + // DESCRIBE STATEMENT currently does the same as EXPLAIN. See + // [CALCITE-1221] Implement DESCRIBE DATABASE, CATALOG, STATEMENT + final SqlExplainLevel detailLevel = SqlExplainLevel.EXPPLAN_ATTRIBUTES; + final SqlExplain.Depth depth = SqlExplain.Depth.PHYSICAL; + final SqlExplainFormat format = SqlExplainFormat.TEXT; + {if (true) return new SqlExplain(s.end(stmt), + stmt, + detailLevel.symbol(SqlParserPos.ZERO), + depth.symbol(SqlParserPos.ZERO), + format.symbol(SqlParserPos.ZERO), + nDynamicParams);} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a CALL statement. + */ + final public SqlNode SqlProcedureCall() throws ParseException { + final Span s; + SqlNode routineCall; + jj_consume_token(CALL); + s = span(); + routineCall = NamedRoutineCall(SqlFunctionCategory.USER_DEFINED_PROCEDURE, + ExprContext.ACCEPT_SUB_QUERY); + {if (true) return SqlStdOperatorTable.PROCEDURE_CALL.createCall( + s.end(routineCall), routineCall);} + throw new Error("Missing return statement in function"); + } + + final public SqlNode NamedRoutineCall(SqlFunctionCategory routineType, + ExprContext exprContext) throws ParseException { + SqlIdentifier name; + final List list = Lists.newArrayList(); + final Span s; + name = CompoundIdentifier(); + s = span(); + jj_consume_token(LPAREN); + if (jj_2_82(2)) { + Arg0(list, exprContext); + label_6: + while (true) { + if (jj_2_81(2)) { + ; + } else { + break label_6; + } + jj_consume_token(COMMA); + // a comma-list can't appear where only a query is expected + checkNonQueryExpression(exprContext); + Arg(list, exprContext); + } + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return createCall(name, s.end(this), routineType, null, list);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses an INSERT statement. + */ + final public SqlNode SqlInsert() throws ParseException { + final List keywords = Lists.newArrayList(); + final SqlNodeList keywordList; + SqlNode table; + SqlNodeList extendList = null; + SqlNode source; + SqlNodeList columnList = null; + final Span s; + if (jj_2_83(2)) { + jj_consume_token(INSERT); + } else if (jj_2_84(2)) { + jj_consume_token(UPSERT); + keywords.add(SqlInsertKeyword.UPSERT.symbol(getPos())); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s = span(); + SqlInsertKeywords(keywords); + keywordList = new SqlNodeList(keywords, s.addAll(keywords).pos()); + jj_consume_token(INTO); + table = CompoundIdentifier(); + if (jj_2_86(5)) { + if (jj_2_85(2)) { + jj_consume_token(EXTEND); + } else { + ; + } + extendList = ExtendList(); + table = extend(table, extendList); + } else { + ; + } + if (jj_2_87(2)) { + final Pair p; + p = ParenthesizedCompoundIdentifierList(); + if (p.right.size() > 0) { + table = extend(table, p.right); + } + if (p.left.size() > 0) { + columnList = p.left; + } + } else { + ; + } + source = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); + {if (true) return new SqlInsert(s.end(source), keywordList, table, source, + columnList);} + throw new Error("Missing return statement in function"); + } + +/* + * Abstract production: + * + * void SqlInsertKeywords(List keywords) + * + * Parses dialect-specific keywords immediately following the INSERT keyword. + */ + +/** + * Parses a DELETE statement. + */ + final public SqlNode SqlDelete() throws ParseException { + SqlNode table; + SqlNodeList extendList = null; + SqlIdentifier alias = null; + final SqlNode condition; + final Span s; + jj_consume_token(DELETE); + s = span(); + jj_consume_token(FROM); + table = CompoundIdentifier(); + if (jj_2_89(2)) { + if (jj_2_88(2)) { + jj_consume_token(EXTEND); + } else { + ; + } + extendList = ExtendList(); + table = extend(table, extendList); + } else { + ; + } + if (jj_2_91(2)) { + if (jj_2_90(2)) { + jj_consume_token(AS); + } else { + ; + } + alias = SimpleIdentifier(); + } else { + ; + } + condition = WhereOpt(); + {if (true) return new SqlDelete(s.add(table).addIf(extendList).addIf(alias) + .addIf(condition).pos(), table, condition, null, alias);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses an UPDATE statement. + */ + final public SqlNode SqlUpdate() throws ParseException { + SqlNode table; + SqlNodeList extendList = null; + SqlIdentifier alias = null; + SqlNode condition; + SqlNodeList sourceExpressionList; + SqlNodeList targetColumnList; + SqlIdentifier id; + SqlNode exp; + final Span s; + jj_consume_token(UPDATE); + s = span(); + table = CompoundIdentifier(); + targetColumnList = new SqlNodeList(s.pos()); + sourceExpressionList = new SqlNodeList(s.pos()); + if (jj_2_93(2)) { + if (jj_2_92(2)) { + jj_consume_token(EXTEND); + } else { + ; + } + extendList = ExtendList(); + table = extend(table, extendList); + } else { + ; + } + if (jj_2_95(2)) { + if (jj_2_94(2)) { + jj_consume_token(AS); + } else { + ; + } + alias = SimpleIdentifier(); + } else { + ; + } + jj_consume_token(SET); + id = SimpleIdentifier(); + targetColumnList.add(id); + jj_consume_token(EQ); + exp = Expression(ExprContext.ACCEPT_SUB_QUERY); + // TODO: support DEFAULT also + sourceExpressionList.add(exp); + label_7: + while (true) { + if (jj_2_96(2)) { + ; + } else { + break label_7; + } + jj_consume_token(COMMA); + id = SimpleIdentifier(); + targetColumnList.add(id); + jj_consume_token(EQ); + exp = Expression(ExprContext.ACCEPT_SUB_QUERY); + sourceExpressionList.add(exp); + } + condition = WhereOpt(); + {if (true) return new SqlUpdate(s.addAll(targetColumnList) + .addAll(sourceExpressionList).addIf(condition).pos(), table, + targetColumnList, sourceExpressionList, condition, null, alias);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a MERGE statement. + */ + final public SqlNode SqlMerge() throws ParseException { + SqlNode table; + SqlNodeList extendList = null; + SqlIdentifier alias = null; + SqlNode sourceTableRef; + SqlNode condition; + SqlUpdate updateCall = null; + SqlInsert insertCall = null; + final Span s; + jj_consume_token(MERGE); + s = span(); + jj_consume_token(INTO); + table = CompoundIdentifier(); + if (jj_2_98(2)) { + if (jj_2_97(2)) { + jj_consume_token(EXTEND); + } else { + ; + } + extendList = ExtendList(); + table = extend(table, extendList); + } else { + ; + } + if (jj_2_100(2)) { + if (jj_2_99(2)) { + jj_consume_token(AS); + } else { + ; + } + alias = SimpleIdentifier(); + } else { + ; + } + jj_consume_token(USING); + sourceTableRef = TableRef(); + jj_consume_token(ON); + condition = Expression(ExprContext.ACCEPT_SUB_QUERY); + if (jj_2_102(2)) { + updateCall = WhenMatchedClause(table, alias); + if (jj_2_101(2)) { + insertCall = WhenNotMatchedClause(table); + } else { + ; + } + } else if (jj_2_103(2)) { + insertCall = WhenNotMatchedClause(table); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new SqlMerge(s.addIf(updateCall).addIf(insertCall).pos(), table, + condition, sourceTableRef, updateCall, insertCall, null, alias);} + throw new Error("Missing return statement in function"); + } + + final public SqlUpdate WhenMatchedClause(SqlNode table, SqlIdentifier alias) throws ParseException { + SqlIdentifier id; + final Span s; + final SqlNodeList updateColumnList = new SqlNodeList(SqlParserPos.ZERO); + SqlNode exp; + final SqlNodeList updateExprList = new SqlNodeList(SqlParserPos.ZERO); + jj_consume_token(WHEN); + s = span(); + jj_consume_token(MATCHED); + jj_consume_token(THEN); + jj_consume_token(UPDATE); + jj_consume_token(SET); + id = SimpleIdentifier(); + updateColumnList.add(id); + jj_consume_token(EQ); + exp = Expression(ExprContext.ACCEPT_SUB_QUERY); + updateExprList.add(exp); + label_8: + while (true) { + if (jj_2_104(2)) { + ; + } else { + break label_8; + } + jj_consume_token(COMMA); + id = SimpleIdentifier(); + updateColumnList.add(id); + jj_consume_token(EQ); + exp = Expression(ExprContext.ACCEPT_SUB_QUERY); + updateExprList.add(exp); + } + {if (true) return new SqlUpdate(s.addAll(updateExprList).pos(), table, + updateColumnList, updateExprList, null, null, alias);} + throw new Error("Missing return statement in function"); + } + + final public SqlInsert WhenNotMatchedClause(SqlNode table) throws ParseException { + final Span insertSpan, valuesSpan; + final List keywords = Lists.newArrayList(); + final SqlNodeList keywordList; + SqlNodeList insertColumnList = null; + SqlNode rowConstructor; + SqlNode insertValues; + jj_consume_token(WHEN); + jj_consume_token(NOT); + jj_consume_token(MATCHED); + jj_consume_token(THEN); + jj_consume_token(INSERT); + insertSpan = span(); + SqlInsertKeywords(keywords); + keywordList = new SqlNodeList(keywords, insertSpan.end(this)); + if (jj_2_105(2)) { + insertColumnList = ParenthesizedSimpleIdentifierList(); + } else { + ; + } + if (jj_2_106(2)) { + jj_consume_token(LPAREN); + } else { + ; + } + jj_consume_token(VALUES); + valuesSpan = span(); + rowConstructor = RowConstructor(); + if (jj_2_107(2)) { + jj_consume_token(RPAREN); + } else { + ; + } + // TODO zfong 5/26/06: note that extra parentheses are accepted above + // around the VALUES clause as a hack for unparse, but this is + // actually invalid SQL; should fix unparse + insertValues = SqlStdOperatorTable.VALUES.createCall( + valuesSpan.end(this), rowConstructor); + {if (true) return new SqlInsert(insertSpan.end(this), keywordList, + table, insertValues, insertColumnList);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses the select list of a SELECT statement. + */ + final public List SelectList() throws ParseException { + final List list = new ArrayList(); + SqlNode item; + item = SelectItem(); + list.add(item); + label_9: + while (true) { + if (jj_2_108(2)) { + ; + } else { + break label_9; + } + jj_consume_token(COMMA); + item = SelectItem(); + list.add(item); + } + {if (true) return list;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses one item in a select list. + */ + final public SqlNode SelectItem() throws ParseException { + SqlNode e; + SqlIdentifier id; + e = SelectExpression(); + if (jj_2_110(2)) { + if (jj_2_109(2)) { + jj_consume_token(AS); + } else { + ; + } + id = SimpleIdentifier(); + e = SqlStdOperatorTable.AS.createCall(span().end(e), e, id); + } else { + ; + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses one unaliased expression in a select list. + */ + final public SqlNode SelectExpression() throws ParseException { + SqlNode e; + if (jj_2_111(2)) { + jj_consume_token(STAR); + {if (true) return SqlIdentifier.star(getPos());} + } else if (jj_2_112(2)) { + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + {if (true) return e;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public SqlLiteral Natural() throws ParseException { + if (jj_2_113(2)) { + jj_consume_token(NATURAL); + {if (true) return SqlLiteral.createBoolean(true, getPos());} + } else { + {if (true) return SqlLiteral.createBoolean(false, getPos());} + } + throw new Error("Missing return statement in function"); + } + + final public SqlLiteral JoinType() throws ParseException { + JoinType joinType; + if (jj_2_117(2)) { + jj_consume_token(JOIN); + joinType = JoinType.INNER; + } else if (jj_2_118(2)) { + jj_consume_token(INNER); + jj_consume_token(JOIN); + joinType = JoinType.INNER; + } else if (jj_2_119(2)) { + jj_consume_token(LEFT); + if (jj_2_114(2)) { + jj_consume_token(OUTER); + } else { + ; + } + jj_consume_token(JOIN); + joinType = JoinType.LEFT; + } else if (jj_2_120(2)) { + jj_consume_token(RIGHT); + if (jj_2_115(2)) { + jj_consume_token(OUTER); + } else { + ; + } + jj_consume_token(JOIN); + joinType = JoinType.RIGHT; + } else if (jj_2_121(2)) { + jj_consume_token(FULL); + if (jj_2_116(2)) { + jj_consume_token(OUTER); + } else { + ; + } + jj_consume_token(JOIN); + joinType = JoinType.FULL; + } else if (jj_2_122(2)) { + jj_consume_token(CROSS); + jj_consume_token(JOIN); + joinType = JoinType.CROSS; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return joinType.symbol(getPos());} + throw new Error("Missing return statement in function"); + } + +/** Matches "LEFT JOIN t ON ...", "RIGHT JOIN t USING ...", "JOIN t". */ + final public SqlNode JoinTable(SqlNode e) throws ParseException { + SqlNode e2, condition; + final SqlLiteral natural, joinType, on, using; + SqlNodeList list; + natural = Natural(); + joinType = JoinType(); + e2 = TableRef(); + if (jj_2_123(2)) { + jj_consume_token(ON); + on = JoinConditionType.ON.symbol(getPos()); + condition = Expression(ExprContext.ACCEPT_SUB_QUERY); + {if (true) return new SqlJoin(joinType.getParserPosition(), + e, + natural, + joinType, + e2, + on, + condition);} + } else if (jj_2_124(2)) { + jj_consume_token(USING); + using = JoinConditionType.USING.symbol(getPos()); + list = ParenthesizedSimpleIdentifierList(); + {if (true) return new SqlJoin(joinType.getParserPosition(), + e, + natural, + joinType, + e2, + using, + new SqlNodeList(list.getList(), Span.of(using).end(this)));} + } else { + {if (true) return new SqlJoin(joinType.getParserPosition(), + e, + natural, + joinType, + e2, + JoinConditionType.NONE.symbol(joinType.getParserPosition()), + null);} + } + throw new Error("Missing return statement in function"); + } + +// TODO jvs 15-Nov-2003: SQL standard allows parentheses in the FROM list for +// building up non-linear join trees (e.g. OUTER JOIN two tables, and then INNER +// JOIN the result). Also note that aliases on parenthesized FROM expressions +// "hide" all table names inside the parentheses (without aliases, they're +// visible). +// +// We allow CROSS JOIN to have a join condition, even though that is not valid +// SQL; the validator will catch it. +/** + * Parses the FROM clause for a SELECT. + * + *

FROM is mandatory in standard SQL, optional in dialects such as MySQL, + * PostgreSQL. The parser allows SELECT without FROM, but the validator fails + * if conformance is, say, STRICT_2003. + */ + final public SqlNode FromClause() throws ParseException { + SqlNode e, e2, condition; + SqlLiteral natural, joinType, joinConditionType; + SqlNodeList list; + SqlParserPos pos; + e = TableRef(); + label_10: + while (true) { + if (jj_2_125(2)) { + ; + } else { + break label_10; + } + if (jj_2_128(2)) { + natural = Natural(); + joinType = JoinType(); + e2 = TableRef(); + if (jj_2_126(2)) { + jj_consume_token(ON); + joinConditionType = JoinConditionType.ON.symbol(getPos()); + condition = Expression(ExprContext.ACCEPT_SUB_QUERY); + e = new SqlJoin(joinType.getParserPosition(), + e, + natural, + joinType, + e2, + joinConditionType, + condition); + } else if (jj_2_127(2)) { + jj_consume_token(USING); + joinConditionType = JoinConditionType.USING.symbol(getPos()); + list = ParenthesizedSimpleIdentifierList(); + e = new SqlJoin(joinType.getParserPosition(), + e, + natural, + joinType, + e2, + joinConditionType, + new SqlNodeList(list.getList(), Span.of(joinConditionType).end(this))); + } else { + e = new SqlJoin(joinType.getParserPosition(), + e, + natural, + joinType, + e2, + JoinConditionType.NONE.symbol(joinType.getParserPosition()), + null); + } + } else if (jj_2_129(2)) { + jj_consume_token(COMMA); + joinType = JoinType.COMMA.symbol(getPos()); + e2 = TableRef(); + e = new SqlJoin(joinType.getParserPosition(), + e, + SqlLiteral.createBoolean(false, joinType.getParserPosition()), + joinType, + e2, + JoinConditionType.NONE.symbol(SqlParserPos.ZERO), + null); + } else if (jj_2_130(2)) { + jj_consume_token(CROSS); + joinType = JoinType.CROSS.symbol(getPos()); + jj_consume_token(APPLY); + e2 = TableRef2(true); + if (!this.conformance.isApplyAllowed()) { + {if (true) throw new ParseException(RESOURCE.applyNotAllowed().str());} + } + e = new SqlJoin(joinType.getParserPosition(), + e, + SqlLiteral.createBoolean(false, joinType.getParserPosition()), + joinType, + e2, + JoinConditionType.NONE.symbol(SqlParserPos.ZERO), + null); + } else if (jj_2_131(2)) { + jj_consume_token(OUTER); + joinType = JoinType.LEFT.symbol(getPos()); + jj_consume_token(APPLY); + e2 = TableRef2(true); + if (!this.conformance.isApplyAllowed()) { + {if (true) throw new ParseException(RESOURCE.applyNotAllowed().str());} + } + e = new SqlJoin(joinType.getParserPosition(), + e, + SqlLiteral.createBoolean(false, joinType.getParserPosition()), + joinType, + e2, + JoinConditionType.ON.symbol(SqlParserPos.ZERO), + SqlLiteral.createBoolean(true, joinType.getParserPosition())); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a table reference in a FROM clause, not lateral unless LATERAL + * is explicitly specified. + */ + final public SqlNode TableRef() throws ParseException { + final SqlNode e; + e = TableRef2(false); + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a table reference in a FROM clause. + */ + final public SqlNode TableRef2(boolean lateral) throws ParseException { + SqlNode tableRef; + SqlNode over; + SqlNodeList extendList = null; + String alias; + final SqlIdentifier id; + final Span s, s2; + SqlNodeList args; + SqlNode sample; + boolean isBernoulli; + SqlNumericLiteral samplePercentage; + boolean isRepeatable = false; + int repeatableSeed = 0; + SqlNodeList columnAliasList = null; + SqlUnnestOperator unnestOp = SqlStdOperatorTable.UNNEST; + if (jj_2_139(2)) { + tableRef = CompoundIdentifier(); + if (jj_2_133(2)) { + if (jj_2_132(2)) { + jj_consume_token(EXTEND); + } else { + ; + } + extendList = ExtendList(); + tableRef = extend(tableRef, extendList); + } else { + ; + } + over = TableOverOpt(); + if (over != null) { + tableRef = SqlStdOperatorTable.OVER.createCall( + getPos(), tableRef, over); + } + if (jj_2_134(2)) { + over = MatchRecognizeOpt(tableRef); + if (over != null) { + tableRef = over; + } + } else { + ; + } + } else if (jj_2_140(2)) { + if (jj_2_135(2)) { + jj_consume_token(LATERAL); + lateral = true; + } else { + ; + } + tableRef = ParenthesizedExpression(ExprContext.ACCEPT_QUERY); + over = TableOverOpt(); + if (over != null) { + tableRef = SqlStdOperatorTable.OVER.createCall( + getPos(), tableRef, over); + } + if (lateral) { + tableRef = SqlStdOperatorTable.LATERAL.createCall( + getPos(), tableRef); + } + if (jj_2_136(2)) { + over = MatchRecognizeOpt(tableRef); + } else { + ; + } + if (over != null) { + tableRef = over; + } + } else if (jj_2_141(2)) { + jj_consume_token(UNNEST); + s = span(); + args = ParenthesizedQueryOrCommaList(ExprContext.ACCEPT_SUB_QUERY); + if (jj_2_137(2)) { + jj_consume_token(WITH); + jj_consume_token(ORDINALITY); + unnestOp = SqlStdOperatorTable.UNNEST_WITH_ORDINALITY; + } else { + ; + } + tableRef = unnestOp.createCall(s.end(this), args.toArray()); + } else if (jj_2_142(2)) { + if (jj_2_138(2)) { + jj_consume_token(LATERAL); + lateral = true; + } else { + ; + } + jj_consume_token(TABLE); + s = span(); + jj_consume_token(LPAREN); + tableRef = TableFunctionCall(s.pos()); + jj_consume_token(RPAREN); + if (lateral) { + tableRef = SqlStdOperatorTable.LATERAL.createCall( + s.end(this), tableRef); + } + } else if (jj_2_143(2)) { + tableRef = ExtendedTableRef(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (jj_2_146(2)) { + if (jj_2_144(2)) { + jj_consume_token(AS); + } else { + ; + } + alias = Identifier(); + id = new SqlIdentifier(alias, getPos()); + if (jj_2_145(2)) { + columnAliasList = ParenthesizedSimpleIdentifierList(); + } else { + ; + } + if (columnAliasList == null) { + tableRef = SqlStdOperatorTable.AS.createCall( + Span.of(tableRef).end(this), tableRef, id); + } else { + List idList = new ArrayList(); + idList.add(tableRef); + idList.add(id); + idList.addAll(columnAliasList.getList()); + tableRef = SqlStdOperatorTable.AS.createCall( + Span.of(tableRef).end(this), idList); + } + } else { + ; + } + if (jj_2_152(2)) { + jj_consume_token(TABLESAMPLE); + s2 = span(); + if (jj_2_150(2)) { + jj_consume_token(SUBSTITUTE); + jj_consume_token(LPAREN); + sample = StringLiteral(); + jj_consume_token(RPAREN); + String sampleName = + SqlLiteral.unchain(sample).getValueAs(String.class); + SqlSampleSpec sampleSpec = SqlSampleSpec.createNamed(sampleName); + final SqlLiteral sampleLiteral = + SqlLiteral.createSample(sampleSpec, s2.end(this)); + tableRef = SqlStdOperatorTable.TABLESAMPLE.createCall( + s2.add(tableRef).end(this), tableRef, sampleLiteral); + } else if (jj_2_151(2)) { + if (jj_2_147(2)) { + jj_consume_token(BERNOULLI); + isBernoulli = true; + } else if (jj_2_148(2)) { + jj_consume_token(SYSTEM); + isBernoulli = false; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(LPAREN); + samplePercentage = UnsignedNumericLiteral(); + jj_consume_token(RPAREN); + if (jj_2_149(2)) { + jj_consume_token(REPEATABLE); + jj_consume_token(LPAREN); + repeatableSeed = IntLiteral(); + jj_consume_token(RPAREN); + isRepeatable = true; + } else { + ; + } + final BigDecimal ONE_HUNDRED = BigDecimal.valueOf(100L); + BigDecimal rate = samplePercentage.bigDecimalValue(); + if (rate.compareTo(BigDecimal.ZERO) < 0 + || rate.compareTo(ONE_HUNDRED) > 0) + { + {if (true) throw new ParseException(RESOURCE.invalidSampleSize().str());} + } + + // Treat TABLESAMPLE(0) and TABLESAMPLE(100) as no table + // sampling at all. Not strictly correct: TABLESAMPLE(0) + // should produce no output, but it simplifies implementation + // to know that some amount of sampling will occur. + // In practice values less than ~1E-43% are treated as 0.0 and + // values greater than ~99.999997% are treated as 1.0 + float fRate = rate.divide(ONE_HUNDRED).floatValue(); + if (fRate > 0.0f && fRate < 1.0f) { + SqlSampleSpec tableSampleSpec = + isRepeatable + ? SqlSampleSpec.createTableSample( + isBernoulli, fRate, repeatableSeed) + : SqlSampleSpec.createTableSample(isBernoulli, fRate); + + SqlLiteral tableSampleLiteral = + SqlLiteral.createSample(tableSampleSpec, s2.end(this)); + tableRef = SqlStdOperatorTable.TABLESAMPLE.createCall( + s2.end(this), tableRef, tableSampleLiteral); + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + {if (true) return tableRef;} + throw new Error("Missing return statement in function"); + } + + final public SqlNodeList ExtendList() throws ParseException { + final Span s; + List list = Lists.newArrayList(); + jj_consume_token(LPAREN); + s = span(); + ColumnType(list); + label_11: + while (true) { + if (jj_2_153(2)) { + ; + } else { + break label_11; + } + jj_consume_token(COMMA); + ColumnType(list); + } + jj_consume_token(RPAREN); + {if (true) return new SqlNodeList(list, s.end(this));} + throw new Error("Missing return statement in function"); + } + + final public void ColumnType(List list) throws ParseException { + SqlIdentifier name; + SqlDataTypeSpec type; + boolean nullable = true; + name = CompoundIdentifier(); + type = DataType(); + if (jj_2_154(2)) { + jj_consume_token(NOT); + jj_consume_token(NULL); + nullable = false; + } else { + ; + } + list.add(name); + list.add(type.withNullable(nullable)); + } + +/** + * Parses a compound identifier with optional type. + */ + final public void CompoundIdentifierType(List list, List extendList) throws ParseException { + final SqlIdentifier name; + SqlDataTypeSpec type = null; + boolean nullable = true; + name = CompoundIdentifier(); + if (jj_2_156(2)) { + type = DataType(); + if (!this.conformance.allowExtend()) { + {if (true) throw new ParseException(RESOURCE.extendNotAllowed().str());} + } + if (jj_2_155(2)) { + jj_consume_token(NOT); + jj_consume_token(NULL); + nullable = false; + } else { + ; + } + } else { + ; + } + if (type != null) { + extendList.add(name); + extendList.add(type.withNullable(nullable)); + } + list.add(name); + } + + final public SqlNode TableFunctionCall(SqlParserPos pos) throws ParseException { + SqlNode call; + SqlFunctionCategory funcType = SqlFunctionCategory.USER_DEFINED_TABLE_FUNCTION; + if (jj_2_157(2)) { + jj_consume_token(SPECIFIC); + funcType = SqlFunctionCategory.USER_DEFINED_TABLE_SPECIFIC_FUNCTION; + } else { + ; + } + call = NamedRoutineCall(funcType, ExprContext.ACCEPT_CURSOR); + {if (true) return SqlStdOperatorTable.COLLECTION_TABLE.createCall(pos, call);} + throw new Error("Missing return statement in function"); + } + +/** + * Abstract production: + * SqlNode ExtendedTableRef() + * + *

Allows parser to be extended with new types of table references. The + * default implementation of this production is empty. + */ + +/* + * Abstract production: + * + * SqlNode TableOverOpt() + * + * Allows an OVER clause following a table expression as an extension to + * standard SQL syntax. The default implementation of this production is empty. + */ + +/** + * Parses an explicit TABLE t reference. + */ + final public SqlNode ExplicitTable(SqlParserPos pos) throws ParseException { + SqlNode tableRef; + jj_consume_token(TABLE); + tableRef = CompoundIdentifier(); + {if (true) return SqlStdOperatorTable.EXPLICIT_TABLE.createCall(pos, tableRef);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a VALUES leaf query expression. + */ + final public SqlNode TableConstructor() throws ParseException { + SqlNodeList rowConstructorList; + final Span s; + jj_consume_token(VALUES); + s = span(); + rowConstructorList = RowConstructorList(s); + {if (true) return SqlStdOperatorTable.VALUES.createCall( + s.end(this), rowConstructorList.toArray());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses one or more rows in a VALUES expression. + */ + final public SqlNodeList RowConstructorList(Span s) throws ParseException { + List list = new ArrayList(); + SqlNode rowConstructor; + rowConstructor = RowConstructor(); + list.add(rowConstructor); + label_12: + while (true) { + if (jj_2_158(2)) { + ; + } else { + break label_12; + } + jj_consume_token(COMMA); + rowConstructor = RowConstructor(); + list.add(rowConstructor); + } + {if (true) return new SqlNodeList(list, s.end(this));} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a row constructor in the context of a VALUES expression. + */ + final public SqlNode RowConstructor() throws ParseException { + SqlNodeList valueList; + SqlNode value; + final Span s; + if (jj_2_160(3)) { + jj_consume_token(LPAREN); + s = span(); + jj_consume_token(ROW); + valueList = ParenthesizedQueryOrCommaListWithDefault(ExprContext.ACCEPT_NONCURSOR); + jj_consume_token(RPAREN); + s.add(this); + } else if (jj_2_161(3)) { + if (jj_2_159(2)) { + jj_consume_token(ROW); + s = span(); + } else { + s = Span.of(); + } + valueList = ParenthesizedQueryOrCommaListWithDefault(ExprContext.ACCEPT_NONCURSOR); + } else if (jj_2_162(2)) { + value = Expression(ExprContext.ACCEPT_NONCURSOR); + // NOTE: A bare value here is standard SQL syntax, believe it or + // not. Taken together with multi-row table constructors, it leads + // to very easy mistakes if you forget the parentheses on a + // single-row constructor. This is also the reason for the + // LOOKAHEAD in RowConstructorList(). It would be so much more + // reasonable to require parentheses. Sigh. + s = Span.of(value); + valueList = new SqlNodeList(Collections.singletonList(value), + value.getParserPosition()); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + // REVIEW jvs 8-Feb-2004: Should we discriminate between scalar + // sub-queries inside of ROW and row sub-queries? The standard does, + // but the distinction seems to be purely syntactic. + {if (true) return SqlStdOperatorTable.ROW.createCall(s.end(valueList), + valueList.toArray());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses the optional WHERE clause for SELECT, DELETE, and UPDATE. + */ + final public SqlNode WhereOpt() throws ParseException { + SqlNode condition; + if (jj_2_163(2)) { + jj_consume_token(WHERE); + condition = Expression(ExprContext.ACCEPT_SUB_QUERY); + {if (true) return condition;} + } else { + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses the optional GROUP BY clause for SELECT. + */ + final public SqlNodeList GroupByOpt() throws ParseException { + List list = Lists.newArrayList(); + final Span s; + if (jj_2_164(2)) { + jj_consume_token(GROUP); + s = span(); + jj_consume_token(BY); + list = GroupingElementList(); + {if (true) return new SqlNodeList(list, s.addAll(list).pos());} + } else { + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + + final public List GroupingElementList() throws ParseException { + List list = Lists.newArrayList(); + SqlNode e; + e = GroupingElement(); + list.add(e); + label_13: + while (true) { + if (jj_2_165(2)) { + ; + } else { + break label_13; + } + jj_consume_token(COMMA); + e = GroupingElement(); + list.add(e); + } + {if (true) return list;} + throw new Error("Missing return statement in function"); + } + + final public SqlNode GroupingElement() throws ParseException { + List list; + final SqlNodeList nodes; + final SqlNode e; + final Span s; + if (jj_2_166(2)) { + jj_consume_token(GROUPING); + s = span(); + jj_consume_token(SETS); + jj_consume_token(LPAREN); + list = GroupingElementList(); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.GROUPING_SETS.createCall(s.end(this), list);} + } else if (jj_2_167(2)) { + jj_consume_token(ROLLUP); + s = span(); + jj_consume_token(LPAREN); + nodes = ExpressionCommaList(s, ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.ROLLUP.createCall(s.end(this), + nodes.getList());} + } else if (jj_2_168(2)) { + jj_consume_token(CUBE); + s = span(); + jj_consume_token(LPAREN); + nodes = ExpressionCommaList(s, ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.CUBE.createCall(s.end(this), + nodes.getList());} + } else if (jj_2_169(3)) { + jj_consume_token(LPAREN); + jj_consume_token(RPAREN); + {if (true) return new SqlNodeList(getPos());} + } else if (jj_2_170(2)) { + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + {if (true) return e;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a list of expressions separated by commas. + */ + final public SqlNodeList ExpressionCommaList(final Span s, + ExprContext exprContext) throws ParseException { + List list; + SqlNode e; + e = Expression(exprContext); + list = startList(e); + label_14: + while (true) { + if (jj_2_171(2)) { + ; + } else { + break label_14; + } + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + list.add(e); + } + {if (true) return new SqlNodeList(list, s.addAll(list).pos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses the optional HAVING clause for SELECT. + */ + final public SqlNode HavingOpt() throws ParseException { + SqlNode e; + if (jj_2_172(2)) { + jj_consume_token(HAVING); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + {if (true) return e;} + } else { + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses the optional WINDOW clause for SELECT + */ + final public SqlNodeList WindowOpt() throws ParseException { + SqlIdentifier id; + SqlWindow e; + List list; + final Span s; + if (jj_2_174(2)) { + jj_consume_token(WINDOW); + s = span(); + id = SimpleIdentifier(); + jj_consume_token(AS); + e = WindowSpecification(); + e.setDeclName(id); + list = startList(e); + label_15: + while (true) { + if (jj_2_173(2)) { + ; + } else { + break label_15; + } + jj_consume_token(COMMA); + id = SimpleIdentifier(); + jj_consume_token(AS); + e = WindowSpecification(); + e.setDeclName(id); + list.add(e); + } + {if (true) return new SqlNodeList(list, s.addAll(list).pos());} + } else { + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a window specification. + */ + final public SqlWindow WindowSpecification() throws ParseException { + SqlIdentifier id; + List list; + SqlNodeList partitionList; + SqlNodeList orderList; + SqlLiteral isRows = SqlLiteral.createBoolean(false, SqlParserPos.ZERO); + SqlNode lowerBound = null, upperBound = null; + SqlParserPos startPos; + final Span s, s1, s2; + SqlLiteral allowPartial = null; + jj_consume_token(LPAREN); + s = span(); + if (jj_2_175(2)) { + id = SimpleIdentifier(); + } else { + id = null; + } + if (jj_2_176(2)) { + jj_consume_token(PARTITION); + s1 = span(); + jj_consume_token(BY); + partitionList = ExpressionCommaList(s1, ExprContext.ACCEPT_NON_QUERY); + } else { + partitionList = SqlNodeList.EMPTY; + } + if (jj_2_177(2)) { + orderList = OrderBy(true); + } else { + orderList = SqlNodeList.EMPTY; + } + if (jj_2_182(2)) { + if (jj_2_178(2)) { + jj_consume_token(ROWS); + isRows = SqlLiteral.createBoolean(true, getPos()); + } else if (jj_2_179(2)) { + jj_consume_token(RANGE); + isRows = SqlLiteral.createBoolean(false, getPos()); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (jj_2_180(2)) { + jj_consume_token(BETWEEN); + lowerBound = WindowRange(); + jj_consume_token(AND); + upperBound = WindowRange(); + } else if (jj_2_181(2)) { + lowerBound = WindowRange(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + if (jj_2_185(2)) { + if (jj_2_183(2)) { + jj_consume_token(ALLOW); + s2 = span(); + jj_consume_token(PARTIAL); + allowPartial = SqlLiteral.createBoolean(true, s2.end(this)); + } else if (jj_2_184(2)) { + jj_consume_token(DISALLOW); + s2 = span(); + jj_consume_token(PARTIAL); + allowPartial = SqlLiteral.createBoolean(false, s2.end(this)); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return SqlWindow.create( + null, id, partitionList, orderList, + isRows, lowerBound, upperBound, allowPartial, s.end(this));} + throw new Error("Missing return statement in function"); + } + + final public SqlNode WindowRange() throws ParseException { + final SqlNode e; + final Span s; + if (jj_2_190(2)) { + jj_consume_token(CURRENT); + s = span(); + jj_consume_token(ROW); + {if (true) return SqlWindow.createCurrentRow(s.end(this));} + } else if (jj_2_191(2)) { + jj_consume_token(UNBOUNDED); + s = span(); + if (jj_2_186(2)) { + jj_consume_token(PRECEDING); + {if (true) return SqlWindow.createUnboundedPreceding(s.end(this));} + } else if (jj_2_187(2)) { + jj_consume_token(FOLLOWING); + {if (true) return SqlWindow.createUnboundedFollowing(s.end(this));} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else if (jj_2_192(2)) { + e = Expression(ExprContext.ACCEPT_NON_QUERY); + if (jj_2_188(2)) { + jj_consume_token(PRECEDING); + {if (true) return SqlWindow.createPreceding(e, getPos());} + } else if (jj_2_189(2)) { + jj_consume_token(FOLLOWING); + {if (true) return SqlWindow.createFollowing(e, getPos());} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses an ORDER BY clause. + */ + final public SqlNodeList OrderBy(boolean accept) throws ParseException { + List list; + SqlNode e; + final Span s; + jj_consume_token(ORDER); + s = span(); + if (!accept) { + // Someone told us ORDER BY wasn't allowed here. So why + // did they bother calling us? To get the correct + // parser position for error reporting. + {if (true) throw SqlUtil.newContextException(s.pos(), RESOURCE.illegalOrderBy());} + } + jj_consume_token(BY); + e = OrderItem(); + list = startList(e); + label_16: + while (true) { + if (jj_2_193(2)) { + ; + } else { + break label_16; + } + jj_consume_token(COMMA); + e = OrderItem(); + list.add(e); + } + {if (true) return new SqlNodeList(list, s.addAll(list).pos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses one list item in an ORDER BY clause. + */ + final public SqlNode OrderItem() throws ParseException { + SqlNode e; + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + if (jj_2_196(2)) { + if (jj_2_194(2)) { + jj_consume_token(ASC); + } else if (jj_2_195(2)) { + jj_consume_token(DESC); + e = SqlStdOperatorTable.DESC.createCall(getPos(), e); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + if (jj_2_199(2)) { + if (jj_2_197(2)) { + jj_consume_token(NULLS); + jj_consume_token(FIRST); + e = SqlStdOperatorTable.NULLS_FIRST.createCall(getPos(), e); + } else if (jj_2_198(2)) { + jj_consume_token(NULLS); + jj_consume_token(LAST); + e = SqlStdOperatorTable.NULLS_LAST.createCall(getPos(), e); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a MATCH_RECOGNIZE clause following a table expression. + */ + final public SqlMatchRecognize MatchRecognizeOpt(SqlNode tableRef) throws ParseException { + final Span s, s0, s1, s2; + SqlNodeList measureList = SqlNodeList.EMPTY; + SqlNodeList partitionList = SqlNodeList.EMPTY; + SqlNodeList orderList = SqlNodeList.EMPTY; + SqlNode pattern; + SqlLiteral interval; + SqlNodeList patternDefList; + final SqlNode after; + SqlParserPos pos; + final SqlNode var; + final SqlLiteral rowsPerMatch; + SqlNodeList subsetList = SqlNodeList.EMPTY; + SqlLiteral isStrictStarts = SqlLiteral.createBoolean(false, getPos()); + SqlLiteral isStrictEnds = SqlLiteral.createBoolean(false, getPos()); + jj_consume_token(MATCH_RECOGNIZE); + s = span(); + jj_consume_token(LPAREN); + if (jj_2_200(2)) { + jj_consume_token(PARTITION); + s2 = span(); + jj_consume_token(BY); + partitionList = ExpressionCommaList(s2, ExprContext.ACCEPT_NON_QUERY); + } else { + ; + } + if (jj_2_201(2)) { + orderList = OrderBy(true); + } else { + ; + } + if (jj_2_202(2)) { + jj_consume_token(MEASURES); + measureList = MeasureColumnCommaList(span()); + } else { + ; + } + if (jj_2_203(2)) { + jj_consume_token(ONE); + s0 = span(); + jj_consume_token(ROW); + jj_consume_token(PER); + jj_consume_token(MATCH); + rowsPerMatch = SqlMatchRecognize.RowsPerMatchOption.ONE_ROW.symbol(s0.end(this)); + } else if (jj_2_204(2)) { + jj_consume_token(ALL); + s0 = span(); + jj_consume_token(ROWS); + jj_consume_token(PER); + jj_consume_token(MATCH); + rowsPerMatch = SqlMatchRecognize.RowsPerMatchOption.ALL_ROWS.symbol(s0.end(this)); + } else { + rowsPerMatch = null; + } + if (jj_2_211(2)) { + jj_consume_token(AFTER); + s1 = span(); + jj_consume_token(MATCH); + jj_consume_token(SKIP_); + if (jj_2_209(2)) { + jj_consume_token(TO); + if (jj_2_206(2)) { + jj_consume_token(NEXT); + jj_consume_token(ROW); + after = SqlMatchRecognize.AfterOption.SKIP_TO_NEXT_ROW + .symbol(s1.end(this)); + } else if (jj_2_207(2)) { + jj_consume_token(FIRST); + var = SimpleIdentifier(); + after = SqlMatchRecognize.SKIP_TO_FIRST.createCall( + s1.end(var), var); + } else if (jj_2_208(2)) { + if (jj_2_205(2)) { + jj_consume_token(LAST); + } else { + ; + } + var = SimpleIdentifier(); + after = SqlMatchRecognize.SKIP_TO_LAST.createCall( + s1.end(var), var); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else if (jj_2_210(2)) { + jj_consume_token(PAST); + jj_consume_token(LAST); + jj_consume_token(ROW); + after = SqlMatchRecognize.AfterOption.SKIP_PAST_LAST_ROW + .symbol(s1.end(this)); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + after = null; + } + jj_consume_token(PATTERN); + jj_consume_token(LPAREN); + if (jj_2_212(2)) { + jj_consume_token(CARET); + isStrictStarts = SqlLiteral.createBoolean(true, getPos()); + } else { + isStrictStarts = SqlLiteral.createBoolean(false, getPos()); + } + pattern = PatternExpression(); + if (jj_2_213(2)) { + jj_consume_token(DOLLAR); + isStrictEnds = SqlLiteral.createBoolean(true, getPos()); + } else { + isStrictEnds = SqlLiteral.createBoolean(false, getPos()); + } + jj_consume_token(RPAREN); + if (jj_2_214(2)) { + jj_consume_token(WITHIN); + interval = IntervalLiteral(); + } else { + interval = null; + } + if (jj_2_215(2)) { + jj_consume_token(SUBSET); + subsetList = SubsetDefinitionCommaList(span()); + } else { + ; + } + jj_consume_token(DEFINE); + patternDefList = PatternDefinitionCommaList(span()); + jj_consume_token(RPAREN); + {if (true) return new SqlMatchRecognize(s.end(this), tableRef, + pattern, isStrictStarts, isStrictEnds, patternDefList, measureList, + after, subsetList, rowsPerMatch, partitionList, orderList, interval);} + throw new Error("Missing return statement in function"); + } + + final public SqlNodeList MeasureColumnCommaList(Span s) throws ParseException { + SqlNode e; + final List eList = new ArrayList(); + e = MeasureColumn(); + eList.add(e); + label_17: + while (true) { + if (jj_2_216(2)) { + ; + } else { + break label_17; + } + jj_consume_token(COMMA); + e = MeasureColumn(); + eList.add(e); + } + {if (true) return new SqlNodeList(eList, s.addAll(eList).pos());} + throw new Error("Missing return statement in function"); + } + + final public SqlNode MeasureColumn() throws ParseException { + SqlNode e; + SqlIdentifier alias; + e = Expression(ExprContext.ACCEPT_NON_QUERY); + jj_consume_token(AS); + alias = SimpleIdentifier(); + {if (true) return SqlStdOperatorTable.AS.createCall(Span.of(e).end(this), e, alias);} + throw new Error("Missing return statement in function"); + } + + final public SqlNode PatternExpression() throws ParseException { + SqlNode left; + SqlNode right; + left = PatternTerm(); + label_18: + while (true) { + if (jj_2_217(2)) { + ; + } else { + break label_18; + } + jj_consume_token(VERTICAL_BAR); + right = PatternTerm(); + left = SqlStdOperatorTable.PATTERN_ALTER.createCall( + Span.of(left).end(right), left, right); + } + {if (true) return left;} + throw new Error("Missing return statement in function"); + } + + final public SqlNode PatternTerm() throws ParseException { + SqlNode left; + SqlNode right; + left = PatternFactor(); + label_19: + while (true) { + if (jj_2_218(2)) { + ; + } else { + break label_19; + } + right = PatternFactor(); + left = SqlStdOperatorTable.PATTERN_CONCAT.createCall( + Span.of(left).end(right), left, right); + } + {if (true) return left;} + throw new Error("Missing return statement in function"); + } + + final public SqlNode PatternFactor() throws ParseException { + SqlNode e; + SqlNode extra; + SqlLiteral startNum = null; + SqlLiteral endNum = null; + SqlLiteral reluctant = SqlLiteral.createBoolean(false, SqlParserPos.ZERO); + e = PatternPrimary(); + if (jj_2_229(2)) { + if (jj_2_224(2)) { + jj_consume_token(STAR); + startNum = SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO); + endNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); + } else if (jj_2_225(2)) { + jj_consume_token(PLUS); + startNum = SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO); + endNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); + } else if (jj_2_226(2)) { + jj_consume_token(HOOK); + startNum = SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO); + endNum = SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO); + } else if (jj_2_227(2)) { + jj_consume_token(LBRACE); + if (jj_2_221(2)) { + startNum = UnsignedNumericLiteral(); + endNum = startNum; + if (jj_2_220(2)) { + jj_consume_token(COMMA); + endNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); + if (jj_2_219(2)) { + endNum = UnsignedNumericLiteral(); + } else { + ; + } + } else { + ; + } + jj_consume_token(RBRACE); + } else if (jj_2_222(2)) { + startNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); + jj_consume_token(COMMA); + endNum = UnsignedNumericLiteral(); + jj_consume_token(RBRACE); + } else if (jj_2_223(2)) { + jj_consume_token(MINUS); + extra = PatternExpression(); + jj_consume_token(MINUS); + jj_consume_token(RBRACE); + extra = SqlStdOperatorTable.PATTERN_EXCLUDE.createCall( + Span.of(extra).end(this), extra); + e = SqlStdOperatorTable.PATTERN_CONCAT.createCall( + Span.of(e).end(this), e, extra); + {if (true) return e;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (jj_2_228(2)) { + jj_consume_token(HOOK); + if (startNum.intValue(true) != endNum.intValue(true)) { + reluctant = SqlLiteral.createBoolean(true, SqlParserPos.ZERO); + } + } else { + ; + } + } else { + ; + } + if (startNum == null) { + {if (true) return e;} + } else { + {if (true) return SqlStdOperatorTable.PATTERN_QUANTIFIER.createCall( + span().end(e), e, startNum, endNum, reluctant);} + } + throw new Error("Missing return statement in function"); + } + + final public SqlNode PatternPrimary() throws ParseException { + final Span s; + SqlNode e; + List eList; + if (jj_2_231(2)) { + e = SimpleIdentifier(); + } else if (jj_2_232(2)) { + jj_consume_token(LPAREN); + e = PatternExpression(); + jj_consume_token(RPAREN); + } else if (jj_2_233(2)) { + jj_consume_token(LBRACE); + s = span(); + jj_consume_token(MINUS); + e = PatternExpression(); + jj_consume_token(MINUS); + jj_consume_token(RBRACE); + e = SqlStdOperatorTable.PATTERN_EXCLUDE.createCall(s.end(this), e); + } else if (jj_2_234(2)) { + jj_consume_token(PERMUTE); + s = span(); + jj_consume_token(LPAREN); + e = PatternExpression(); + eList = new ArrayList(); + eList.add(e); + label_20: + while (true) { + if (jj_2_230(2)) { + ; + } else { + break label_20; + } + jj_consume_token(COMMA); + e = PatternExpression(); + eList.add(e); + } + jj_consume_token(RPAREN); + e = SqlStdOperatorTable.PATTERN_PERMUTE.createCall( + s.end(this), eList); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + + final public SqlNodeList SubsetDefinitionCommaList(Span s) throws ParseException { + SqlNode e; + final List eList = new ArrayList(); + e = SubsetDefinition(); + eList.add(e); + label_21: + while (true) { + if (jj_2_235(2)) { + ; + } else { + break label_21; + } + jj_consume_token(COMMA); + e = SubsetDefinition(); + eList.add(e); + } + {if (true) return new SqlNodeList(eList, s.addAll(eList).pos());} + throw new Error("Missing return statement in function"); + } + + final public SqlNode SubsetDefinition() throws ParseException { + final SqlNode var; + final SqlNodeList varList; + var = SimpleIdentifier(); + jj_consume_token(EQ); + jj_consume_token(LPAREN); + varList = ExpressionCommaList(span(), ExprContext.ACCEPT_NON_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.EQUALS.createCall(span().end(var), var, + varList);} + throw new Error("Missing return statement in function"); + } + + final public SqlNodeList PatternDefinitionCommaList(Span s) throws ParseException { + SqlNode e; + final List eList = new ArrayList(); + e = PatternDefinition(); + eList.add(e); + label_22: + while (true) { + if (jj_2_236(2)) { + ; + } else { + break label_22; + } + jj_consume_token(COMMA); + e = PatternDefinition(); + eList.add(e); + } + {if (true) return new SqlNodeList(eList, s.addAll(eList).pos());} + throw new Error("Missing return statement in function"); + } + + final public SqlNode PatternDefinition() throws ParseException { + final SqlNode var; + final SqlNode e; + var = SimpleIdentifier(); + jj_consume_token(AS); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + {if (true) return SqlStdOperatorTable.AS.createCall(Span.of(var, e).pos(), e, var);} + throw new Error("Missing return statement in function"); + } + +// ---------------------------------------------------------------------------- +// Expressions + +/** + * Parses a SQL expression (such as might occur in a WHERE clause) followed by + * the end-of-file symbol. + */ + final public SqlNode SqlExpressionEof() throws ParseException { + SqlNode e; + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(0); + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses either a row expression or a query expression without ORDER BY. + */ + final public SqlNode QueryOrExpr(ExprContext exprContext) throws ParseException { + SqlNodeList withList = null; + SqlNode e; + SqlOperator op; + SqlParserPos pos; + SqlParserPos withPos; + List list; + if (jj_2_237(2)) { + withList = WithList(); + } else { + ; + } + e = LeafQueryOrExpr(exprContext); + list = startList(e); + label_23: + while (true) { + if (jj_2_238(2)) { + ; + } else { + break label_23; + } + if (!e.isA(SqlKind.QUERY)) { + // whoops, expression we just parsed wasn't a query, + // but we're about to see something like UNION, so + // force an exception retroactively + checkNonQueryExpression(ExprContext.ACCEPT_QUERY); + } + op = BinaryQueryOperator(); + // ensure a query is legal in this context + pos = getPos(); + checkQueryExpression(exprContext); + e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); + list.add(new SqlParserUtil.ToTreeListItem(op, pos)); + list.add(e); + } + e = SqlParserUtil.toTree(list); + if (withList != null) { + e = new SqlWith(withList.getParserPosition(), withList, e); + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + + final public SqlNodeList WithList() throws ParseException { + SqlWithItem withItem; + SqlParserPos pos; + SqlNodeList list; + jj_consume_token(WITH); + list = new SqlNodeList(getPos()); + withItem = WithItem(); + list.add(withItem); + label_24: + while (true) { + if (jj_2_239(2)) { + ; + } else { + break label_24; + } + jj_consume_token(COMMA); + withItem = WithItem(); + list.add(withItem); + } + {if (true) return list;} + throw new Error("Missing return statement in function"); + } + + final public SqlWithItem WithItem() throws ParseException { + SqlIdentifier id; + SqlNodeList columnList = null; + SqlNode definition; + id = SimpleIdentifier(); + if (jj_2_240(2)) { + columnList = ParenthesizedSimpleIdentifierList(); + } else { + ; + } + jj_consume_token(AS); + definition = ParenthesizedExpression(ExprContext.ACCEPT_QUERY); + {if (true) return new SqlWithItem(id.getParserPosition(), id, columnList, + definition);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses either a row expression, a leaf query expression, or + * a parenthesized expression of any kind. + */ + final public SqlNode LeafQueryOrExpr(ExprContext exprContext) throws ParseException { + SqlNode e; + if (jj_2_241(2)) { + e = Expression(exprContext); + {if (true) return e;} + } else if (jj_2_242(2)) { + e = LeafQuery(exprContext); + {if (true) return e;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a row expression or a parenthesized expression of any kind. + */ + final public SqlNode Expression(ExprContext exprContext) throws ParseException { + List list; + SqlNode e; + list = Expression2(exprContext); + e = SqlParserUtil.toTree(list); + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +// TODO jvs 15-Nov-2003: ANY/ALL + final public void Expression2b(ExprContext exprContext, List list) throws ParseException { + SqlNode e; + SqlOperator op; + label_25: + while (true) { + if (jj_2_243(2)) { + ; + } else { + break label_25; + } + op = PrefixRowOperator(); + checkNonQueryExpression(exprContext); + list.add(new SqlParserUtil.ToTreeListItem(op, getPos())); + } + e = Expression3(exprContext); + list.add(e); + } + +/** + * Parses a binary row expression, or a parenthesized expression of any + * kind. + * + *

The result is as a flat list of operators and operands. The top-level + * call to get an expression should call {@link #Expression}, but lower-level + * calls should call this, to give the parser the opportunity to associate + * operator calls. + * + *

For example 'a = b like c = d' should come out '((a = b) like c) = d' + * because LIKE and '=' have the same precedence, but tends to come out as '(a + * = b) like (c = d)' because (a = b) and (c = d) are parsed as separate + * expressions. + */ + final public List Expression2(ExprContext exprContext) throws ParseException { + final List list = new ArrayList(); + List list2; + SqlNodeList nodeList; + SqlNode e; + SqlOperator op; + String p; + final Span s = span(); + Expression2b(exprContext, list); + if (jj_2_272(2)) { + label_26: + while (true) { + if (jj_2_265(2)) { + checkNonQueryExpression(exprContext); + if (jj_2_247(2)) { + jj_consume_token(NOT); + jj_consume_token(IN); + op = SqlStdOperatorTable.NOT_IN; + } else if (jj_2_248(2)) { + jj_consume_token(IN); + op = SqlStdOperatorTable.IN; + } else if (jj_2_249(2)) { + final SqlKind k; + k = comp(); + if (jj_2_244(2)) { + jj_consume_token(SOME); + op = SqlStdOperatorTable.some(k); + } else if (jj_2_245(2)) { + jj_consume_token(ANY); + op = SqlStdOperatorTable.some(k); + } else if (jj_2_246(2)) { + jj_consume_token(ALL); + op = SqlStdOperatorTable.all(k); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s.clear().add(this); + nodeList = ParenthesizedQueryOrCommaList(ExprContext.ACCEPT_NONCURSOR); + list.add(new SqlParserUtil.ToTreeListItem(op, s.pos())); + s.add(nodeList); + // special case for stuff like IN (s1 UNION s2) + if (nodeList.size() == 1) { + SqlNode item = nodeList.get(0); + if (item.isA(SqlKind.QUERY)) { + list.add(item); + } else { + list.add(nodeList); + } + } else { + list.add(nodeList); + } + } else if (jj_2_266(2)) { + checkNonQueryExpression(exprContext); + if (jj_2_256(2)) { + jj_consume_token(NOT); + jj_consume_token(BETWEEN); + op = SqlStdOperatorTable.NOT_BETWEEN; + s.clear().add(this); + if (jj_2_252(2)) { + if (jj_2_250(2)) { + jj_consume_token(SYMMETRIC); + op = SqlStdOperatorTable.SYMMETRIC_NOT_BETWEEN; + } else if (jj_2_251(2)) { + jj_consume_token(ASYMMETRIC); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + } else if (jj_2_257(2)) { + jj_consume_token(BETWEEN); + op = SqlStdOperatorTable.BETWEEN; + s.clear().add(this); + if (jj_2_255(2)) { + if (jj_2_253(2)) { + jj_consume_token(SYMMETRIC); + op = SqlStdOperatorTable.SYMMETRIC_BETWEEN; + } else if (jj_2_254(2)) { + jj_consume_token(ASYMMETRIC); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + e = Expression3(ExprContext.ACCEPT_SUB_QUERY); + list.add(new SqlParserUtil.ToTreeListItem(op, s.pos())); + list.add(e); + } else if (jj_2_267(2)) { + checkNonQueryExpression(exprContext); + s.clear().add(this); + if (jj_2_260(2)) { + jj_consume_token(NOT); + if (jj_2_258(2)) { + jj_consume_token(LIKE); + op = SqlStdOperatorTable.NOT_LIKE; + } else if (jj_2_259(2)) { + jj_consume_token(SIMILAR); + jj_consume_token(TO); + op = SqlStdOperatorTable.NOT_SIMILAR_TO; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else if (jj_2_261(2)) { + jj_consume_token(LIKE); + op = SqlStdOperatorTable.LIKE; + } else if (jj_2_262(2)) { + jj_consume_token(SIMILAR); + jj_consume_token(TO); + op = SqlStdOperatorTable.SIMILAR_TO; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + list2 = Expression2(ExprContext.ACCEPT_SUB_QUERY); + list.add(new SqlParserUtil.ToTreeListItem(op, s.pos())); + list.addAll(list2); + if (jj_2_263(2)) { + jj_consume_token(ESCAPE); + e = Expression3(ExprContext.ACCEPT_SUB_QUERY); + s.clear().add(this); + list.add( + new SqlParserUtil.ToTreeListItem( + SqlStdOperatorTable.ESCAPE, s.pos())); + list.add(e); + } else { + ; + } + } else if (jj_2_268(3)) { + op = BinaryRowOperator(); + checkNonQueryExpression(exprContext); + list.add(new SqlParserUtil.ToTreeListItem(op, getPos())); + Expression2b(ExprContext.ACCEPT_SUB_QUERY, list); + } else if (jj_2_269(2)) { + jj_consume_token(LBRACKET); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(RBRACKET); + list.add( + new SqlParserUtil.ToTreeListItem( + SqlStdOperatorTable.ITEM, getPos())); + list.add(e); + label_27: + while (true) { + if (jj_2_264(2)) { + ; + } else { + break label_27; + } + jj_consume_token(DOT); + p = Identifier(); + list.add( + new SqlParserUtil.ToTreeListItem( + SqlStdOperatorTable.DOT, getPos())); + list.add(new SqlIdentifier(p, getPos())); + } + } else if (jj_2_270(2)) { + checkNonQueryExpression(exprContext); + op = PostfixRowOperator(); + list.add(new SqlParserUtil.ToTreeListItem(op, getPos())); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (jj_2_271(2)) { + ; + } else { + break label_26; + } + } + {if (true) return list;} + } else { + {if (true) return list;} + } + throw new Error("Missing return statement in function"); + } + +/** Parses a comparison operator inside a SOME / ALL predicate. */ + final public SqlKind comp() throws ParseException { + if (jj_2_273(2)) { + jj_consume_token(LT); + {if (true) return SqlKind.LESS_THAN;} + } else if (jj_2_274(2)) { + jj_consume_token(LE); + {if (true) return SqlKind.LESS_THAN_OR_EQUAL;} + } else if (jj_2_275(2)) { + jj_consume_token(GT); + {if (true) return SqlKind.GREATER_THAN;} + } else if (jj_2_276(2)) { + jj_consume_token(GE); + {if (true) return SqlKind.GREATER_THAN_OR_EQUAL;} + } else if (jj_2_277(2)) { + jj_consume_token(EQ); + {if (true) return SqlKind.EQUALS;} + } else if (jj_2_278(2)) { + jj_consume_token(NE); + {if (true) return SqlKind.NOT_EQUALS;} + } else if (jj_2_279(2)) { + jj_consume_token(NE2); + if (!this.conformance.isBangEqualAllowed()) { + {if (true) throw new ParseException(RESOURCE.bangEqualNotAllowed().str());} + } + {if (true) return SqlKind.NOT_EQUALS;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a unary row expression, or a parenthesized expression of any + * kind. + */ + final public SqlNode Expression3(ExprContext exprContext) throws ParseException { + final SqlNode e; + final SqlNodeList list; + final SqlNodeList list1; + final SqlNodeList list2; + final SqlOperator op; + final Span s; + Span rowSpan = null; + if (jj_2_282(2)) { + e = AtomicRowExpression(); + checkNonQueryExpression(exprContext); + {if (true) return e;} + } else if (jj_2_283(2)) { + e = CursorExpression(exprContext); + {if (true) return e;} + } else if (jj_2_284(3)) { + jj_consume_token(ROW); + s = span(); + list = ParenthesizedSimpleIdentifierList(); + if (exprContext != ExprContext.ACCEPT_ALL + && exprContext != ExprContext.ACCEPT_CURSOR) + { + {if (true) throw SqlUtil.newContextException(s.end(list), + RESOURCE.illegalRowExpression());} + } + {if (true) return SqlStdOperatorTable.ROW.createCall(list);} + } else if (jj_2_285(2)) { + if (jj_2_280(2)) { + jj_consume_token(ROW); + rowSpan = span(); + } else { + ; + } + list1 = ParenthesizedQueryOrCommaList(exprContext); + if (rowSpan != null) { + // interpret as row constructor + {if (true) return SqlStdOperatorTable.ROW.createCall(rowSpan.end(list1), + list1.toArray());} + } + if (jj_2_281(2)) { + e = IntervalQualifier(); + if ((list1.size() == 1) + && list1.get(0) instanceof SqlCall) + { + final SqlCall call = (SqlCall) list1.get(0); + if (call.getKind() == SqlKind.MINUS + && call.operandCount() == 2) { + List list3 = startList(call.operand(0)); + list3.add(call.operand(1)); + list3.add(e); + {if (true) return SqlStdOperatorTable.MINUS_DATE.createCall( + Span.of(list1).end(this), list3);} + } + } + {if (true) throw SqlUtil.newContextException(span().end(list1), + RESOURCE.illegalMinusDate());} + } else { + ; + } + if (list1.size() == 1) { + // interpret as single value or query + {if (true) return list1.get(0);} + } else { + // interpret as row constructor + {if (true) return SqlStdOperatorTable.ROW.createCall(span().end(list1), + list1.toArray());} + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public SqlOperator periodOperator() throws ParseException { + if (jj_2_286(2)) { + jj_consume_token(OVERLAPS); + {if (true) return SqlStdOperatorTable.OVERLAPS;} + } else if (jj_2_287(2)) { + jj_consume_token(IMMEDIATELY); + jj_consume_token(PRECEDES); + {if (true) return SqlStdOperatorTable.IMMEDIATELY_PRECEDES;} + } else if (jj_2_288(2)) { + jj_consume_token(PRECEDES); + {if (true) return SqlStdOperatorTable.PRECEDES;} + } else if (jj_2_289(2)) { + jj_consume_token(IMMEDIATELY); + jj_consume_token(SUCCEEDS); + {if (true) return SqlStdOperatorTable.IMMEDIATELY_SUCCEEDS;} + } else if (jj_2_290(2)) { + jj_consume_token(SUCCEEDS); + {if (true) return SqlStdOperatorTable.SUCCEEDS;} + } else if (jj_2_291(2)) { + jj_consume_token(EQUALS); + {if (true) return SqlStdOperatorTable.PERIOD_EQUALS;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a COLLATE clause + */ + final public SqlCollation CollateClause() throws ParseException { + jj_consume_token(COLLATE); + jj_consume_token(COLLATION_ID); + {if (true) return new SqlCollation( + getToken(0).image, SqlCollation.Coercibility.EXPLICIT);} + throw new Error("Missing return statement in function"); + } + +/** + * Numeric literal or parameter; used in LIMIT, OFFSET and FETCH clauses. + */ + final public SqlNode UnsignedNumericLiteralOrParam() throws ParseException { + final SqlNode e; + if (jj_2_292(2)) { + e = UnsignedNumericLiteral(); + } else if (jj_2_293(2)) { + e = DynamicParam(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses an atomic row expression. + */ + final public SqlNode AtomicRowExpression() throws ParseException { + final SqlNode e; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case DATE: + case FALSE: + case INTERVAL: + case NULL: + case TIME: + case TIMESTAMP: + case TRUE: + case UNKNOWN: + case UNSIGNED_INTEGER_LITERAL: + case APPROX_NUMERIC_LITERAL: + case DECIMAL_NUMERIC_LITERAL: + case BINARY_STRING_LITERAL: + case QUOTED_STRING: + case PREFIXED_STRING_LITERAL: + case UNICODE_STRING_LITERAL: + case LBRACE_D: + case LBRACE_T: + case LBRACE_TS: + case PLUS: + case MINUS: + e = Literal(); + break; + default: + jj_la1[0] = jj_gen; + if (jj_2_294(2)) { + e = DynamicParam(); + } else if (jj_2_295(2)) { + e = BuiltinFunctionCall(); + } else if (jj_2_296(2)) { + e = JdbcFunctionCall(); + } else if (jj_2_297(2)) { + e = MultisetConstructor(); + } else if (jj_2_298(2)) { + e = ArrayConstructor(); + } else if (jj_2_299(2)) { + e = MapConstructor(); + } else if (jj_2_300(2)) { + e = PeriodConstructor(); + } else if (jj_2_301(2147483647)) { + e = NamedFunctionCall(); + } else if (jj_2_302(2)) { + e = ContextVariable(); + } else if (jj_2_303(2)) { + e = CompoundIdentifier(); + } else if (jj_2_304(2)) { + e = NewSpecification(); + } else if (jj_2_305(2)) { + e = CaseExpression(); + } else if (jj_2_306(2)) { + e = SequenceExpression(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + + final public SqlNode CaseExpression() throws ParseException { + final Span whenSpan = Span.of(); + final Span thenSpan = Span.of(); + final Span s; + SqlNode e; + SqlNode caseIdentifier = null; + SqlNode elseClause = null; + List whenList = new ArrayList(); + List thenList = new ArrayList(); + jj_consume_token(CASE); + s = span(); + if (jj_2_307(2)) { + caseIdentifier = Expression(ExprContext.ACCEPT_SUB_QUERY); + } else { + ; + } + label_28: + while (true) { + jj_consume_token(WHEN); + whenSpan.add(this); + e = ExpressionCommaList(s, ExprContext.ACCEPT_SUB_QUERY); + if (((SqlNodeList) e).size() == 1) { + e = ((SqlNodeList) e).get(0); + } + whenList.add(e); + jj_consume_token(THEN); + thenSpan.add(this); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + thenList.add(e); + if (jj_2_308(2)) { + ; + } else { + break label_28; + } + } + if (jj_2_309(2)) { + jj_consume_token(ELSE); + elseClause = Expression(ExprContext.ACCEPT_SUB_QUERY); + } else { + ; + } + jj_consume_token(END); + {if (true) return SqlCase.createSwitched(s.end(this), caseIdentifier, + new SqlNodeList(whenList, whenSpan.addAll(whenList).pos()), + new SqlNodeList(thenList, thenSpan.addAll(thenList).pos()), + elseClause);} + throw new Error("Missing return statement in function"); + } + + final public SqlCall SequenceExpression() throws ParseException { + final Span s; + final SqlOperator f; + final SqlNode sequenceRef; + if (jj_2_310(2)) { + jj_consume_token(NEXT); + f = SqlStdOperatorTable.NEXT_VALUE; s = span(); + } else if (jj_2_311(2)) { + jj_consume_token(CURRENT); + f = SqlStdOperatorTable.CURRENT_VALUE; s = span(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(VALUE); + jj_consume_token(FOR); + sequenceRef = CompoundIdentifier(); + {if (true) return f.createCall(s.end(sequenceRef), sequenceRef);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses "SET <NAME> = VALUE" or "RESET <NAME>", without a leading + * "ALTER <SCOPE>". + */ + final public SqlSetOption SqlSetOption(Span s, String scope) throws ParseException { + SqlIdentifier name; + final SqlNode val; + if (jj_2_317(2)) { + jj_consume_token(SET); + s.add(this); + name = CompoundIdentifier(); + jj_consume_token(EQ); + if (jj_2_312(2)) { + val = Literal(); + } else if (jj_2_313(2)) { + val = SimpleIdentifier(); + } else if (jj_2_314(2)) { + jj_consume_token(ON); + // OFF is handled by SimpleIdentifier, ON handled here. + val = new SqlIdentifier(token.image.toUpperCase(Locale.ROOT), + getPos()); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new SqlSetOption(s.end(val), scope, name, val);} + } else if (jj_2_318(2)) { + jj_consume_token(RESET); + s.add(this); + if (jj_2_315(2)) { + name = CompoundIdentifier(); + } else if (jj_2_316(2)) { + jj_consume_token(ALL); + name = new SqlIdentifier(token.image.toUpperCase(Locale.ROOT), + getPos()); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new SqlSetOption(s.end(name), scope, name, null);} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses an expression for setting or resetting an option in SQL, such as QUOTED_IDENTIFIERS, + * or explain plan level (physical/logical). + */ + final public SqlAlter SqlAlter() throws ParseException { + final Span s; + final String scope; + final SqlAlter alterNode; + jj_consume_token(ALTER); + s = span(); + scope = Scope(); + alterNode = SqlSetOption(s, scope); + {if (true) return alterNode;} + throw new Error("Missing return statement in function"); + } + + final public String Scope() throws ParseException { + if (jj_2_319(2)) { + jj_consume_token(SYSTEM); + } else if (jj_2_320(2)) { + jj_consume_token(SESSION); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return token.image.toUpperCase(Locale.ROOT);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a literal expression, allowing continued string literals. + * Usually returns an SqlLiteral, but a continued string literal + * is an SqlCall expression, which concatenates 2 or more string + * literals; the validator reduces this. + */ + final public SqlNode Literal() throws ParseException { + SqlNode e; + if (jj_2_321(2)) { + e = NumericLiteral(); + } else if (jj_2_322(2)) { + e = StringLiteral(); + } else if (jj_2_323(2)) { + e = SpecialLiteral(); + } else if (jj_2_324(2)) { + e = DateTimeLiteral(); + } else if (jj_2_325(2)) { + e = IntervalLiteral(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return e;} + throw new Error("Missing return statement in function"); + } + +/** Parses a unsigned numeric literal */ + final public SqlNumericLiteral UnsignedNumericLiteral() throws ParseException { + if (jj_2_326(2)) { + jj_consume_token(UNSIGNED_INTEGER_LITERAL); + {if (true) return SqlLiteral.createExactNumeric(token.image, getPos());} + } else if (jj_2_327(2)) { + jj_consume_token(DECIMAL_NUMERIC_LITERAL); + {if (true) return SqlLiteral.createExactNumeric(token.image, getPos());} + } else if (jj_2_328(2)) { + jj_consume_token(APPROX_NUMERIC_LITERAL); + {if (true) return SqlLiteral.createApproxNumeric(token.image, getPos());} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** Parses a numeric literal (can be signed) */ + final public SqlLiteral NumericLiteral() throws ParseException { + final SqlNumericLiteral num; + final Span s; + if (jj_2_329(2)) { + jj_consume_token(PLUS); + num = UnsignedNumericLiteral(); + {if (true) return num;} + } else if (jj_2_330(2)) { + jj_consume_token(MINUS); + s = span(); + num = UnsignedNumericLiteral(); + {if (true) return SqlLiteral.createNegative(num, s.end(this));} + } else if (jj_2_331(2)) { + num = UnsignedNumericLiteral(); + {if (true) return num;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** Parse a special literal keyword */ + final public SqlLiteral SpecialLiteral() throws ParseException { + if (jj_2_332(2)) { + jj_consume_token(TRUE); + {if (true) return SqlLiteral.createBoolean(true, getPos());} + } else if (jj_2_333(2)) { + jj_consume_token(FALSE); + {if (true) return SqlLiteral.createBoolean(false, getPos());} + } else if (jj_2_334(2)) { + jj_consume_token(UNKNOWN); + {if (true) return SqlLiteral.createUnknown(getPos());} + } else if (jj_2_335(2)) { + jj_consume_token(NULL); + {if (true) return SqlLiteral.createNull(getPos());} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a string literal. The literal may be continued onto several + * lines. For a simple literal, the result is an SqlLiteral. For a continued + * literal, the result is an SqlCall expression, which concatenates 2 or more + * string literals; the validator reduces this. + * + * @see SqlLiteral#unchain(SqlNode) + * @see SqlLiteral#stringValue(SqlNode) + * + * @return a literal expression + */ + final public SqlNode StringLiteral() throws ParseException { + String p; + int nfrags = 0; + List frags = null; + char unicodeEscapeChar = 0; + if (jj_2_342(2)) { + jj_consume_token(BINARY_STRING_LITERAL); + try { + p = SqlParserUtil.trim(token.image, "xX'"); + frags = startList(SqlLiteral.createBinaryString(p, getPos())); + nfrags++; + } catch (NumberFormatException ex) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.illegalBinaryString(token.image));} + } + label_29: + while (true) { + if (jj_2_336(2)) { + ; + } else { + break label_29; + } + jj_consume_token(QUOTED_STRING); + try { + p = SqlParserUtil.trim(token.image, "'"); // no embedded quotes + frags.add(SqlLiteral.createBinaryString(p, getPos())); + nfrags++; + } catch (NumberFormatException ex) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.illegalBinaryString(token.image));} + } + } + assert (nfrags > 0); + if (nfrags == 1) { + {if (true) return frags.get(0);} // just the head fragment + } else { + SqlParserPos pos2 = SqlParserPos.sum(frags); + {if (true) return SqlStdOperatorTable.LITERAL_CHAIN.createCall(pos2, frags);} + } + } else if (jj_2_343(2)) { + String charSet = null; + if (jj_2_337(2)) { + jj_consume_token(PREFIXED_STRING_LITERAL); + charSet = SqlParserUtil.getCharacterSet(token.image); + } else if (jj_2_338(2)) { + jj_consume_token(QUOTED_STRING); + } else if (jj_2_339(2)) { + jj_consume_token(UNICODE_STRING_LITERAL); + // TODO jvs 2-Feb-2009: support the explicit specification of + // a character set for Unicode string literals, per SQL:2003 + unicodeEscapeChar = BACKSLASH; + charSet = "UTF16"; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + p = SqlParserUtil.parseString(token.image); + SqlCharStringLiteral literal; + try { + literal = SqlLiteral.createCharString(p, charSet, getPos()); + } catch (java.nio.charset.UnsupportedCharsetException e) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.unknownCharacterSet(charSet));} + } + frags = startList(literal); + nfrags++; + label_30: + while (true) { + if (jj_2_340(2)) { + ; + } else { + break label_30; + } + jj_consume_token(QUOTED_STRING); + p = SqlParserUtil.parseString(token.image); + try { + literal = SqlLiteral.createCharString(p, charSet, getPos()); + } catch (java.nio.charset.UnsupportedCharsetException e) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.unknownCharacterSet(charSet));} + } + frags.add(literal); + nfrags++; + } + if (jj_2_341(2)) { + jj_consume_token(UESCAPE); + jj_consume_token(QUOTED_STRING); + if (unicodeEscapeChar == 0) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.unicodeEscapeUnexpected());} + } + String s = SqlParserUtil.parseString(token.image); + unicodeEscapeChar = SqlParserUtil.checkUnicodeEscapeChar(s); + } else { + ; + } + assert nfrags > 0; + if (nfrags == 1) { + // just the head fragment + SqlLiteral lit = (SqlLiteral) frags.get(0); + {if (true) return lit.unescapeUnicode(unicodeEscapeChar);} + } else { + SqlNode[] rands = (SqlNode[]) frags.toArray(new SqlNode[nfrags]); + for (int i = 0; i < rands.length; ++i) { + rands[i] = ((SqlLiteral) rands[i]).unescapeUnicode( + unicodeEscapeChar); + } + SqlParserPos pos2 = SqlParserPos.sum(rands); + {if (true) return SqlStdOperatorTable.LITERAL_CHAIN.createCall(pos2, rands);} + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a date/time literal. + */ + final public SqlLiteral DateTimeLiteral() throws ParseException { + final String p; + final Span s; + if (jj_2_344(2)) { + jj_consume_token(LBRACE_D); + jj_consume_token(QUOTED_STRING); + p = token.image; + jj_consume_token(RBRACE); + {if (true) return SqlParserUtil.parseDateLiteral(p, getPos());} + } else if (jj_2_345(2)) { + jj_consume_token(LBRACE_T); + jj_consume_token(QUOTED_STRING); + p = token.image; + jj_consume_token(RBRACE); + {if (true) return SqlParserUtil.parseTimeLiteral(p, getPos());} + } else if (jj_2_346(2)) { + jj_consume_token(LBRACE_TS); + s = span(); + jj_consume_token(QUOTED_STRING); + p = token.image; + jj_consume_token(RBRACE); + {if (true) return SqlParserUtil.parseTimestampLiteral(p, s.end(this));} + } else if (jj_2_347(2)) { + jj_consume_token(DATE); + s = span(); + jj_consume_token(QUOTED_STRING); + {if (true) return SqlParserUtil.parseDateLiteral(token.image, s.end(this));} + } else if (jj_2_348(2)) { + jj_consume_token(TIME); + s = span(); + jj_consume_token(QUOTED_STRING); + {if (true) return SqlParserUtil.parseTimeLiteral(token.image, s.end(this));} + } else if (jj_2_349(2)) { + jj_consume_token(TIMESTAMP); + s = span(); + jj_consume_token(QUOTED_STRING); + {if (true) return SqlParserUtil.parseTimestampLiteral(token.image, s.end(this));} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** Parses a MULTISET constructor */ + final public SqlNode MultisetConstructor() throws ParseException { + List args; + SqlNode e; + final Span s; + jj_consume_token(MULTISET); + s = span(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + jj_consume_token(LPAREN); + // by sub query "MULTISET(SELECT * FROM T)" + e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.MULTISET_QUERY.createCall( + s.end(this), e);} + break; + default: + jj_la1[1] = jj_gen; + if (jj_2_351(2)) { + jj_consume_token(LBRACKET); + // TODO: do trigraph as well ??( ??) + e = Expression(ExprContext.ACCEPT_NON_QUERY); + args = startList(e); + label_31: + while (true) { + if (jj_2_350(2)) { + ; + } else { + break label_31; + } + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_NON_QUERY); + args.add(e); + } + jj_consume_token(RBRACKET); + {if (true) return SqlStdOperatorTable.MULTISET_VALUE.createCall( + s.end(this), args);} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + +/** Parses an ARRAY constructor */ + final public SqlNode ArrayConstructor() throws ParseException { + SqlNodeList args; + SqlNode e; + final Span s; + jj_consume_token(ARRAY); + s = span(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + jj_consume_token(LPAREN); + // by sub query "MULTISET(SELECT * FROM T)" + e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.ARRAY_QUERY.createCall( + s.end(this), e);} + break; + default: + jj_la1[2] = jj_gen; + if (jj_2_353(2)) { + jj_consume_token(LBRACKET); + if (jj_2_352(2)) { + args = ExpressionCommaList(s, ExprContext.ACCEPT_NON_QUERY); + } else { + args = SqlNodeList.EMPTY; + } + jj_consume_token(RBRACKET); + {if (true) return SqlStdOperatorTable.ARRAY_VALUE_CONSTRUCTOR.createCall( + s.end(this), args.getList());} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + +/** Parses a MAP constructor */ + final public SqlNode MapConstructor() throws ParseException { + SqlNodeList args; + SqlNode e; + final Span s; + jj_consume_token(MAP); + s = span(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + jj_consume_token(LPAREN); + // by sub query "MAP (SELECT empno, deptno FROM emp)" + e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.MAP_QUERY.createCall( + s.end(this), e);} + break; + default: + jj_la1[3] = jj_gen; + if (jj_2_355(2)) { + jj_consume_token(LBRACKET); + if (jj_2_354(2)) { + args = ExpressionCommaList(s, ExprContext.ACCEPT_NON_QUERY); + } else { + args = SqlNodeList.EMPTY; + } + jj_consume_token(RBRACKET); + {if (true) return SqlStdOperatorTable.MAP_VALUE_CONSTRUCTOR.createCall( + s.end(this), args.getList());} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + +/** Parses a PERIOD constructor */ + final public SqlNode PeriodConstructor() throws ParseException { + final SqlNode e0, e1; + final Span s; + jj_consume_token(PERIOD); + s = span(); + jj_consume_token(LPAREN); + e0 = Expression(ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(COMMA); + e1 = Expression(ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.ROW.createCall(s.end(this), e0, e1);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses an interval literal. + */ + final public SqlLiteral IntervalLiteral() throws ParseException { + final String p; + final SqlIntervalQualifier intervalQualifier; + int sign = 1; + final Span s; + jj_consume_token(INTERVAL); + s = span(); + if (jj_2_358(2)) { + if (jj_2_356(2)) { + jj_consume_token(MINUS); + sign = -1; + } else if (jj_2_357(2)) { + jj_consume_token(PLUS); + sign = 1; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + jj_consume_token(QUOTED_STRING); + p = token.image; + intervalQualifier = IntervalQualifier(); + {if (true) return SqlParserUtil.parseIntervalLiteral(s.end(intervalQualifier), + sign, p, intervalQualifier);} + throw new Error("Missing return statement in function"); + } + + final public SqlIntervalQualifier IntervalQualifier() throws ParseException { + TimeUnit start; + TimeUnit end = null; + int startPrec = RelDataType.PRECISION_NOT_SPECIFIED; + int secondFracPrec = RelDataType.PRECISION_NOT_SPECIFIED; + if (jj_2_378(2)) { + jj_consume_token(YEAR); + if (jj_2_359(2)) { + jj_consume_token(LPAREN); + startPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + if (jj_2_360(2)) { + jj_consume_token(TO); + jj_consume_token(MONTH); + end = TimeUnit.MONTH; + } else { + ; + } + start = TimeUnit.YEAR; + } else if (jj_2_379(2)) { + jj_consume_token(MONTH); + if (jj_2_361(2)) { + jj_consume_token(LPAREN); + startPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + start = TimeUnit.MONTH; + } else if (jj_2_380(2)) { + jj_consume_token(DAY); + if (jj_2_362(2)) { + jj_consume_token(LPAREN); + startPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + if (jj_2_367(2)) { + jj_consume_token(TO); + if (jj_2_364(2)) { + jj_consume_token(HOUR); + end = TimeUnit.HOUR; + } else if (jj_2_365(2)) { + jj_consume_token(MINUTE); + end = TimeUnit.MINUTE; + } else if (jj_2_366(2)) { + jj_consume_token(SECOND); + end = TimeUnit.SECOND; + if (jj_2_363(2)) { + jj_consume_token(LPAREN); + secondFracPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + start = TimeUnit.DAY; + } else if (jj_2_381(2)) { + jj_consume_token(HOUR); + if (jj_2_368(2)) { + jj_consume_token(LPAREN); + startPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + if (jj_2_372(2)) { + jj_consume_token(TO); + if (jj_2_370(2)) { + jj_consume_token(MINUTE); + end = TimeUnit.MINUTE; + } else if (jj_2_371(2)) { + jj_consume_token(SECOND); + end = TimeUnit.SECOND; + if (jj_2_369(2)) { + jj_consume_token(LPAREN); + secondFracPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + start = TimeUnit.HOUR; + } else if (jj_2_382(2)) { + jj_consume_token(MINUTE); + if (jj_2_373(2)) { + jj_consume_token(LPAREN); + startPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + if (jj_2_375(2)) { + jj_consume_token(TO); + jj_consume_token(SECOND); + end = TimeUnit.SECOND; + if (jj_2_374(2)) { + jj_consume_token(LPAREN); + secondFracPrec = UnsignedIntLiteral(); + jj_consume_token(RPAREN); + } else { + ; + } + } else { + ; + } + start = TimeUnit.MINUTE; + } else if (jj_2_383(2)) { + jj_consume_token(SECOND); + if (jj_2_377(2)) { + jj_consume_token(LPAREN); + startPrec = UnsignedIntLiteral(); + if (jj_2_376(2)) { + jj_consume_token(COMMA); + secondFracPrec = UnsignedIntLiteral(); + } else { + ; + } + jj_consume_token(RPAREN); + } else { + ; + } + start = TimeUnit.SECOND; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new SqlIntervalQualifier(start, + startPrec, + end, + secondFracPrec, + getPos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses time unit for EXTRACT, CEIL and FLOOR functions. + */ + final public TimeUnit TimeUnit() throws ParseException { + if (jj_2_384(2)) { + jj_consume_token(SECOND); + {if (true) return TimeUnit.SECOND;} + } else if (jj_2_385(2)) { + jj_consume_token(MINUTE); + {if (true) return TimeUnit.MINUTE;} + } else if (jj_2_386(2)) { + jj_consume_token(HOUR); + {if (true) return TimeUnit.HOUR;} + } else if (jj_2_387(2)) { + jj_consume_token(DAY); + {if (true) return TimeUnit.DAY;} + } else if (jj_2_388(2)) { + jj_consume_token(DOW); + {if (true) return TimeUnit.DOW;} + } else if (jj_2_389(2)) { + jj_consume_token(DOY); + {if (true) return TimeUnit.DOY;} + } else if (jj_2_390(2)) { + jj_consume_token(WEEK); + {if (true) return TimeUnit.WEEK;} + } else if (jj_2_391(2)) { + jj_consume_token(MONTH); + {if (true) return TimeUnit.MONTH;} + } else if (jj_2_392(2)) { + jj_consume_token(QUARTER); + {if (true) return TimeUnit.QUARTER;} + } else if (jj_2_393(2)) { + jj_consume_token(YEAR); + {if (true) return TimeUnit.YEAR;} + } else if (jj_2_394(2)) { + jj_consume_token(EPOCH); + {if (true) return TimeUnit.EPOCH;} + } else if (jj_2_395(2)) { + jj_consume_token(DECADE); + {if (true) return TimeUnit.DECADE;} + } else if (jj_2_396(2)) { + jj_consume_token(CENTURY); + {if (true) return TimeUnit.CENTURY;} + } else if (jj_2_397(2)) { + jj_consume_token(MILLENNIUM); + {if (true) return TimeUnit.MILLENNIUM;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public TimeUnit TimestampInterval() throws ParseException { + if (jj_2_398(2)) { + jj_consume_token(FRAC_SECOND); + {if (true) return TimeUnit.MICROSECOND;} + } else if (jj_2_399(2)) { + jj_consume_token(MICROSECOND); + {if (true) return TimeUnit.MICROSECOND;} + } else if (jj_2_400(2)) { + jj_consume_token(SQL_TSI_FRAC_SECOND); + {if (true) return TimeUnit.MICROSECOND;} + } else if (jj_2_401(2)) { + jj_consume_token(SQL_TSI_MICROSECOND); + {if (true) return TimeUnit.MICROSECOND;} + } else if (jj_2_402(2)) { + jj_consume_token(SECOND); + {if (true) return TimeUnit.SECOND;} + } else if (jj_2_403(2)) { + jj_consume_token(SQL_TSI_SECOND); + {if (true) return TimeUnit.SECOND;} + } else if (jj_2_404(2)) { + jj_consume_token(MINUTE); + {if (true) return TimeUnit.MINUTE;} + } else if (jj_2_405(2)) { + jj_consume_token(SQL_TSI_MINUTE); + {if (true) return TimeUnit.MINUTE;} + } else if (jj_2_406(2)) { + jj_consume_token(HOUR); + {if (true) return TimeUnit.HOUR;} + } else if (jj_2_407(2)) { + jj_consume_token(SQL_TSI_HOUR); + {if (true) return TimeUnit.HOUR;} + } else if (jj_2_408(2)) { + jj_consume_token(DAY); + {if (true) return TimeUnit.DAY;} + } else if (jj_2_409(2)) { + jj_consume_token(SQL_TSI_DAY); + {if (true) return TimeUnit.DAY;} + } else if (jj_2_410(2)) { + jj_consume_token(WEEK); + {if (true) return TimeUnit.WEEK;} + } else if (jj_2_411(2)) { + jj_consume_token(SQL_TSI_WEEK); + {if (true) return TimeUnit.WEEK;} + } else if (jj_2_412(2)) { + jj_consume_token(MONTH); + {if (true) return TimeUnit.MONTH;} + } else if (jj_2_413(2)) { + jj_consume_token(SQL_TSI_MONTH); + {if (true) return TimeUnit.MONTH;} + } else if (jj_2_414(2)) { + jj_consume_token(QUARTER); + {if (true) return TimeUnit.QUARTER;} + } else if (jj_2_415(2)) { + jj_consume_token(SQL_TSI_QUARTER); + {if (true) return TimeUnit.QUARTER;} + } else if (jj_2_416(2)) { + jj_consume_token(YEAR); + {if (true) return TimeUnit.YEAR;} + } else if (jj_2_417(2)) { + jj_consume_token(SQL_TSI_YEAR); + {if (true) return TimeUnit.YEAR;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a dynamic parameter marker. + */ + final public SqlDynamicParam DynamicParam() throws ParseException { + jj_consume_token(HOOK); + {if (true) return new SqlDynamicParam(nDynamicParams++, getPos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a simple identifier as a string. + */ + final public String Identifier() throws ParseException { + String id; + char unicodeEscapeChar = BACKSLASH; + if (jj_2_419(2)) { + jj_consume_token(IDENTIFIER); + id = unquotedIdentifier(); + } else if (jj_2_420(2)) { + jj_consume_token(QUOTED_IDENTIFIER); + id = SqlParserUtil.strip(getToken(0).image, DQ, DQ, DQDQ, + quotedCasing); + } else if (jj_2_421(2)) { + jj_consume_token(BACK_QUOTED_IDENTIFIER); + id = SqlParserUtil.strip(getToken(0).image, "`", "`", "``", + quotedCasing); + } else if (jj_2_422(2)) { + jj_consume_token(BRACKET_QUOTED_IDENTIFIER); + id = SqlParserUtil.strip(getToken(0).image, "[", "]", "]]", + quotedCasing); + } else if (jj_2_423(2)) { + jj_consume_token(UNICODE_QUOTED_IDENTIFIER); + id = getToken(0).image; + id = id.substring(id.indexOf('"')); + id = SqlParserUtil.strip(id, DQ, DQ, DQDQ, quotedCasing); + if (jj_2_418(2)) { + jj_consume_token(UESCAPE); + jj_consume_token(QUOTED_STRING); + String s = SqlParserUtil.parseString(token.image); + unicodeEscapeChar = SqlParserUtil.checkUnicodeEscapeChar(s); + } else { + ; + } + SqlLiteral lit = SqlLiteral.createCharString(id, "UTF16", getPos()); + lit = lit.unescapeUnicode(unicodeEscapeChar); + {if (true) return lit.toValue();} + } else if (jj_2_424(2)) { + id = NonReservedKeyWord(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (id.length() > this.identifierMaxLength) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.identifierTooLong(id, this.identifierMaxLength));} + } + {if (true) return id;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a simple identifier as an SqlIdentifier. + */ + final public SqlIdentifier SimpleIdentifier() throws ParseException { + final String p; + p = Identifier(); + {if (true) return new SqlIdentifier(p, getPos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a comma-separated list of simple identifiers. + */ + final public void SimpleIdentifierCommaList(List list) throws ParseException { + SqlIdentifier id; + id = SimpleIdentifier(); + list.add(id); + label_32: + while (true) { + if (jj_2_425(2)) { + ; + } else { + break label_32; + } + jj_consume_token(COMMA); + id = SimpleIdentifier(); + list.add(id); + } + } + +/** + * List of simple identifiers in parentheses. The position extends from the + * open parenthesis to the close parenthesis. + */ + final public SqlNodeList ParenthesizedSimpleIdentifierList() throws ParseException { + final Span s; + final List list = new ArrayList(); + jj_consume_token(LPAREN); + s = span(); + SimpleIdentifierCommaList(list); + jj_consume_token(RPAREN); + {if (true) return new SqlNodeList(list, s.end(this));} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a compound identifier. + */ + final public SqlIdentifier CompoundIdentifier() throws ParseException { + List list = new ArrayList(); + List posList = new ArrayList(); + String p; + boolean star = false; + p = Identifier(); + posList.add(getPos()); + list.add(p); + label_33: + while (true) { + if (jj_2_426(2)) { + ; + } else { + break label_33; + } + jj_consume_token(DOT); + p = Identifier(); + list.add(p); + posList.add(getPos()); + } + if (jj_2_427(2)) { + jj_consume_token(DOT); + jj_consume_token(STAR); + star = true; + list.add(""); + posList.add(getPos()); + } else { + ; + } + SqlParserPos pos = SqlParserPos.sum(posList); + if (star) { + {if (true) return SqlIdentifier.star(list, pos, posList);} + } + {if (true) return new SqlIdentifier(list, null, pos, posList);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a comma-separated list of compound identifiers. + */ + final public void CompoundIdentifierTypeCommaList(List list, List extendList) throws ParseException { + CompoundIdentifierType(list, extendList); + label_34: + while (true) { + if (jj_2_428(2)) { + ; + } else { + break label_34; + } + jj_consume_token(COMMA); + CompoundIdentifierType(list, extendList); + } + } + +/** + * List of compound identifiers in parentheses. The position extends from the + * open parenthesis to the close parenthesis. + */ + final public Pair ParenthesizedCompoundIdentifierList() throws ParseException { + final Span s; + final List list = new ArrayList(); + final List extendList = new ArrayList(); + jj_consume_token(LPAREN); + s = span(); + CompoundIdentifierTypeCommaList(list, extendList); + jj_consume_token(RPAREN); + {if (true) return Pair.of(new SqlNodeList(list, s.end(this)), new SqlNodeList(extendList, s.end(this)));} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a NEW UDT(...) expression. + */ + final public SqlNode NewSpecification() throws ParseException { + final Span s; + final SqlNode routineCall; + jj_consume_token(NEW); + s = span(); + routineCall = NamedRoutineCall(SqlFunctionCategory.USER_DEFINED_CONSTRUCTOR, + ExprContext.ACCEPT_SUB_QUERY); + {if (true) return SqlStdOperatorTable.NEW.createCall(s.end(routineCall), routineCall);} + throw new Error("Missing return statement in function"); + } + +//TODO: real parse errors. + final public int UnsignedIntLiteral() throws ParseException { + Token t; + t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); + try { + {if (true) return Integer.parseInt(t.image);} + } catch (NumberFormatException ex) { + {if (true) throw generateParseException();} + } + throw new Error("Missing return statement in function"); + } + + final public int IntLiteral() throws ParseException { + Token t; + if (jj_2_431(2)) { + if (jj_2_429(2)) { + t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); + } else if (jj_2_430(2)) { + jj_consume_token(PLUS); + t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + try { + {if (true) return Integer.parseInt(t.image);} + } catch (NumberFormatException ex) { + {if (true) throw generateParseException();} + } + } else if (jj_2_432(2)) { + jj_consume_token(MINUS); + t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); + try { + {if (true) return -Integer.parseInt(t.image);} + } catch (NumberFormatException ex) { + {if (true) throw generateParseException();} + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +// Type name with optional scale and precision + final public SqlDataTypeSpec DataType() throws ParseException { + final SqlIdentifier typeName; + SqlIdentifier collectionTypeName = null; + int scale = -1; + int precision = -1; + String charSetName = null; + final Span s; + typeName = TypeName(); + s = span(); + if (jj_2_434(2)) { + jj_consume_token(LPAREN); + precision = UnsignedIntLiteral(); + if (jj_2_433(2)) { + jj_consume_token(COMMA); + scale = UnsignedIntLiteral(); + } else { + ; + } + jj_consume_token(RPAREN); + } else { + ; + } + if (jj_2_435(2)) { + jj_consume_token(CHARACTER); + jj_consume_token(SET); + charSetName = Identifier(); + } else { + ; + } + if (jj_2_436(2)) { + collectionTypeName = CollectionsTypeName(); + } else { + ; + } + if (null != collectionTypeName) { + {if (true) return new SqlDataTypeSpec( + collectionTypeName, + typeName, + precision, + scale, + charSetName, + s.end(collectionTypeName));} + } + {if (true) return new SqlDataTypeSpec( + typeName, + precision, + scale, + charSetName, + null, + s.end(this));} + throw new Error("Missing return statement in function"); + } + +// Some SQL type names need special handling due to the fact that they have +// spaces in them but are not quoted. + final public SqlIdentifier TypeName() throws ParseException { + final SqlTypeName sqlTypeName; + final SqlIdentifier typeName; + final Span s = Span.of(); + if (jj_2_437(2)) { + sqlTypeName = SqlTypeName(s); + typeName = new SqlIdentifier(sqlTypeName.name(), s.end(this)); + } else if (jj_2_438(2)) { + typeName = CollectionsTypeName(); + } else if (jj_2_439(2)) { + typeName = CompoundIdentifier(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return typeName;} + throw new Error("Missing return statement in function"); + } + +// Types used for JDBC and ODBC scalar conversion function + final public SqlTypeName SqlTypeName(Span s) throws ParseException { + if (jj_2_450(2)) { + if (jj_2_440(2)) { + jj_consume_token(CHARACTER); + } else if (jj_2_441(2)) { + jj_consume_token(CHAR); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s.add(this); + if (jj_2_442(2)) { + jj_consume_token(VARYING); + {if (true) return SqlTypeName.VARCHAR;} + } else { + {if (true) return SqlTypeName.CHAR;} + } + } else if (jj_2_451(2)) { + jj_consume_token(VARCHAR); + {if (true) return SqlTypeName.VARCHAR;} + } else if (jj_2_452(2)) { + jj_consume_token(DATE); + {if (true) return SqlTypeName.DATE;} + } else if (jj_2_453(2)) { + jj_consume_token(TIME); + {if (true) return SqlTypeName.TIME;} + } else if (jj_2_454(2)) { + jj_consume_token(TIMESTAMP); + {if (true) return SqlTypeName.TIMESTAMP;} + } else if (jj_2_455(2)) { + jj_consume_token(GEOMETRY); + if (!this.conformance.allowGeometry()) { + {if (true) throw new ParseException(RESOURCE.geometryDisabled().str());} + } + {if (true) return SqlTypeName.GEOMETRY;} + } else if (jj_2_456(2)) { + if (jj_2_443(2)) { + jj_consume_token(DECIMAL); + } else if (jj_2_444(2)) { + jj_consume_token(DEC); + } else if (jj_2_445(2)) { + jj_consume_token(NUMERIC); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlTypeName.DECIMAL;} + } else if (jj_2_457(2)) { + jj_consume_token(BOOLEAN); + {if (true) return SqlTypeName.BOOLEAN;} + } else if (jj_2_458(2)) { + if (jj_2_446(2)) { + jj_consume_token(INTEGER); + } else if (jj_2_447(2)) { + jj_consume_token(INT); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlTypeName.INTEGER;} + } else if (jj_2_459(2)) { + jj_consume_token(BINARY); + s.add(this); + if (jj_2_448(2)) { + jj_consume_token(VARYING); + {if (true) return SqlTypeName.VARBINARY;} + } else { + {if (true) return SqlTypeName.BINARY;} + } + } else if (jj_2_460(2)) { + jj_consume_token(VARBINARY); + {if (true) return SqlTypeName.VARBINARY;} + } else if (jj_2_461(2)) { + jj_consume_token(TINYINT); + {if (true) return SqlTypeName.TINYINT;} + } else if (jj_2_462(2)) { + jj_consume_token(SMALLINT); + {if (true) return SqlTypeName.SMALLINT;} + } else if (jj_2_463(2)) { + jj_consume_token(BIGINT); + {if (true) return SqlTypeName.BIGINT;} + } else if (jj_2_464(2)) { + jj_consume_token(REAL); + {if (true) return SqlTypeName.REAL;} + } else if (jj_2_465(2)) { + jj_consume_token(DOUBLE); + s.add(this); + if (jj_2_449(2)) { + jj_consume_token(PRECISION); + } else { + ; + } + {if (true) return SqlTypeName.DOUBLE;} + } else if (jj_2_466(2)) { + jj_consume_token(FLOAT); + {if (true) return SqlTypeName.FLOAT;} + } else if (jj_2_467(2)) { + jj_consume_token(ANY); + {if (true) return SqlTypeName.ANY;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +// Types used for for JDBC and ODBC scalar conversion function + final public SqlJdbcDataTypeName JdbcOdbcDataTypeName() throws ParseException { + if (jj_2_502(2)) { + if (jj_2_468(2)) { + jj_consume_token(SQL_CHAR); + } else if (jj_2_469(2)) { + jj_consume_token(CHAR); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_CHAR;} + } else if (jj_2_503(2)) { + if (jj_2_470(2)) { + jj_consume_token(SQL_VARCHAR); + } else if (jj_2_471(2)) { + jj_consume_token(VARCHAR); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_VARCHAR;} + } else if (jj_2_504(2)) { + if (jj_2_472(2)) { + jj_consume_token(SQL_DATE); + } else if (jj_2_473(2)) { + jj_consume_token(DATE); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_DATE;} + } else if (jj_2_505(2)) { + if (jj_2_474(2)) { + jj_consume_token(SQL_TIME); + } else if (jj_2_475(2)) { + jj_consume_token(TIME); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_TIME;} + } else if (jj_2_506(2)) { + if (jj_2_476(2)) { + jj_consume_token(SQL_TIMESTAMP); + } else if (jj_2_477(2)) { + jj_consume_token(TIMESTAMP); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_TIMESTAMP;} + } else if (jj_2_507(2)) { + if (jj_2_478(2)) { + jj_consume_token(SQL_DECIMAL); + } else if (jj_2_479(2)) { + jj_consume_token(DECIMAL); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_DECIMAL;} + } else if (jj_2_508(2)) { + if (jj_2_480(2)) { + jj_consume_token(SQL_NUMERIC); + } else if (jj_2_481(2)) { + jj_consume_token(NUMERIC); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_NUMERIC;} + } else if (jj_2_509(2)) { + if (jj_2_482(2)) { + jj_consume_token(SQL_BOOLEAN); + } else if (jj_2_483(2)) { + jj_consume_token(BOOLEAN); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_BOOLEAN;} + } else if (jj_2_510(2)) { + if (jj_2_484(2)) { + jj_consume_token(SQL_INTEGER); + } else if (jj_2_485(2)) { + jj_consume_token(INTEGER); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_INTEGER;} + } else if (jj_2_511(2)) { + if (jj_2_486(2)) { + jj_consume_token(SQL_BINARY); + } else if (jj_2_487(2)) { + jj_consume_token(BINARY); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_BINARY;} + } else if (jj_2_512(2)) { + if (jj_2_488(2)) { + jj_consume_token(SQL_VARBINARY); + } else if (jj_2_489(2)) { + jj_consume_token(VARBINARY); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_VARBINARY;} + } else if (jj_2_513(2)) { + if (jj_2_490(2)) { + jj_consume_token(SQL_TINYINT); + } else if (jj_2_491(2)) { + jj_consume_token(TINYINT); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_TINYINT;} + } else if (jj_2_514(2)) { + if (jj_2_492(2)) { + jj_consume_token(SQL_SMALLINT); + } else if (jj_2_493(2)) { + jj_consume_token(SMALLINT); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_SMALLINT;} + } else if (jj_2_515(2)) { + if (jj_2_494(2)) { + jj_consume_token(SQL_BIGINT); + } else if (jj_2_495(2)) { + jj_consume_token(BIGINT); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_BIGINT;} + } else if (jj_2_516(2)) { + if (jj_2_496(2)) { + jj_consume_token(SQL_REAL); + } else if (jj_2_497(2)) { + jj_consume_token(REAL); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_REAL;} + } else if (jj_2_517(2)) { + if (jj_2_498(2)) { + jj_consume_token(SQL_DOUBLE); + } else if (jj_2_499(2)) { + jj_consume_token(DOUBLE); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_DOUBLE;} + } else if (jj_2_518(2)) { + if (jj_2_500(2)) { + jj_consume_token(SQL_FLOAT); + } else if (jj_2_501(2)) { + jj_consume_token(FLOAT); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlJdbcDataTypeName.SQL_FLOAT;} + } else if (jj_2_519(2)) { + jj_consume_token(SQL_INTERVAL_YEAR); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_YEAR;} + } else if (jj_2_520(2)) { + jj_consume_token(SQL_INTERVAL_YEAR_TO_MONTH); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_YEAR_TO_MONTH;} + } else if (jj_2_521(2)) { + jj_consume_token(SQL_INTERVAL_MONTH); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_MONTH;} + } else if (jj_2_522(2)) { + jj_consume_token(SQL_INTERVAL_DAY); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY;} + } else if (jj_2_523(2)) { + jj_consume_token(SQL_INTERVAL_DAY_TO_HOUR); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY_TO_HOUR;} + } else if (jj_2_524(2)) { + jj_consume_token(SQL_INTERVAL_DAY_TO_MINUTE); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY_TO_MINUTE;} + } else if (jj_2_525(2)) { + jj_consume_token(SQL_INTERVAL_DAY_TO_SECOND); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY_TO_SECOND;} + } else if (jj_2_526(2)) { + jj_consume_token(SQL_INTERVAL_HOUR); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_HOUR;} + } else if (jj_2_527(2)) { + jj_consume_token(SQL_INTERVAL_HOUR_TO_MINUTE); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_HOUR_TO_MINUTE;} + } else if (jj_2_528(2)) { + jj_consume_token(SQL_INTERVAL_HOUR_TO_SECOND); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_HOUR_TO_SECOND;} + } else if (jj_2_529(2)) { + jj_consume_token(SQL_INTERVAL_MINUTE); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_MINUTE;} + } else if (jj_2_530(2)) { + jj_consume_token(SQL_INTERVAL_MINUTE_TO_SECOND); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_MINUTE_TO_SECOND;} + } else if (jj_2_531(2)) { + jj_consume_token(SQL_INTERVAL_SECOND); + {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_SECOND;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public SqlLiteral JdbcOdbcDataType() throws ParseException { + SqlJdbcDataTypeName typeName; + typeName = JdbcOdbcDataTypeName(); + {if (true) return typeName.symbol(getPos());} + throw new Error("Missing return statement in function"); + } + + final public SqlIdentifier CollectionsTypeName() throws ParseException { + jj_consume_token(MULTISET); + {if (true) return new SqlIdentifier( + SqlTypeName.MULTISET.name(), getPos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a CURSOR(query) expression. The parser allows these + * anywhere, but the validator restricts them to appear only as + * arguments to table functions. + */ + final public SqlNode CursorExpression(ExprContext exprContext) throws ParseException { + final SqlNode e; + final Span s; + jj_consume_token(CURSOR); + s = span(); + if (exprContext != ExprContext.ACCEPT_ALL + && exprContext != ExprContext.ACCEPT_CURSOR) { + {if (true) throw SqlUtil.newContextException(s.end(this), + RESOURCE.illegalCursorExpression());} + } + e = Expression(ExprContext.ACCEPT_QUERY); + {if (true) return SqlStdOperatorTable.CURSOR.createCall(s.end(e), e);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a call to a builtin function with special syntax. + */ + final public SqlNode BuiltinFunctionCall() throws ParseException { + final SqlIdentifier name; + List args = null; + SqlNode e = null; + final Span s; + SqlDataTypeSpec dt; + TimeUnit interval; + final SqlNode node; + if (jj_2_554(2)) { + jj_consume_token(CAST); + s = span(); + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = startList(e); + jj_consume_token(AS); + if (jj_2_532(2)) { + dt = DataType(); + args.add(dt); + } else if (jj_2_533(2)) { + jj_consume_token(INTERVAL); + e = IntervalQualifier(); + args.add(e); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.CAST.createCall(s.end(this), args);} + } else if (jj_2_555(2)) { + jj_consume_token(EXTRACT); + s = span(); + TimeUnit unit; + jj_consume_token(LPAREN); + unit = TimeUnit(); + args = startList(new SqlIntervalQualifier(unit, null, getPos())); + jj_consume_token(FROM); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.EXTRACT.createCall(s.end(this), args);} + } else if (jj_2_556(2)) { + jj_consume_token(POSITION); + s = span(); + jj_consume_token(LPAREN); + // FIXME jvs 31-Aug-2006: FRG-192: This should be + // Expression(ExprContext.ACCEPT_SUB_QUERY), but that doesn't work + // because it matches the other kind of IN. + e = AtomicRowExpression(); + args = startList(e); + jj_consume_token(IN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + if (jj_2_534(2)) { + jj_consume_token(FROM); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.POSITION.createCall(s.end(this), args);} + } else if (jj_2_557(2)) { + jj_consume_token(CONVERT); + s = span(); + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = startList(e); + jj_consume_token(USING); + name = SimpleIdentifier(); + args.add(name); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.CONVERT.createCall(s.end(this), args);} + } else if (jj_2_558(2)) { + jj_consume_token(TRANSLATE); + s = span(); + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = startList(e); + if (jj_2_536(2)) { + jj_consume_token(USING); + name = SimpleIdentifier(); + args.add(name); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.TRANSLATE.createCall(s.end(this), + args);} + } else if (jj_2_537(2)) { + label_35: + while (true) { + if (jj_2_535(2)) { + ; + } else { + break label_35; + } + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + } + jj_consume_token(RPAREN); + {if (true) return OracleSqlOperatorTable.TRANSLATE3.createCall( + s.end(this), args);} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else if (jj_2_559(2)) { + jj_consume_token(OVERLAY); + s = span(); + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = startList(e); + jj_consume_token(PLACING); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + jj_consume_token(FROM); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + if (jj_2_538(2)) { + jj_consume_token(FOR); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.OVERLAY.createCall(s.end(this), args);} + } else if (jj_2_560(2)) { + jj_consume_token(FLOOR); + s = span(); + e = FloorCeilOptions(s, true); + {if (true) return e;} + } else if (jj_2_561(2)) { + if (jj_2_539(2)) { + jj_consume_token(CEIL); + } else if (jj_2_540(2)) { + jj_consume_token(CEILING); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s = span(); + e = FloorCeilOptions(s, false); + {if (true) return e;} + } else if (jj_2_562(2)) { + jj_consume_token(SUBSTRING); + s = span(); + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = startList(e); + if (jj_2_541(2)) { + jj_consume_token(FROM); + } else if (jj_2_542(2)) { + jj_consume_token(COMMA); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + if (jj_2_545(2)) { + if (jj_2_543(2)) { + jj_consume_token(FOR); + } else if (jj_2_544(2)) { + jj_consume_token(COMMA); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.SUBSTRING.createCall( + s.end(this), args);} + } else if (jj_2_563(2)) { + jj_consume_token(TRIM); + SqlLiteral flag = null; + SqlNode trimChars = null; + s = span(); + jj_consume_token(LPAREN); + if (jj_2_553(2)) { + if (jj_2_549(2)) { + if (jj_2_546(2)) { + jj_consume_token(BOTH); + s.add(this); + flag = SqlTrimFunction.Flag.BOTH.symbol(getPos()); + } else if (jj_2_547(2)) { + jj_consume_token(TRAILING); + s.add(this); + flag = SqlTrimFunction.Flag.TRAILING.symbol(getPos()); + } else if (jj_2_548(2)) { + jj_consume_token(LEADING); + s.add(this); + flag = SqlTrimFunction.Flag.LEADING.symbol(getPos()); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + if (jj_2_550(2)) { + trimChars = Expression(ExprContext.ACCEPT_SUB_QUERY); + } else { + ; + } + if (jj_2_551(2)) { + jj_consume_token(FROM); + if (null == flag && null == trimChars) { + {if (true) throw SqlUtil.newContextException(getPos(), + RESOURCE.illegalFromEmpty());} + } + } else if (jj_2_552(2)) { + jj_consume_token(RPAREN); + // This is to handle the case of TRIM(x) + // (FRG-191). + if (flag == null) { + flag = SqlTrimFunction.Flag.BOTH.symbol(SqlParserPos.ZERO); + } + args = startList(flag); + args.add(null); // no trim chars + args.add(trimChars); // reinterpret trimChars as source + {if (true) return SqlStdOperatorTable.TRIM.createCall(s.end(this), + args);} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + if (flag == null) { + flag = SqlTrimFunction.Flag.BOTH.symbol(SqlParserPos.ZERO); + } + args = startList(flag); + args.add(trimChars); + args.add(e); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.TRIM.createCall(s.end(this), args);} + } else if (jj_2_564(2)) { + node = TimestampAddFunctionCall(); + {if (true) return node;} + } else if (jj_2_565(2)) { + node = TimestampDiffFunctionCall(); + {if (true) return node;} + } else if (jj_2_566(2)) { + node = ExtendedBuiltinFunctionCall(); + {if (true) return node;} + } else if (jj_2_567(2)) { + node = MatchRecognizeFunctionCall(); + {if (true) return node;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a call to TIMESTAMPADD. + */ + final public SqlCall TimestampAddFunctionCall() throws ParseException { + List args; + SqlNode e; + final Span s; + TimeUnit interval; + SqlNode node; + jj_consume_token(TIMESTAMPADD); + s = span(); + jj_consume_token(LPAREN); + interval = TimestampInterval(); + args = startList(SqlLiteral.createSymbol(interval, getPos())); + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.TIMESTAMP_ADD.createCall( + s.end(this), args);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a call to TIMESTAMPDIFF. + */ + final public SqlCall TimestampDiffFunctionCall() throws ParseException { + List args; + SqlNode e; + final Span s; + TimeUnit interval; + SqlNode node; + jj_consume_token(TIMESTAMPDIFF); + s = span(); + jj_consume_token(LPAREN); + interval = TimestampInterval(); + args = startList(SqlLiteral.createSymbol(interval, getPos())); + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + jj_consume_token(COMMA); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args.add(e); + jj_consume_token(RPAREN); + {if (true) return SqlStdOperatorTable.TIMESTAMP_DIFF.createCall( + s.end(this), args);} + throw new Error("Missing return statement in function"); + } + + final public SqlCall MatchRecognizeFunctionCall() throws ParseException { + final SqlCall func; + final Span s; + if (jj_2_568(2)) { + jj_consume_token(CLASSIFIER); + s = span(); + jj_consume_token(LPAREN); + jj_consume_token(RPAREN); + func = SqlStdOperatorTable.CLASSIFIER.createCall(s.end(this)); + } else if (jj_2_569(2)) { + jj_consume_token(MATCH_NUMBER); + s = span(); + jj_consume_token(LPAREN); + jj_consume_token(RPAREN); + func = SqlStdOperatorTable.MATCH_NUMBER.createCall(s.end(this)); + } else if (jj_2_570(2)) { + func = MatchRecognizeNavigationLogical(); + } else if (jj_2_571(2)) { + func = MatchRecognizeNavigationPhysical(); + } else if (jj_2_572(2)) { + func = MatchRecognizeCallWithModifier(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return func;} + throw new Error("Missing return statement in function"); + } + + final public SqlCall MatchRecognizeCallWithModifier() throws ParseException { + final Span s; + final SqlOperator runningOp; + final SqlNode func; + if (jj_2_573(2)) { + jj_consume_token(RUNNING); + runningOp = SqlStdOperatorTable.RUNNING; + } else if (jj_2_574(2)) { + jj_consume_token(FINAL); + runningOp = SqlStdOperatorTable.FINAL; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s = span(); + func = NamedFunctionCall(); + {if (true) return runningOp.createCall(s.end(func), func);} + throw new Error("Missing return statement in function"); + } + + final public SqlCall MatchRecognizeNavigationLogical() throws ParseException { + final Span s = Span.of(); + SqlCall func; + final SqlOperator funcOp; + final SqlOperator runningOp; + SqlNode arg0; + SqlNode arg1 = SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO); + if (jj_2_575(2)) { + jj_consume_token(RUNNING); + runningOp = SqlStdOperatorTable.RUNNING; s.add(this); + } else if (jj_2_576(2)) { + jj_consume_token(FINAL); + runningOp = SqlStdOperatorTable.FINAL; s.add(this); + } else { + runningOp = null; + } + if (jj_2_577(2)) { + jj_consume_token(FIRST); + funcOp = SqlStdOperatorTable.FIRST; + } else if (jj_2_578(2)) { + jj_consume_token(LAST); + funcOp = SqlStdOperatorTable.LAST; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s.add(this); + jj_consume_token(LPAREN); + arg0 = Expression(ExprContext.ACCEPT_SUB_QUERY); + if (jj_2_579(2)) { + jj_consume_token(COMMA); + arg1 = NumericLiteral(); + } else { + ; + } + jj_consume_token(RPAREN); + func = funcOp.createCall(s.end(this), arg0, arg1); + if (runningOp != null) { + {if (true) return runningOp.createCall(s.end(this), func);} + } else { + {if (true) return func;} + } + throw new Error("Missing return statement in function"); + } + + final public SqlCall MatchRecognizeNavigationPhysical() throws ParseException { + final Span s; + SqlCall func; + SqlOperator funcOp; + SqlNode arg0; + SqlNode arg1 = SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO); + if (jj_2_580(2)) { + jj_consume_token(PREV); + funcOp = SqlStdOperatorTable.PREV; + } else if (jj_2_581(2)) { + jj_consume_token(NEXT); + funcOp = SqlStdOperatorTable.NEXT; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + s = span(); + jj_consume_token(LPAREN); + arg0 = Expression(ExprContext.ACCEPT_SUB_QUERY); + if (jj_2_582(2)) { + jj_consume_token(COMMA); + arg1 = NumericLiteral(); + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return funcOp.createCall(s.end(this), arg0, arg1);} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a call to a named function (could be a builtin with regular + * syntax, or else a UDF). + * + *

NOTE: every UDF has two names: an invocation name and a + * specific name. Normally, function calls are resolved via overload + * resolution and invocation names. The SPECIFIC prefix allows overload + * resolution to be bypassed. Note that usage of the SPECIFIC prefix in + * queries is non-standard; it is used internally by Farrago, e.g. in stored + * view definitions to permanently bind references to a particular function + * after the overload resolution performed by view creation. + * + *

TODO jvs 25-Mar-2005: Once we have SQL-Flagger support, flag SPECIFIC + * as non-standard. + */ + final public SqlNode NamedFunctionCall() throws ParseException { + final SqlFunctionCategory funcType; + final SqlIdentifier qualifiedName; + final Span s; + final List args; + SqlCall call; + final Span filterSpan; + final SqlNode filter; + final SqlNode over; + SqlLiteral quantifier = null; + if (jj_2_583(2)) { + jj_consume_token(SPECIFIC); + funcType = SqlFunctionCategory.USER_DEFINED_SPECIFIC_FUNCTION; + } else { + funcType = SqlFunctionCategory.USER_DEFINED_FUNCTION; + } + qualifiedName = FunctionName(); + s = span(); + if (jj_2_584(2)) { + jj_consume_token(LPAREN); + jj_consume_token(STAR); + args = startList(SqlIdentifier.star(getPos())); + jj_consume_token(RPAREN); + } else if (jj_2_585(2)) { + jj_consume_token(LPAREN); + jj_consume_token(RPAREN); + args = Collections.emptyList(); + } else if (jj_2_586(2)) { + args = FunctionParameterList(ExprContext.ACCEPT_SUB_QUERY); + quantifier = (SqlLiteral) args.get(0); + args.remove(0); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + call = createCall(qualifiedName, s.end(this), funcType, quantifier, + args); + if (jj_2_587(2)) { + jj_consume_token(FILTER); + filterSpan = span(); + jj_consume_token(LPAREN); + jj_consume_token(WHERE); + filter = Expression(ExprContext.ACCEPT_SUB_QUERY); + jj_consume_token(RPAREN); + call = SqlStdOperatorTable.FILTER.createCall( + filterSpan.end(this), call, filter); + } else { + ; + } + if (jj_2_590(2)) { + jj_consume_token(OVER); + if (jj_2_588(2)) { + over = SimpleIdentifier(); + } else if (jj_2_589(2)) { + over = WindowSpecification(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + call = SqlStdOperatorTable.OVER.createCall(s.end(over), call, over); + } else { + ; + } + {if (true) return call;} + throw new Error("Missing return statement in function"); + } + +/* +* Parse Floor/Ceil function parameters +*/ + final public SqlNode StandardFloorCeilOptions(Span s, boolean floorFlag) throws ParseException { + SqlNode e; + final List args; + TimeUnit unit; + SqlCall function; + final Span s1; + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = startList(e); + if (jj_2_591(2)) { + jj_consume_token(TO); + unit = TimeUnit(); + args.add(new SqlIntervalQualifier(unit, null, getPos())); + } else { + ; + } + jj_consume_token(RPAREN); + SqlOperator op = floorFlag + ? SqlStdOperatorTable.FLOOR + : SqlStdOperatorTable.CEIL; + function = op.createCall(s.end(this), args); + if (jj_2_594(2)) { + jj_consume_token(OVER); + s1 = span(); + if (jj_2_592(2)) { + e = SimpleIdentifier(); + } else if (jj_2_593(2)) { + e = WindowSpecification(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return SqlStdOperatorTable.OVER.createCall(s1.end(this), function, e);} + } else { + {if (true) return function;} + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses the name of a JDBC function that is a token but is not reserved. + */ + final public String NonReservedJdbcFunctionName() throws ParseException { + jj_consume_token(SUBSTRING); + {if (true) return unquotedIdentifier();} + throw new Error("Missing return statement in function"); + } + +/** + * Parses the name of a function (either a compound identifier or + * a reserved word which can be used as a function name). + */ + final public SqlIdentifier FunctionName() throws ParseException { + SqlIdentifier qualifiedName; + if (jj_2_595(2)) { + qualifiedName = CompoundIdentifier(); + } else if (jj_2_596(2)) { + qualifiedName = ReservedFunctionName(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return qualifiedName;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a reserved word which is used as the name of a function. + */ + final public SqlIdentifier ReservedFunctionName() throws ParseException { + if (jj_2_597(2)) { + jj_consume_token(ABS); + } else if (jj_2_598(2)) { + jj_consume_token(AVG); + } else if (jj_2_599(2)) { + jj_consume_token(CARDINALITY); + } else if (jj_2_600(2)) { + jj_consume_token(CEILING); + } else if (jj_2_601(2)) { + jj_consume_token(CHAR_LENGTH); + } else if (jj_2_602(2)) { + jj_consume_token(CHARACTER_LENGTH); + } else if (jj_2_603(2)) { + jj_consume_token(COALESCE); + } else if (jj_2_604(2)) { + jj_consume_token(COLLECT); + } else if (jj_2_605(2)) { + jj_consume_token(COVAR_POP); + } else if (jj_2_606(2)) { + jj_consume_token(COVAR_SAMP); + } else if (jj_2_607(2)) { + jj_consume_token(CUME_DIST); + } else if (jj_2_608(2)) { + jj_consume_token(COUNT); + } else if (jj_2_609(2)) { + jj_consume_token(CURRENT_DATE); + } else if (jj_2_610(2)) { + jj_consume_token(CURRENT_TIME); + } else if (jj_2_611(2)) { + jj_consume_token(CURRENT_TIMESTAMP); + } else if (jj_2_612(2)) { + jj_consume_token(DENSE_RANK); + } else if (jj_2_613(2)) { + jj_consume_token(ELEMENT); + } else if (jj_2_614(2)) { + jj_consume_token(EXP); + } else if (jj_2_615(2)) { + jj_consume_token(FIRST_VALUE); + } else if (jj_2_616(2)) { + jj_consume_token(FLOOR); + } else if (jj_2_617(2)) { + jj_consume_token(FUSION); + } else if (jj_2_618(2)) { + jj_consume_token(GROUPING); + } else if (jj_2_619(2)) { + jj_consume_token(HOUR); + } else if (jj_2_620(2)) { + jj_consume_token(LAG); + } else if (jj_2_621(2)) { + jj_consume_token(LEAD); + } else if (jj_2_622(2)) { + jj_consume_token(LAST_VALUE); + } else if (jj_2_623(2)) { + jj_consume_token(LN); + } else if (jj_2_624(2)) { + jj_consume_token(LOCALTIME); + } else if (jj_2_625(2)) { + jj_consume_token(LOCALTIMESTAMP); + } else if (jj_2_626(2)) { + jj_consume_token(LOWER); + } else if (jj_2_627(2)) { + jj_consume_token(MAX); + } else if (jj_2_628(2)) { + jj_consume_token(MIN); + } else if (jj_2_629(2)) { + jj_consume_token(MINUTE); + } else if (jj_2_630(2)) { + jj_consume_token(MOD); + } else if (jj_2_631(2)) { + jj_consume_token(MONTH); + } else if (jj_2_632(2)) { + jj_consume_token(NTILE); + } else if (jj_2_633(2)) { + jj_consume_token(NULLIF); + } else if (jj_2_634(2)) { + jj_consume_token(OCTET_LENGTH); + } else if (jj_2_635(2)) { + jj_consume_token(PERCENT_RANK); + } else if (jj_2_636(2)) { + jj_consume_token(POWER); + } else if (jj_2_637(2)) { + jj_consume_token(RANK); + } else if (jj_2_638(2)) { + jj_consume_token(REGR_SXX); + } else if (jj_2_639(2)) { + jj_consume_token(REGR_SYY); + } else if (jj_2_640(2)) { + jj_consume_token(ROW_NUMBER); + } else if (jj_2_641(2)) { + jj_consume_token(SECOND); + } else if (jj_2_642(2)) { + jj_consume_token(SQRT); + } else if (jj_2_643(2)) { + jj_consume_token(STDDEV_POP); + } else if (jj_2_644(2)) { + jj_consume_token(STDDEV_SAMP); + } else if (jj_2_645(2)) { + jj_consume_token(SUM); + } else if (jj_2_646(2)) { + jj_consume_token(UPPER); + } else if (jj_2_647(2)) { + jj_consume_token(TRUNCATE); + } else if (jj_2_648(2)) { + jj_consume_token(USER); + } else if (jj_2_649(2)) { + jj_consume_token(VAR_POP); + } else if (jj_2_650(2)) { + jj_consume_token(VAR_SAMP); + } else if (jj_2_651(2)) { + jj_consume_token(YEAR); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new SqlIdentifier(unquotedIdentifier(), getPos());} + throw new Error("Missing return statement in function"); + } + + final public SqlIdentifier ContextVariable() throws ParseException { + if (jj_2_652(2)) { + jj_consume_token(CURRENT_CATALOG); + } else if (jj_2_653(2)) { + jj_consume_token(CURRENT_DATE); + } else if (jj_2_654(2)) { + jj_consume_token(CURRENT_DEFAULT_TRANSFORM_GROUP); + } else if (jj_2_655(2)) { + jj_consume_token(CURRENT_PATH); + } else if (jj_2_656(2)) { + jj_consume_token(CURRENT_ROLE); + } else if (jj_2_657(2)) { + jj_consume_token(CURRENT_SCHEMA); + } else if (jj_2_658(2)) { + jj_consume_token(CURRENT_TIME); + } else if (jj_2_659(2)) { + jj_consume_token(CURRENT_TIMESTAMP); + } else if (jj_2_660(2)) { + jj_consume_token(CURRENT_USER); + } else if (jj_2_661(2)) { + jj_consume_token(LOCALTIME); + } else if (jj_2_662(2)) { + jj_consume_token(LOCALTIMESTAMP); + } else if (jj_2_663(2)) { + jj_consume_token(SESSION_USER); + } else if (jj_2_664(2)) { + jj_consume_token(SYSTEM_USER); + } else if (jj_2_665(2)) { + jj_consume_token(USER); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return new SqlIdentifier(unquotedIdentifier(), getPos());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a function call expression with JDBC syntax. + */ + final public SqlNode JdbcFunctionCall() throws ParseException { + String name; + SqlIdentifier id; + SqlNode e; + SqlLiteral tl; + SqlNodeList args; + SqlCall call; + final Span s, s1; + jj_consume_token(LBRACE_FN); + s = span(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case TIMESTAMPADD: + call = TimestampAddFunctionCall(); + name = call.getOperator().getName(); + args = new SqlNodeList(call.getOperandList(), getPos()); + break; + default: + jj_la1[4] = jj_gen; + if (jj_2_674(2)) { + call = TimestampDiffFunctionCall(); + name = call.getOperator().getName(); + args = new SqlNodeList(call.getOperandList(), getPos()); + } else if (jj_2_675(2)) { + jj_consume_token(CONVERT); + name = unquotedIdentifier(); + jj_consume_token(LPAREN); + e = Expression(ExprContext.ACCEPT_SUB_QUERY); + args = new SqlNodeList(getPos()); + args.add(e); + jj_consume_token(COMMA); + tl = JdbcOdbcDataType(); + args.add(tl); + jj_consume_token(RPAREN); + } else if (jj_2_676(2)) { + if (jj_2_666(2)) { + jj_consume_token(INSERT); + name = unquotedIdentifier(); + } else if (jj_2_667(2)) { + jj_consume_token(TRUNCATE); + name = unquotedIdentifier(); + } else if (jj_2_668(2)) { + // For cases like {fn power(1,2)} and {fn lower('a')} + id = ReservedFunctionName(); + name = id.getSimple(); + } else if (jj_2_669(2)) { + // For cases like {fn substring('foo', 1,2)} + name = NonReservedJdbcFunctionName(); + } else if (jj_2_670(2)) { + name = Identifier(); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (jj_2_671(2)) { + jj_consume_token(LPAREN); + jj_consume_token(STAR); + s1 = span(); + jj_consume_token(RPAREN); + args = new SqlNodeList(s1.pos()); + args.add(SqlIdentifier.star(s1.pos())); + } else if (jj_2_672(2)) { + jj_consume_token(LPAREN); + jj_consume_token(RPAREN); + args = SqlNodeList.EMPTY; + } else if (jj_2_673(2)) { + args = ParenthesizedQueryOrCommaList(ExprContext.ACCEPT_SUB_QUERY); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + jj_consume_token(RBRACE); + {if (true) return new SqlJdbcFunctionCall(name).createCall(s.end(this), + args.getList());} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a binary query operator like UNION. + */ + final public SqlBinaryOperator BinaryQueryOperator() throws ParseException { + if (jj_2_685(2)) { + jj_consume_token(UNION); + if (jj_2_677(2)) { + jj_consume_token(ALL); + {if (true) return SqlStdOperatorTable.UNION_ALL;} + } else if (jj_2_678(2)) { + jj_consume_token(DISTINCT); + {if (true) return SqlStdOperatorTable.UNION;} + } else { + {if (true) return SqlStdOperatorTable.UNION;} + } + } else if (jj_2_686(2)) { + jj_consume_token(INTERSECT); + if (jj_2_679(2)) { + jj_consume_token(ALL); + {if (true) return SqlStdOperatorTable.INTERSECT_ALL;} + } else if (jj_2_680(2)) { + jj_consume_token(DISTINCT); + {if (true) return SqlStdOperatorTable.INTERSECT;} + } else { + {if (true) return SqlStdOperatorTable.INTERSECT;} + } + } else if (jj_2_687(2)) { + if (jj_2_681(2)) { + jj_consume_token(EXCEPT); + } else if (jj_2_682(2)) { + jj_consume_token(SET_MINUS); + if (!this.conformance.isMinusAllowed()) { + {if (true) throw new ParseException(RESOURCE.minusNotAllowed().str());} + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (jj_2_683(2)) { + jj_consume_token(ALL); + {if (true) return SqlStdOperatorTable.EXCEPT_ALL;} + } else if (jj_2_684(2)) { + jj_consume_token(DISTINCT); + {if (true) return SqlStdOperatorTable.EXCEPT;} + } else { + {if (true) return SqlStdOperatorTable.EXCEPT;} + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a binary multiset operator. + */ + final public SqlBinaryOperator BinaryMultisetOperator() throws ParseException { + SqlBinaryOperator op; + jj_consume_token(MULTISET); + if (jj_2_697(2)) { + jj_consume_token(UNION); + op = SqlStdOperatorTable.MULTISET_UNION; + if (jj_2_690(2)) { + if (jj_2_688(2)) { + jj_consume_token(ALL); + op = SqlStdOperatorTable.MULTISET_UNION_ALL; + } else if (jj_2_689(2)) { + jj_consume_token(DISTINCT); + op = SqlStdOperatorTable.MULTISET_UNION; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + } else if (jj_2_698(2)) { + jj_consume_token(INTERSECT); + op = SqlStdOperatorTable.MULTISET_INTERSECT; + if (jj_2_693(2)) { + if (jj_2_691(2)) { + jj_consume_token(ALL); + op = SqlStdOperatorTable.MULTISET_INTERSECT_ALL; + } else if (jj_2_692(2)) { + jj_consume_token(DISTINCT); + op = SqlStdOperatorTable.MULTISET_INTERSECT; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + } else if (jj_2_699(2)) { + jj_consume_token(EXCEPT); + op = SqlStdOperatorTable.MULTISET_EXCEPT; + if (jj_2_696(2)) { + if (jj_2_694(2)) { + jj_consume_token(ALL); + op = SqlStdOperatorTable.MULTISET_EXCEPT_ALL; + } else if (jj_2_695(2)) { + jj_consume_token(DISTINCT); + op = SqlStdOperatorTable.MULTISET_EXCEPT; + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return op;} + throw new Error("Missing return statement in function"); + } + +/** + * Parses a binary row operator like AND. + */ + final public SqlBinaryOperator BinaryRowOperator() throws ParseException { + SqlBinaryOperator op; + if (jj_2_700(2)) { + jj_consume_token(EQ); + {if (true) return SqlStdOperatorTable.EQUALS;} + } else if (jj_2_701(2)) { + jj_consume_token(GT); + {if (true) return SqlStdOperatorTable.GREATER_THAN;} + } else if (jj_2_702(2)) { + jj_consume_token(LT); + {if (true) return SqlStdOperatorTable.LESS_THAN;} + } else if (jj_2_703(2)) { + jj_consume_token(LE); + {if (true) return SqlStdOperatorTable.LESS_THAN_OR_EQUAL;} + } else if (jj_2_704(2)) { + jj_consume_token(GE); + {if (true) return SqlStdOperatorTable.GREATER_THAN_OR_EQUAL;} + } else if (jj_2_705(2)) { + jj_consume_token(NE); + {if (true) return SqlStdOperatorTable.NOT_EQUALS;} + } else if (jj_2_706(2)) { + jj_consume_token(NE2); + if (!this.conformance.isBangEqualAllowed()) { + {if (true) throw new ParseException(RESOURCE.bangEqualNotAllowed().str());} + } + {if (true) return SqlStdOperatorTable.NOT_EQUALS;} + } else if (jj_2_707(2)) { + jj_consume_token(PLUS); + {if (true) return SqlStdOperatorTable.PLUS;} + } else if (jj_2_708(2)) { + jj_consume_token(MINUS); + {if (true) return SqlStdOperatorTable.MINUS;} + } else if (jj_2_709(2)) { + jj_consume_token(STAR); + {if (true) return SqlStdOperatorTable.MULTIPLY;} + } else if (jj_2_710(2)) { + jj_consume_token(SLASH); + {if (true) return SqlStdOperatorTable.DIVIDE;} + } else if (jj_2_711(2)) { + jj_consume_token(PERCENT_REMAINDER); + if (!this.conformance.isPercentRemainderAllowed()) { + {if (true) throw new ParseException(RESOURCE.percentRemainderNotAllowed().str());} + } + {if (true) return SqlStdOperatorTable.PERCENT_REMAINDER;} + } else if (jj_2_712(2)) { + jj_consume_token(CONCAT); + {if (true) return SqlStdOperatorTable.CONCAT;} + } else if (jj_2_713(2)) { + jj_consume_token(AND); + {if (true) return SqlStdOperatorTable.AND;} + } else if (jj_2_714(2)) { + jj_consume_token(OR); + {if (true) return SqlStdOperatorTable.OR;} + } else if (jj_2_715(2)) { + jj_consume_token(IS); + jj_consume_token(DISTINCT); + jj_consume_token(FROM); + {if (true) return SqlStdOperatorTable.IS_DISTINCT_FROM;} + } else if (jj_2_716(2)) { + jj_consume_token(IS); + jj_consume_token(NOT); + jj_consume_token(DISTINCT); + jj_consume_token(FROM); + {if (true) return SqlStdOperatorTable.IS_NOT_DISTINCT_FROM;} + } else if (jj_2_717(2)) { + jj_consume_token(MEMBER); + jj_consume_token(OF); + {if (true) return SqlStdOperatorTable.MEMBER_OF;} + } else if (jj_2_718(2)) { + jj_consume_token(SUBMULTISET); + jj_consume_token(OF); + {if (true) return SqlStdOperatorTable.SUBMULTISET_OF;} + } else if (jj_2_719(2)) { + jj_consume_token(CONTAINS); + {if (true) return SqlStdOperatorTable.CONTAINS;} + } else if (jj_2_720(2)) { + jj_consume_token(OVERLAPS); + {if (true) return SqlStdOperatorTable.OVERLAPS;} + } else if (jj_2_721(2)) { + jj_consume_token(EQUALS); + {if (true) return SqlStdOperatorTable.PERIOD_EQUALS;} + } else if (jj_2_722(2)) { + jj_consume_token(PRECEDES); + {if (true) return SqlStdOperatorTable.PRECEDES;} + } else if (jj_2_723(2)) { + jj_consume_token(SUCCEEDS); + {if (true) return SqlStdOperatorTable.SUCCEEDS;} + } else if (jj_2_724(2)) { + jj_consume_token(IMMEDIATELY); + jj_consume_token(PRECEDES); + {if (true) return SqlStdOperatorTable.IMMEDIATELY_PRECEDES;} + } else if (jj_2_725(2)) { + jj_consume_token(IMMEDIATELY); + jj_consume_token(SUCCEEDS); + {if (true) return SqlStdOperatorTable.IMMEDIATELY_SUCCEEDS;} + } else if (jj_2_726(2)) { + op = BinaryMultisetOperator(); + {if (true) return op;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a prefix row operator like NOT. + */ + final public SqlPrefixOperator PrefixRowOperator() throws ParseException { + if (jj_2_727(2)) { + jj_consume_token(PLUS); + {if (true) return SqlStdOperatorTable.UNARY_PLUS;} + } else if (jj_2_728(2)) { + jj_consume_token(MINUS); + {if (true) return SqlStdOperatorTable.UNARY_MINUS;} + } else if (jj_2_729(2)) { + jj_consume_token(NOT); + {if (true) return SqlStdOperatorTable.NOT;} + } else if (jj_2_730(2)) { + jj_consume_token(EXISTS); + {if (true) return SqlStdOperatorTable.EXISTS;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/** + * Parses a postfix row operator like IS NOT NULL. + */ + final public SqlPostfixOperator PostfixRowOperator() throws ParseException { + jj_consume_token(IS); + if (jj_2_739(2)) { + jj_consume_token(A); + jj_consume_token(SET); + {if (true) return SqlStdOperatorTable.IS_A_SET;} + } else if (jj_2_740(2)) { + jj_consume_token(NOT); + if (jj_2_731(2)) { + jj_consume_token(NULL); + {if (true) return SqlStdOperatorTable.IS_NOT_NULL;} + } else if (jj_2_732(2)) { + jj_consume_token(TRUE); + {if (true) return SqlStdOperatorTable.IS_NOT_TRUE;} + } else if (jj_2_733(2)) { + jj_consume_token(FALSE); + {if (true) return SqlStdOperatorTable.IS_NOT_FALSE;} + } else if (jj_2_734(2)) { + jj_consume_token(UNKNOWN); + {if (true) return SqlStdOperatorTable.IS_NOT_UNKNOWN;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else if (jj_2_741(2)) { + if (jj_2_735(2)) { + jj_consume_token(NULL); + {if (true) return SqlStdOperatorTable.IS_NULL;} + } else if (jj_2_736(2)) { + jj_consume_token(TRUE); + {if (true) return SqlStdOperatorTable.IS_TRUE;} + } else if (jj_2_737(2)) { + jj_consume_token(FALSE); + {if (true) return SqlStdOperatorTable.IS_FALSE;} + } else if (jj_2_738(2)) { + jj_consume_token(UNKNOWN); + {if (true) return SqlStdOperatorTable.IS_UNKNOWN;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/* + * Abstract production: + * + * String NonReservedKeyWord() + * + * Parses non-reserved keywords (e.g. keywords that may be used as + * identifiers). Should use CommonNonReservedKeyWord as a base, but + * may add other key words. + */ + +/** + * Parses a non-reserved keyword for use as an identifier. Specializations + * of this parser can use this as a base for implementing the + * NonReservedKeyWord() production. + * + *

When adding keywords to this list, be sure that they are not reserved + * by the SQL:2003 standard (see productions for "non-reserved word" + * and "reserved word" in reference below). + * + * @see Glossary#SQL2003 SQL:2003 Part 2 Section 5.2 + */ + final public String CommonNonReservedKeyWord() throws ParseException { + if (jj_2_742(2)) { + jj_consume_token(A); + } else if (jj_2_743(2)) { + jj_consume_token(ABSOLUTE); + } else if (jj_2_744(2)) { + jj_consume_token(ACTION); + } else if (jj_2_745(2)) { + jj_consume_token(ADA); + } else if (jj_2_746(2)) { + jj_consume_token(ADD); + } else if (jj_2_747(2)) { + jj_consume_token(ADMIN); + } else if (jj_2_748(2)) { + jj_consume_token(AFTER); + } else if (jj_2_749(2)) { + jj_consume_token(ALWAYS); + } else if (jj_2_750(2)) { + jj_consume_token(APPLY); + } else if (jj_2_751(2)) { + jj_consume_token(ASC); + } else if (jj_2_752(2)) { + jj_consume_token(ASSERTION); + } else if (jj_2_753(2)) { + jj_consume_token(ASSIGNMENT); + } else if (jj_2_754(2)) { + jj_consume_token(ATTRIBUTE); + } else if (jj_2_755(2)) { + jj_consume_token(ATTRIBUTES); + } else if (jj_2_756(2)) { + jj_consume_token(BEFORE); + } else if (jj_2_757(2)) { + jj_consume_token(BERNOULLI); + } else if (jj_2_758(2)) { + jj_consume_token(BREADTH); + } else if (jj_2_759(2)) { + jj_consume_token(C); + } else if (jj_2_760(2)) { + jj_consume_token(CASCADE); + } else if (jj_2_761(2)) { + jj_consume_token(CATALOG); + } else if (jj_2_762(2)) { + jj_consume_token(CATALOG_NAME); + } else if (jj_2_763(2)) { + jj_consume_token(CENTURY); + } else if (jj_2_764(2)) { + jj_consume_token(CHAIN); + } else if (jj_2_765(2)) { + jj_consume_token(CHARACTER_SET_CATALOG); + } else if (jj_2_766(2)) { + jj_consume_token(CHARACTER_SET_NAME); + } else if (jj_2_767(2)) { + jj_consume_token(CHARACTER_SET_SCHEMA); + } else if (jj_2_768(2)) { + jj_consume_token(CHARACTERISTICS); + } else if (jj_2_769(2)) { + jj_consume_token(CHARACTERS); + } else if (jj_2_770(2)) { + jj_consume_token(CLASS_ORIGIN); + } else if (jj_2_771(2)) { + jj_consume_token(COBOL); + } else if (jj_2_772(2)) { + jj_consume_token(COLLATION); + } else if (jj_2_773(2)) { + jj_consume_token(COLLATION_CATALOG); + } else if (jj_2_774(2)) { + jj_consume_token(COLLATION_NAME); + } else if (jj_2_775(2)) { + jj_consume_token(COLLATION_SCHEMA); + } else if (jj_2_776(2)) { + jj_consume_token(COLUMN_NAME); + } else if (jj_2_777(2)) { + jj_consume_token(COMMAND_FUNCTION); + } else if (jj_2_778(2)) { + jj_consume_token(COMMAND_FUNCTION_CODE); + } else if (jj_2_779(2)) { + jj_consume_token(COMMITTED); + } else if (jj_2_780(2)) { + jj_consume_token(CONDITION_NUMBER); + } else if (jj_2_781(2)) { + jj_consume_token(CONNECTION); + } else if (jj_2_782(2)) { + jj_consume_token(CONNECTION_NAME); + } else if (jj_2_783(2)) { + jj_consume_token(CONSTRAINT_CATALOG); + } else if (jj_2_784(2)) { + jj_consume_token(CONSTRAINT_NAME); + } else if (jj_2_785(2)) { + jj_consume_token(CONSTRAINT_SCHEMA); + } else if (jj_2_786(2)) { + jj_consume_token(CONSTRAINTS); + } else if (jj_2_787(2)) { + jj_consume_token(CONSTRUCTOR); + } else if (jj_2_788(2)) { + jj_consume_token(CONTINUE); + } else if (jj_2_789(2)) { + jj_consume_token(CURSOR_NAME); + } else if (jj_2_790(2)) { + jj_consume_token(DATA); + } else if (jj_2_791(2)) { + jj_consume_token(DATABASE); + } else if (jj_2_792(2)) { + jj_consume_token(DATETIME_INTERVAL_CODE); + } else if (jj_2_793(2)) { + jj_consume_token(DATETIME_INTERVAL_PRECISION); + } else if (jj_2_794(2)) { + jj_consume_token(DECADE); + } else if (jj_2_795(2)) { + jj_consume_token(DEFAULTS); + } else if (jj_2_796(2)) { + jj_consume_token(DEFERRABLE); + } else if (jj_2_797(2)) { + jj_consume_token(DEFERRED); + } else if (jj_2_798(2)) { + jj_consume_token(DEFINED); + } else if (jj_2_799(2)) { + jj_consume_token(DEFINER); + } else if (jj_2_800(2)) { + jj_consume_token(DEGREE); + } else if (jj_2_801(2)) { + jj_consume_token(DEPTH); + } else if (jj_2_802(2)) { + jj_consume_token(DERIVED); + } else if (jj_2_803(2)) { + jj_consume_token(DESC); + } else if (jj_2_804(2)) { + jj_consume_token(DESCRIPTION); + } else if (jj_2_805(2)) { + jj_consume_token(DESCRIPTOR); + } else if (jj_2_806(2)) { + jj_consume_token(DIAGNOSTICS); + } else if (jj_2_807(2)) { + jj_consume_token(DISPATCH); + } else if (jj_2_808(2)) { + jj_consume_token(DOMAIN); + } else if (jj_2_809(2)) { + jj_consume_token(DOW); + } else if (jj_2_810(2)) { + jj_consume_token(DOY); + } else if (jj_2_811(2)) { + jj_consume_token(DYNAMIC_FUNCTION); + } else if (jj_2_812(2)) { + jj_consume_token(DYNAMIC_FUNCTION_CODE); + } else if (jj_2_813(2)) { + jj_consume_token(EPOCH); + } else if (jj_2_814(2)) { + jj_consume_token(EXCEPTION); + } else if (jj_2_815(2)) { + jj_consume_token(EXCLUDE); + } else if (jj_2_816(2)) { + jj_consume_token(EXCLUDING); + } else if (jj_2_817(2)) { + jj_consume_token(FINAL); + } else if (jj_2_818(2)) { + jj_consume_token(FIRST); + } else if (jj_2_819(2)) { + jj_consume_token(FOLLOWING); + } else if (jj_2_820(2)) { + jj_consume_token(FORTRAN); + } else if (jj_2_821(2)) { + jj_consume_token(FOUND); + } else if (jj_2_822(2)) { + jj_consume_token(FRAC_SECOND); + } else if (jj_2_823(2)) { + jj_consume_token(G); + } else if (jj_2_824(2)) { + jj_consume_token(GENERAL); + } else if (jj_2_825(2)) { + jj_consume_token(GENERATED); + } else if (jj_2_826(2)) { + jj_consume_token(GEOMETRY); + } else if (jj_2_827(2)) { + jj_consume_token(GO); + } else if (jj_2_828(2)) { + jj_consume_token(GOTO); + } else if (jj_2_829(2)) { + jj_consume_token(GRANTED); + } else if (jj_2_830(2)) { + jj_consume_token(HIERARCHY); + } else if (jj_2_831(2)) { + jj_consume_token(IMMEDIATE); + } else if (jj_2_832(2)) { + jj_consume_token(IMMEDIATELY); + } else if (jj_2_833(2)) { + jj_consume_token(IMPLEMENTATION); + } else if (jj_2_834(2)) { + jj_consume_token(INCLUDING); + } else if (jj_2_835(2)) { + jj_consume_token(INCREMENT); + } else if (jj_2_836(2)) { + jj_consume_token(INITIALLY); + } else if (jj_2_837(2)) { + jj_consume_token(INPUT); + } else if (jj_2_838(2)) { + jj_consume_token(INSTANCE); + } else if (jj_2_839(2)) { + jj_consume_token(INSTANTIABLE); + } else if (jj_2_840(2)) { + jj_consume_token(INVOKER); + } else if (jj_2_841(2)) { + jj_consume_token(ISOLATION); + } else if (jj_2_842(2)) { + jj_consume_token(JAVA); + } else if (jj_2_843(2)) { + jj_consume_token(JSON); + } else if (jj_2_844(2)) { + jj_consume_token(K); + } else if (jj_2_845(2)) { + jj_consume_token(KEY); + } else if (jj_2_846(2)) { + jj_consume_token(KEY_MEMBER); + } else if (jj_2_847(2)) { + jj_consume_token(KEY_TYPE); + } else if (jj_2_848(2)) { + jj_consume_token(LABEL); + } else if (jj_2_849(2)) { + jj_consume_token(LAST); + } else if (jj_2_850(2)) { + jj_consume_token(LENGTH); + } else if (jj_2_851(2)) { + jj_consume_token(LEVEL); + } else if (jj_2_852(2)) { + jj_consume_token(LIBRARY); + } else if (jj_2_853(2)) { + jj_consume_token(LOCATOR); + } else if (jj_2_854(2)) { + jj_consume_token(M); + } else if (jj_2_855(2)) { + jj_consume_token(MAP); + } else if (jj_2_856(2)) { + jj_consume_token(MATCHED); + } else if (jj_2_857(2)) { + jj_consume_token(MAXVALUE); + } else if (jj_2_858(2)) { + jj_consume_token(MICROSECOND); + } else if (jj_2_859(2)) { + jj_consume_token(MESSAGE_LENGTH); + } else if (jj_2_860(2)) { + jj_consume_token(MESSAGE_OCTET_LENGTH); + } else if (jj_2_861(2)) { + jj_consume_token(MESSAGE_TEXT); + } else if (jj_2_862(2)) { + jj_consume_token(MILLENNIUM); + } else if (jj_2_863(2)) { + jj_consume_token(MINVALUE); + } else if (jj_2_864(2)) { + jj_consume_token(MORE_); + } else if (jj_2_865(2)) { + jj_consume_token(MUMPS); + } else if (jj_2_866(2)) { + jj_consume_token(NAME); + } else if (jj_2_867(2)) { + jj_consume_token(NAMES); + } else if (jj_2_868(2)) { + jj_consume_token(NESTING); + } else if (jj_2_869(2)) { + jj_consume_token(NORMALIZED); + } else if (jj_2_870(2)) { + jj_consume_token(NULLABLE); + } else if (jj_2_871(2)) { + jj_consume_token(NULLS); + } else if (jj_2_872(2)) { + jj_consume_token(NUMBER); + } else if (jj_2_873(2)) { + jj_consume_token(OBJECT); + } else if (jj_2_874(2)) { + jj_consume_token(OCTETS); + } else if (jj_2_875(2)) { + jj_consume_token(OPTION); + } else if (jj_2_876(2)) { + jj_consume_token(OPTIONS); + } else if (jj_2_877(2)) { + jj_consume_token(ORDERING); + } else if (jj_2_878(2)) { + jj_consume_token(ORDINALITY); + } else if (jj_2_879(2)) { + jj_consume_token(OTHERS); + } else if (jj_2_880(2)) { + jj_consume_token(OUTPUT); + } else if (jj_2_881(2)) { + jj_consume_token(OVERRIDING); + } else if (jj_2_882(2)) { + jj_consume_token(PAD); + } else if (jj_2_883(2)) { + jj_consume_token(PARAMETER_MODE); + } else if (jj_2_884(2)) { + jj_consume_token(PARAMETER_NAME); + } else if (jj_2_885(2)) { + jj_consume_token(PARAMETER_ORDINAL_POSITION); + } else if (jj_2_886(2)) { + jj_consume_token(PARAMETER_SPECIFIC_CATALOG); + } else if (jj_2_887(2)) { + jj_consume_token(PARAMETER_SPECIFIC_NAME); + } else if (jj_2_888(2)) { + jj_consume_token(PARAMETER_SPECIFIC_SCHEMA); + } else if (jj_2_889(2)) { + jj_consume_token(PARTIAL); + } else if (jj_2_890(2)) { + jj_consume_token(PASCAL); + } else if (jj_2_891(2)) { + jj_consume_token(PASSTHROUGH); + } else if (jj_2_892(2)) { + jj_consume_token(PAST); + } else if (jj_2_893(2)) { + jj_consume_token(PATH); + } else if (jj_2_894(2)) { + jj_consume_token(PLACING); + } else if (jj_2_895(2)) { + jj_consume_token(PLAN); + } else if (jj_2_896(2)) { + jj_consume_token(PLI); + } else if (jj_2_897(2)) { + jj_consume_token(PRECEDING); + } else if (jj_2_898(2)) { + jj_consume_token(PRESERVE); + } else if (jj_2_899(2)) { + jj_consume_token(PRIOR); + } else if (jj_2_900(2)) { + jj_consume_token(PRIVILEGES); + } else if (jj_2_901(2)) { + jj_consume_token(PUBLIC); + } else if (jj_2_902(2)) { + jj_consume_token(QUARTER); + } else if (jj_2_903(2)) { + jj_consume_token(READ); + } else if (jj_2_904(2)) { + jj_consume_token(RELATIVE); + } else if (jj_2_905(2)) { + jj_consume_token(REPEATABLE); + } else if (jj_2_906(2)) { + jj_consume_token(REPLACE); + } else if (jj_2_907(2)) { + jj_consume_token(RESTART); + } else if (jj_2_908(2)) { + jj_consume_token(RESTRICT); + } else if (jj_2_909(2)) { + jj_consume_token(RETURNED_CARDINALITY); + } else if (jj_2_910(2)) { + jj_consume_token(RETURNED_LENGTH); + } else if (jj_2_911(2)) { + jj_consume_token(RETURNED_OCTET_LENGTH); + } else if (jj_2_912(2)) { + jj_consume_token(RETURNED_SQLSTATE); + } else if (jj_2_913(2)) { + jj_consume_token(ROLE); + } else if (jj_2_914(2)) { + jj_consume_token(ROUTINE); + } else if (jj_2_915(2)) { + jj_consume_token(ROUTINE_CATALOG); + } else if (jj_2_916(2)) { + jj_consume_token(ROUTINE_NAME); + } else if (jj_2_917(2)) { + jj_consume_token(ROUTINE_SCHEMA); + } else if (jj_2_918(2)) { + jj_consume_token(ROW_COUNT); + } else if (jj_2_919(2)) { + jj_consume_token(SCALE); + } else if (jj_2_920(2)) { + jj_consume_token(SCHEMA); + } else if (jj_2_921(2)) { + jj_consume_token(SCHEMA_NAME); + } else if (jj_2_922(2)) { + jj_consume_token(SCOPE_CATALOGS); + } else if (jj_2_923(2)) { + jj_consume_token(SCOPE_NAME); + } else if (jj_2_924(2)) { + jj_consume_token(SCOPE_SCHEMA); + } else if (jj_2_925(2)) { + jj_consume_token(SECTION); + } else if (jj_2_926(2)) { + jj_consume_token(SECURITY); + } else if (jj_2_927(2)) { + jj_consume_token(SELF); + } else if (jj_2_928(2)) { + jj_consume_token(SEQUENCE); + } else if (jj_2_929(2)) { + jj_consume_token(SERIALIZABLE); + } else if (jj_2_930(2)) { + jj_consume_token(SERVER); + } else if (jj_2_931(2)) { + jj_consume_token(SERVER_NAME); + } else if (jj_2_932(2)) { + jj_consume_token(SESSION); + } else if (jj_2_933(2)) { + jj_consume_token(SETS); + } else if (jj_2_934(2)) { + jj_consume_token(SIMPLE); + } else if (jj_2_935(2)) { + jj_consume_token(SIZE); + } else if (jj_2_936(2)) { + jj_consume_token(SOURCE); + } else if (jj_2_937(2)) { + jj_consume_token(SPACE); + } else if (jj_2_938(2)) { + jj_consume_token(SPECIFIC_NAME); + } else if (jj_2_939(2)) { + jj_consume_token(SQL_BIGINT); + } else if (jj_2_940(2)) { + jj_consume_token(SQL_BINARY); + } else if (jj_2_941(2)) { + jj_consume_token(SQL_BIT); + } else if (jj_2_942(2)) { + jj_consume_token(SQL_BLOB); + } else if (jj_2_943(2)) { + jj_consume_token(SQL_BOOLEAN); + } else if (jj_2_944(2)) { + jj_consume_token(SQL_CHAR); + } else if (jj_2_945(2)) { + jj_consume_token(SQL_CLOB); + } else if (jj_2_946(2)) { + jj_consume_token(SQL_DATE); + } else if (jj_2_947(2)) { + jj_consume_token(SQL_DECIMAL); + } else if (jj_2_948(2)) { + jj_consume_token(SQL_DOUBLE); + } else if (jj_2_949(2)) { + jj_consume_token(SQL_FLOAT); + } else if (jj_2_950(2)) { + jj_consume_token(SQL_INTEGER); + } else if (jj_2_951(2)) { + jj_consume_token(SQL_INTERVAL_DAY); + } else if (jj_2_952(2)) { + jj_consume_token(SQL_INTERVAL_DAY_TO_HOUR); + } else if (jj_2_953(2)) { + jj_consume_token(SQL_INTERVAL_DAY_TO_MINUTE); + } else if (jj_2_954(2)) { + jj_consume_token(SQL_INTERVAL_DAY_TO_SECOND); + } else if (jj_2_955(2)) { + jj_consume_token(SQL_INTERVAL_HOUR); + } else if (jj_2_956(2)) { + jj_consume_token(SQL_INTERVAL_HOUR_TO_MINUTE); + } else if (jj_2_957(2)) { + jj_consume_token(SQL_INTERVAL_HOUR_TO_SECOND); + } else if (jj_2_958(2)) { + jj_consume_token(SQL_INTERVAL_MINUTE); + } else if (jj_2_959(2)) { + jj_consume_token(SQL_INTERVAL_MINUTE_TO_SECOND); + } else if (jj_2_960(2)) { + jj_consume_token(SQL_INTERVAL_MONTH); + } else if (jj_2_961(2)) { + jj_consume_token(SQL_INTERVAL_SECOND); + } else if (jj_2_962(2)) { + jj_consume_token(SQL_INTERVAL_YEAR); + } else if (jj_2_963(2)) { + jj_consume_token(SQL_INTERVAL_YEAR_TO_MONTH); + } else if (jj_2_964(2)) { + jj_consume_token(SQL_LONGVARBINARY); + } else if (jj_2_965(2)) { + jj_consume_token(SQL_LONGVARNCHAR); + } else if (jj_2_966(2)) { + jj_consume_token(SQL_LONGVARCHAR); + } else if (jj_2_967(2)) { + jj_consume_token(SQL_NCHAR); + } else if (jj_2_968(2)) { + jj_consume_token(SQL_NCLOB); + } else if (jj_2_969(2)) { + jj_consume_token(SQL_NUMERIC); + } else if (jj_2_970(2)) { + jj_consume_token(SQL_NVARCHAR); + } else if (jj_2_971(2)) { + jj_consume_token(SQL_REAL); + } else if (jj_2_972(2)) { + jj_consume_token(SQL_SMALLINT); + } else if (jj_2_973(2)) { + jj_consume_token(SQL_TIME); + } else if (jj_2_974(2)) { + jj_consume_token(SQL_TIMESTAMP); + } else if (jj_2_975(2)) { + jj_consume_token(SQL_TINYINT); + } else if (jj_2_976(2)) { + jj_consume_token(SQL_TSI_DAY); + } else if (jj_2_977(2)) { + jj_consume_token(SQL_TSI_FRAC_SECOND); + } else if (jj_2_978(2)) { + jj_consume_token(SQL_TSI_HOUR); + } else if (jj_2_979(2)) { + jj_consume_token(SQL_TSI_MICROSECOND); + } else if (jj_2_980(2)) { + jj_consume_token(SQL_TSI_MINUTE); + } else if (jj_2_981(2)) { + jj_consume_token(SQL_TSI_MONTH); + } else if (jj_2_982(2)) { + jj_consume_token(SQL_TSI_QUARTER); + } else if (jj_2_983(2)) { + jj_consume_token(SQL_TSI_SECOND); + } else if (jj_2_984(2)) { + jj_consume_token(SQL_TSI_WEEK); + } else if (jj_2_985(2)) { + jj_consume_token(SQL_TSI_YEAR); + } else if (jj_2_986(2)) { + jj_consume_token(SQL_VARBINARY); + } else if (jj_2_987(2)) { + jj_consume_token(SQL_VARCHAR); + } else if (jj_2_988(2)) { + jj_consume_token(STATE); + } else if (jj_2_989(2)) { + jj_consume_token(STATEMENT); + } else if (jj_2_990(2)) { + jj_consume_token(STRUCTURE); + } else if (jj_2_991(2)) { + jj_consume_token(STYLE); + } else if (jj_2_992(2)) { + jj_consume_token(SUBCLASS_ORIGIN); + } else if (jj_2_993(2)) { + jj_consume_token(SUBSTITUTE); + } else if (jj_2_994(2)) { + jj_consume_token(TABLE_NAME); + } else if (jj_2_995(2)) { + jj_consume_token(TEMPORARY); + } else if (jj_2_996(2)) { + jj_consume_token(TIES); + } else if (jj_2_997(2)) { + jj_consume_token(TIMESTAMPADD); + } else if (jj_2_998(2)) { + jj_consume_token(TIMESTAMPDIFF); + } else if (jj_2_999(2)) { + jj_consume_token(TOP_LEVEL_COUNT); + } else if (jj_2_1000(2)) { + jj_consume_token(TRANSACTION); + } else if (jj_2_1001(2)) { + jj_consume_token(TRANSACTIONS_ACTIVE); + } else if (jj_2_1002(2)) { + jj_consume_token(TRANSACTIONS_COMMITTED); + } else if (jj_2_1003(2)) { + jj_consume_token(TRANSACTIONS_ROLLED_BACK); + } else if (jj_2_1004(2)) { + jj_consume_token(TRANSFORM); + } else if (jj_2_1005(2)) { + jj_consume_token(TRANSFORMS); + } else if (jj_2_1006(2)) { + jj_consume_token(TRIGGER_CATALOG); + } else if (jj_2_1007(2)) { + jj_consume_token(TRIGGER_NAME); + } else if (jj_2_1008(2)) { + jj_consume_token(TRIGGER_SCHEMA); + } else if (jj_2_1009(2)) { + jj_consume_token(TYPE); + } else if (jj_2_1010(2)) { + jj_consume_token(UNBOUNDED); + } else if (jj_2_1011(2)) { + jj_consume_token(UNCOMMITTED); + } else if (jj_2_1012(2)) { + jj_consume_token(UNDER); + } else if (jj_2_1013(2)) { + jj_consume_token(UNNAMED); + } else if (jj_2_1014(2)) { + jj_consume_token(USAGE); + } else if (jj_2_1015(2)) { + jj_consume_token(USER_DEFINED_TYPE_CATALOG); + } else if (jj_2_1016(2)) { + jj_consume_token(USER_DEFINED_TYPE_CODE); + } else if (jj_2_1017(2)) { + jj_consume_token(USER_DEFINED_TYPE_NAME); + } else if (jj_2_1018(2)) { + jj_consume_token(USER_DEFINED_TYPE_SCHEMA); + } else if (jj_2_1019(2)) { + jj_consume_token(VERSION); + } else if (jj_2_1020(2)) { + jj_consume_token(VIEW); + } else if (jj_2_1021(2)) { + jj_consume_token(WEEK); + } else if (jj_2_1022(2)) { + jj_consume_token(WRAPPER); + } else if (jj_2_1023(2)) { + jj_consume_token(WORK); + } else if (jj_2_1024(2)) { + jj_consume_token(WRITE); + } else if (jj_2_1025(2)) { + jj_consume_token(XML); + } else if (jj_2_1026(2)) { + jj_consume_token(ZONE); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return unquotedIdentifier();} + throw new Error("Missing return statement in function"); + } + +/** + * Defines a production which can never be accepted by the parser. + * In effect, it tells the parser, "If you got here, you've gone too far." + * It is used as the default production for parser extension points; + * derived parsers replace it with a real production when they want to + * implement a particular extension point. + */ + final public void UnusedExtension() throws ParseException { + if (false) { + + } else { + jj_consume_token(-1); + throw new ParseException(); + } + jj_consume_token(ZONE); + } + + 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_2_21(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_21(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(20, xla); } + } + + private boolean jj_2_22(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_22(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(21, xla); } + } + + private boolean jj_2_23(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_23(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(22, xla); } + } + + private boolean jj_2_24(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_24(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(23, xla); } + } + + private boolean jj_2_25(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_25(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(24, xla); } + } + + private boolean jj_2_26(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_26(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(25, xla); } + } + + private boolean jj_2_27(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_27(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(26, xla); } + } + + private boolean jj_2_28(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_28(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(27, xla); } + } + + private boolean jj_2_29(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_29(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(28, xla); } + } + + private boolean jj_2_30(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_30(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(29, xla); } + } + + private boolean jj_2_31(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_31(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(30, xla); } + } + + private boolean jj_2_32(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_32(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(31, xla); } + } + + private boolean jj_2_33(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_33(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(32, xla); } + } + + private boolean jj_2_34(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_34(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(33, xla); } + } + + private boolean jj_2_35(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_35(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(34, xla); } + } + + private boolean jj_2_36(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_36(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(35, xla); } + } + + private boolean jj_2_37(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_37(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(36, xla); } + } + + private boolean jj_2_38(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_38(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(37, xla); } + } + + private boolean jj_2_39(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_39(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(38, xla); } + } + + private boolean jj_2_40(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_40(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(39, xla); } + } + + private boolean jj_2_41(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_41(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(40, xla); } + } + + private boolean jj_2_42(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_42(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(41, xla); } + } + + private boolean jj_2_43(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_43(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(42, xla); } + } + + private boolean jj_2_44(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_44(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(43, xla); } + } + + private boolean jj_2_45(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_45(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(44, xla); } + } + + private boolean jj_2_46(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_46(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(45, xla); } + } + + private boolean jj_2_47(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_47(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(46, xla); } + } + + private boolean jj_2_48(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_48(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(47, xla); } + } + + private boolean jj_2_49(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_49(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(48, xla); } + } + + private boolean jj_2_50(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_50(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(49, xla); } + } + + private boolean jj_2_51(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_51(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(50, xla); } + } + + private boolean jj_2_52(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_52(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(51, xla); } + } + + private boolean jj_2_53(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_53(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(52, xla); } + } + + private boolean jj_2_54(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_54(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(53, xla); } + } + + private boolean jj_2_55(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_55(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(54, xla); } + } + + private boolean jj_2_56(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_56(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(55, xla); } + } + + private boolean jj_2_57(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_57(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(56, xla); } + } + + private boolean jj_2_58(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_58(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(57, xla); } + } + + private boolean jj_2_59(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_59(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(58, xla); } + } + + private boolean jj_2_60(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_60(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(59, xla); } + } + + private boolean jj_2_61(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_61(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(60, xla); } + } + + private boolean jj_2_62(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_62(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(61, xla); } + } + + private boolean jj_2_63(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_63(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(62, xla); } + } + + private boolean jj_2_64(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_64(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(63, xla); } + } + + private boolean jj_2_65(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_65(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(64, xla); } + } + + private boolean jj_2_66(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_66(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(65, xla); } + } + + private boolean jj_2_67(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_67(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(66, xla); } + } + + private boolean jj_2_68(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_68(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(67, xla); } + } + + private boolean jj_2_69(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_69(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(68, xla); } + } + + private boolean jj_2_70(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_70(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(69, xla); } + } + + private boolean jj_2_71(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_71(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(70, xla); } + } + + private boolean jj_2_72(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_72(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(71, xla); } + } + + private boolean jj_2_73(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_73(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(72, xla); } + } + + private boolean jj_2_74(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_74(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(73, xla); } + } + + private boolean jj_2_75(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_75(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(74, xla); } + } + + private boolean jj_2_76(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_76(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(75, xla); } + } + + private boolean jj_2_77(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_77(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(76, xla); } + } + + private boolean jj_2_78(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_78(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(77, xla); } + } + + private boolean jj_2_79(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_79(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(78, xla); } + } + + private boolean jj_2_80(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_80(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(79, xla); } + } + + private boolean jj_2_81(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_81(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(80, xla); } + } + + private boolean jj_2_82(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_82(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(81, xla); } + } + + private boolean jj_2_83(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_83(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(82, xla); } + } + + private boolean jj_2_84(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_84(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(83, xla); } + } + + private boolean jj_2_85(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_85(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(84, xla); } + } + + private boolean jj_2_86(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_86(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(85, xla); } + } + + private boolean jj_2_87(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_87(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(86, xla); } + } + + private boolean jj_2_88(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_88(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(87, xla); } + } + + private boolean jj_2_89(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_89(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(88, xla); } + } + + private boolean jj_2_90(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_90(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(89, xla); } + } + + private boolean jj_2_91(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_91(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(90, xla); } + } + + private boolean jj_2_92(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_92(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(91, xla); } + } + + private boolean jj_2_93(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_93(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(92, xla); } + } + + private boolean jj_2_94(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_94(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(93, xla); } + } + + private boolean jj_2_95(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_95(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(94, xla); } + } + + private boolean jj_2_96(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_96(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(95, xla); } + } + + private boolean jj_2_97(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_97(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(96, xla); } + } + + private boolean jj_2_98(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_98(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(97, xla); } + } + + private boolean jj_2_99(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_99(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(98, xla); } + } + + private boolean jj_2_100(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_100(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(99, xla); } + } + + private boolean jj_2_101(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_101(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(100, xla); } + } + + private boolean jj_2_102(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_102(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(101, xla); } + } + + private boolean jj_2_103(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_103(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(102, xla); } + } + + private boolean jj_2_104(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_104(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(103, xla); } + } + + private boolean jj_2_105(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_105(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(104, xla); } + } + + private boolean jj_2_106(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_106(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(105, xla); } + } + + private boolean jj_2_107(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_107(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(106, xla); } + } + + private boolean jj_2_108(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_108(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(107, xla); } + } + + private boolean jj_2_109(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_109(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(108, xla); } + } + + private boolean jj_2_110(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_110(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(109, xla); } + } + + private boolean jj_2_111(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_111(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(110, xla); } + } + + private boolean jj_2_112(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_112(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(111, xla); } + } + + private boolean jj_2_113(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_113(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(112, xla); } + } + + private boolean jj_2_114(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_114(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(113, xla); } + } + + private boolean jj_2_115(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_115(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(114, xla); } + } + + private boolean jj_2_116(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_116(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(115, xla); } + } + + private boolean jj_2_117(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_117(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(116, xla); } + } + + private boolean jj_2_118(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_118(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(117, xla); } + } + + private boolean jj_2_119(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_119(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(118, xla); } + } + + private boolean jj_2_120(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_120(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(119, xla); } + } + + private boolean jj_2_121(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_121(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(120, xla); } + } + + private boolean jj_2_122(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_122(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(121, xla); } + } + + private boolean jj_2_123(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_123(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(122, xla); } + } + + private boolean jj_2_124(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_124(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(123, xla); } + } + + private boolean jj_2_125(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_125(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(124, xla); } + } + + private boolean jj_2_126(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_126(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(125, xla); } + } + + private boolean jj_2_127(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_127(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(126, xla); } + } + + private boolean jj_2_128(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_128(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(127, xla); } + } + + private boolean jj_2_129(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_129(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(128, xla); } + } + + private boolean jj_2_130(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_130(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(129, xla); } + } + + private boolean jj_2_131(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_131(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(130, xla); } + } + + private boolean jj_2_132(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_132(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(131, xla); } + } + + private boolean jj_2_133(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_133(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(132, xla); } + } + + private boolean jj_2_134(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_134(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(133, xla); } + } + + private boolean jj_2_135(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_135(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(134, xla); } + } + + private boolean jj_2_136(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_136(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(135, xla); } + } + + private boolean jj_2_137(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_137(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(136, xla); } + } + + private boolean jj_2_138(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_138(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(137, xla); } + } + + private boolean jj_2_139(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_139(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(138, xla); } + } + + private boolean jj_2_140(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_140(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(139, xla); } + } + + private boolean jj_2_141(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_141(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(140, xla); } + } + + private boolean jj_2_142(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_142(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(141, xla); } + } + + private boolean jj_2_143(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_143(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(142, xla); } + } + + private boolean jj_2_144(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_144(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(143, xla); } + } + + private boolean jj_2_145(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_145(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(144, xla); } + } + + private boolean jj_2_146(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_146(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(145, xla); } + } + + private boolean jj_2_147(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_147(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(146, xla); } + } + + private boolean jj_2_148(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_148(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(147, xla); } + } + + private boolean jj_2_149(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_149(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(148, xla); } + } + + private boolean jj_2_150(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_150(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(149, xla); } + } + + private boolean jj_2_151(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_151(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(150, xla); } + } + + private boolean jj_2_152(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_152(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(151, xla); } + } + + private boolean jj_2_153(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_153(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(152, xla); } + } + + private boolean jj_2_154(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_154(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(153, xla); } + } + + private boolean jj_2_155(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_155(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(154, xla); } + } + + private boolean jj_2_156(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_156(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(155, xla); } + } + + private boolean jj_2_157(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_157(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(156, xla); } + } + + private boolean jj_2_158(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_158(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(157, xla); } + } + + private boolean jj_2_159(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_159(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(158, xla); } + } + + private boolean jj_2_160(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_160(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(159, xla); } + } + + private boolean jj_2_161(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_161(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(160, xla); } + } + + private boolean jj_2_162(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_162(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(161, xla); } + } + + private boolean jj_2_163(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_163(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(162, xla); } + } + + private boolean jj_2_164(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_164(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(163, xla); } + } + + private boolean jj_2_165(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_165(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(164, xla); } + } + + private boolean jj_2_166(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_166(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(165, xla); } + } + + private boolean jj_2_167(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_167(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(166, xla); } + } + + private boolean jj_2_168(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_168(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(167, xla); } + } + + private boolean jj_2_169(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_169(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(168, xla); } + } + + private boolean jj_2_170(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_170(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(169, xla); } + } + + private boolean jj_2_171(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_171(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(170, xla); } + } + + private boolean jj_2_172(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_172(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(171, xla); } + } + + private boolean jj_2_173(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_173(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(172, xla); } + } + + private boolean jj_2_174(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_174(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(173, xla); } + } + + private boolean jj_2_175(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_175(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(174, xla); } + } + + private boolean jj_2_176(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_176(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(175, xla); } + } + + private boolean jj_2_177(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_177(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(176, xla); } + } + + private boolean jj_2_178(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_178(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(177, xla); } + } + + private boolean jj_2_179(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_179(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(178, xla); } + } + + private boolean jj_2_180(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_180(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(179, xla); } + } + + private boolean jj_2_181(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_181(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(180, xla); } + } + + private boolean jj_2_182(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_182(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(181, xla); } + } + + private boolean jj_2_183(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_183(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(182, xla); } + } + + private boolean jj_2_184(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_184(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(183, xla); } + } + + private boolean jj_2_185(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_185(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(184, xla); } + } + + private boolean jj_2_186(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_186(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(185, xla); } + } + + private boolean jj_2_187(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_187(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(186, xla); } + } + + private boolean jj_2_188(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_188(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(187, xla); } + } + + private boolean jj_2_189(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_189(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(188, xla); } + } + + private boolean jj_2_190(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_190(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(189, xla); } + } + + private boolean jj_2_191(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_191(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(190, xla); } + } + + private boolean jj_2_192(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_192(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(191, xla); } + } + + private boolean jj_2_193(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_193(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(192, xla); } + } + + private boolean jj_2_194(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_194(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(193, xla); } + } + + private boolean jj_2_195(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_195(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(194, xla); } + } + + private boolean jj_2_196(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_196(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(195, xla); } + } + + private boolean jj_2_197(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_197(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(196, xla); } + } + + private boolean jj_2_198(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_198(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(197, xla); } + } + + private boolean jj_2_199(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_199(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(198, xla); } + } + + private boolean jj_2_200(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_200(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(199, xla); } + } + + private boolean jj_2_201(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_201(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(200, xla); } + } + + private boolean jj_2_202(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_202(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(201, xla); } + } + + private boolean jj_2_203(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_203(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(202, xla); } + } + + private boolean jj_2_204(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_204(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(203, xla); } + } + + private boolean jj_2_205(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_205(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(204, xla); } + } + + private boolean jj_2_206(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_206(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(205, xla); } + } + + private boolean jj_2_207(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_207(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(206, xla); } + } + + private boolean jj_2_208(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_208(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(207, xla); } + } + + private boolean jj_2_209(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_209(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(208, xla); } + } + + private boolean jj_2_210(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_210(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(209, xla); } + } + + private boolean jj_2_211(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_211(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(210, xla); } + } + + private boolean jj_2_212(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_212(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(211, xla); } + } + + private boolean jj_2_213(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_213(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(212, xla); } + } + + private boolean jj_2_214(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_214(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(213, xla); } + } + + private boolean jj_2_215(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_215(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(214, xla); } + } + + private boolean jj_2_216(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_216(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(215, xla); } + } + + private boolean jj_2_217(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_217(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(216, xla); } + } + + private boolean jj_2_218(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_218(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(217, xla); } + } + + private boolean jj_2_219(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_219(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(218, xla); } + } + + private boolean jj_2_220(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_220(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(219, xla); } + } + + private boolean jj_2_221(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_221(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(220, xla); } + } + + private boolean jj_2_222(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_222(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(221, xla); } + } + + private boolean jj_2_223(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_223(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(222, xla); } + } + + private boolean jj_2_224(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_224(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(223, xla); } + } + + private boolean jj_2_225(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_225(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(224, xla); } + } + + private boolean jj_2_226(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_226(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(225, xla); } + } + + private boolean jj_2_227(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_227(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(226, xla); } + } + + private boolean jj_2_228(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_228(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(227, xla); } + } + + private boolean jj_2_229(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_229(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(228, xla); } + } + + private boolean jj_2_230(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_230(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(229, xla); } + } + + private boolean jj_2_231(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_231(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(230, xla); } + } + + private boolean jj_2_232(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_232(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(231, xla); } + } + + private boolean jj_2_233(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_233(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(232, xla); } + } + + private boolean jj_2_234(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_234(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(233, xla); } + } + + private boolean jj_2_235(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_235(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(234, xla); } + } + + private boolean jj_2_236(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_236(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(235, xla); } + } + + private boolean jj_2_237(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_237(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(236, xla); } + } + + private boolean jj_2_238(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_238(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(237, xla); } + } + + private boolean jj_2_239(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_239(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(238, xla); } + } + + private boolean jj_2_240(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_240(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(239, xla); } + } + + private boolean jj_2_241(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_241(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(240, xla); } + } + + private boolean jj_2_242(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_242(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(241, xla); } + } + + private boolean jj_2_243(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_243(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(242, xla); } + } + + private boolean jj_2_244(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_244(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(243, xla); } + } + + private boolean jj_2_245(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_245(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(244, xla); } + } + + private boolean jj_2_246(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_246(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(245, xla); } + } + + private boolean jj_2_247(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_247(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(246, xla); } + } + + private boolean jj_2_248(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_248(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(247, xla); } + } + + private boolean jj_2_249(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_249(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(248, xla); } + } + + private boolean jj_2_250(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_250(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(249, xla); } + } + + private boolean jj_2_251(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_251(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(250, xla); } + } + + private boolean jj_2_252(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_252(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(251, xla); } + } + + private boolean jj_2_253(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_253(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(252, xla); } + } + + private boolean jj_2_254(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_254(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(253, xla); } + } + + private boolean jj_2_255(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_255(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(254, xla); } + } + + private boolean jj_2_256(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_256(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(255, xla); } + } + + private boolean jj_2_257(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_257(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(256, xla); } + } + + private boolean jj_2_258(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_258(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(257, xla); } + } + + private boolean jj_2_259(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_259(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(258, xla); } + } + + private boolean jj_2_260(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_260(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(259, xla); } + } + + private boolean jj_2_261(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_261(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(260, xla); } + } + + private boolean jj_2_262(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_262(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(261, xla); } + } + + private boolean jj_2_263(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_263(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(262, xla); } + } + + private boolean jj_2_264(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_264(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(263, xla); } + } + + private boolean jj_2_265(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_265(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(264, xla); } + } + + private boolean jj_2_266(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_266(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(265, xla); } + } + + private boolean jj_2_267(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_267(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(266, xla); } + } + + private boolean jj_2_268(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_268(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(267, xla); } + } + + private boolean jj_2_269(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_269(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(268, xla); } + } + + private boolean jj_2_270(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_270(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(269, xla); } + } + + private boolean jj_2_271(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_271(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(270, xla); } + } + + private boolean jj_2_272(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_272(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(271, xla); } + } + + private boolean jj_2_273(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_273(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(272, xla); } + } + + private boolean jj_2_274(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_274(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(273, xla); } + } + + private boolean jj_2_275(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_275(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(274, xla); } + } + + private boolean jj_2_276(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_276(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(275, xla); } + } + + private boolean jj_2_277(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_277(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(276, xla); } + } + + private boolean jj_2_278(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_278(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(277, xla); } + } + + private boolean jj_2_279(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_279(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(278, xla); } + } + + private boolean jj_2_280(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_280(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(279, xla); } + } + + private boolean jj_2_281(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_281(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(280, xla); } + } + + private boolean jj_2_282(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_282(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(281, xla); } + } + + private boolean jj_2_283(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_283(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(282, xla); } + } + + private boolean jj_2_284(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_284(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(283, xla); } + } + + private boolean jj_2_285(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_285(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(284, xla); } + } + + private boolean jj_2_286(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_286(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(285, xla); } + } + + private boolean jj_2_287(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_287(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(286, xla); } + } + + private boolean jj_2_288(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_288(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(287, xla); } + } + + private boolean jj_2_289(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_289(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(288, xla); } + } + + private boolean jj_2_290(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_290(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(289, xla); } + } + + private boolean jj_2_291(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_291(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(290, xla); } + } + + private boolean jj_2_292(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_292(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(291, xla); } + } + + private boolean jj_2_293(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_293(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(292, xla); } + } + + private boolean jj_2_294(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_294(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(293, xla); } + } + + private boolean jj_2_295(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_295(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(294, xla); } + } + + private boolean jj_2_296(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_296(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(295, xla); } + } + + private boolean jj_2_297(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_297(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(296, xla); } + } + + private boolean jj_2_298(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_298(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(297, xla); } + } + + private boolean jj_2_299(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_299(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(298, xla); } + } + + private boolean jj_2_300(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_300(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(299, xla); } + } + + private boolean jj_2_301(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_301(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(300, xla); } + } + + private boolean jj_2_302(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_302(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(301, xla); } + } + + private boolean jj_2_303(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_303(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(302, xla); } + } + + private boolean jj_2_304(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_304(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(303, xla); } + } + + private boolean jj_2_305(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_305(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(304, xla); } + } + + private boolean jj_2_306(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_306(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(305, xla); } + } + + private boolean jj_2_307(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_307(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(306, xla); } + } + + private boolean jj_2_308(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_308(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(307, xla); } + } + + private boolean jj_2_309(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_309(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(308, xla); } + } + + private boolean jj_2_310(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_310(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(309, xla); } + } + + private boolean jj_2_311(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_311(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(310, xla); } + } + + private boolean jj_2_312(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_312(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(311, xla); } + } + + private boolean jj_2_313(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_313(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(312, xla); } + } + + private boolean jj_2_314(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_314(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(313, xla); } + } + + private boolean jj_2_315(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_315(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(314, xla); } + } + + private boolean jj_2_316(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_316(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(315, xla); } + } + + private boolean jj_2_317(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_317(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(316, xla); } + } + + private boolean jj_2_318(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_318(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(317, xla); } + } + + private boolean jj_2_319(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_319(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(318, xla); } + } + + private boolean jj_2_320(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_320(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(319, xla); } + } + + private boolean jj_2_321(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_321(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(320, xla); } + } + + private boolean jj_2_322(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_322(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(321, xla); } + } + + private boolean jj_2_323(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_323(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(322, xla); } + } + + private boolean jj_2_324(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_324(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(323, xla); } + } + + private boolean jj_2_325(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_325(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(324, xla); } + } + + private boolean jj_2_326(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_326(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(325, xla); } + } + + private boolean jj_2_327(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_327(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(326, xla); } + } + + private boolean jj_2_328(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_328(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(327, xla); } + } + + private boolean jj_2_329(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_329(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(328, xla); } + } + + private boolean jj_2_330(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_330(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(329, xla); } + } + + private boolean jj_2_331(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_331(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(330, xla); } + } + + private boolean jj_2_332(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_332(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(331, xla); } + } + + private boolean jj_2_333(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_333(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(332, xla); } + } + + private boolean jj_2_334(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_334(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(333, xla); } + } + + private boolean jj_2_335(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_335(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(334, xla); } + } + + private boolean jj_2_336(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_336(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(335, xla); } + } + + private boolean jj_2_337(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_337(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(336, xla); } + } + + private boolean jj_2_338(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_338(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(337, xla); } + } + + private boolean jj_2_339(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_339(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(338, xla); } + } + + private boolean jj_2_340(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_340(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(339, xla); } + } + + private boolean jj_2_341(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_341(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(340, xla); } + } + + private boolean jj_2_342(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_342(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(341, xla); } + } + + private boolean jj_2_343(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_343(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(342, xla); } + } + + private boolean jj_2_344(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_344(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(343, xla); } + } + + private boolean jj_2_345(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_345(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(344, xla); } + } + + private boolean jj_2_346(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_346(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(345, xla); } + } + + private boolean jj_2_347(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_347(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(346, xla); } + } + + private boolean jj_2_348(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_348(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(347, xla); } + } + + private boolean jj_2_349(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_349(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(348, xla); } + } + + private boolean jj_2_350(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_350(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(349, xla); } + } + + private boolean jj_2_351(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_351(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(350, xla); } + } + + private boolean jj_2_352(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_352(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(351, xla); } + } + + private boolean jj_2_353(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_353(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(352, xla); } + } + + private boolean jj_2_354(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_354(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(353, xla); } + } + + private boolean jj_2_355(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_355(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(354, xla); } + } + + private boolean jj_2_356(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_356(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(355, xla); } + } + + private boolean jj_2_357(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_357(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(356, xla); } + } + + private boolean jj_2_358(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_358(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(357, xla); } + } + + private boolean jj_2_359(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_359(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(358, xla); } + } + + private boolean jj_2_360(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_360(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(359, xla); } + } + + private boolean jj_2_361(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_361(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(360, xla); } + } + + private boolean jj_2_362(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_362(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(361, xla); } + } + + private boolean jj_2_363(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_363(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(362, xla); } + } + + private boolean jj_2_364(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_364(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(363, xla); } + } + + private boolean jj_2_365(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_365(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(364, xla); } + } + + private boolean jj_2_366(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_366(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(365, xla); } + } + + private boolean jj_2_367(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_367(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(366, xla); } + } + + private boolean jj_2_368(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_368(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(367, xla); } + } + + private boolean jj_2_369(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_369(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(368, xla); } + } + + private boolean jj_2_370(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_370(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(369, xla); } + } + + private boolean jj_2_371(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_371(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(370, xla); } + } + + private boolean jj_2_372(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_372(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(371, xla); } + } + + private boolean jj_2_373(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_373(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(372, xla); } + } + + private boolean jj_2_374(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_374(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(373, xla); } + } + + private boolean jj_2_375(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_375(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(374, xla); } + } + + private boolean jj_2_376(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_376(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(375, xla); } + } + + private boolean jj_2_377(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_377(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(376, xla); } + } + + private boolean jj_2_378(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_378(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(377, xla); } + } + + private boolean jj_2_379(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_379(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(378, xla); } + } + + private boolean jj_2_380(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_380(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(379, xla); } + } + + private boolean jj_2_381(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_381(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(380, xla); } + } + + private boolean jj_2_382(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_382(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(381, xla); } + } + + private boolean jj_2_383(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_383(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(382, xla); } + } + + private boolean jj_2_384(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_384(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(383, xla); } + } + + private boolean jj_2_385(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_385(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(384, xla); } + } + + private boolean jj_2_386(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_386(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(385, xla); } + } + + private boolean jj_2_387(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_387(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(386, xla); } + } + + private boolean jj_2_388(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_388(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(387, xla); } + } + + private boolean jj_2_389(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_389(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(388, xla); } + } + + private boolean jj_2_390(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_390(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(389, xla); } + } + + private boolean jj_2_391(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_391(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(390, xla); } + } + + private boolean jj_2_392(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_392(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(391, xla); } + } + + private boolean jj_2_393(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_393(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(392, xla); } + } + + private boolean jj_2_394(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_394(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(393, xla); } + } + + private boolean jj_2_395(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_395(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(394, xla); } + } + + private boolean jj_2_396(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_396(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(395, xla); } + } + + private boolean jj_2_397(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_397(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(396, xla); } + } + + private boolean jj_2_398(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_398(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(397, xla); } + } + + private boolean jj_2_399(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_399(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(398, xla); } + } + + private boolean jj_2_400(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_400(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(399, xla); } + } + + private boolean jj_2_401(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_401(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(400, xla); } + } + + private boolean jj_2_402(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_402(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(401, xla); } + } + + private boolean jj_2_403(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_403(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(402, xla); } + } + + private boolean jj_2_404(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_404(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(403, xla); } + } + + private boolean jj_2_405(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_405(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(404, xla); } + } + + private boolean jj_2_406(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_406(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(405, xla); } + } + + private boolean jj_2_407(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_407(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(406, xla); } + } + + private boolean jj_2_408(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_408(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(407, xla); } + } + + private boolean jj_2_409(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_409(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(408, xla); } + } + + private boolean jj_2_410(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_410(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(409, xla); } + } + + private boolean jj_2_411(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_411(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(410, xla); } + } + + private boolean jj_2_412(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_412(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(411, xla); } + } + + private boolean jj_2_413(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_413(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(412, xla); } + } + + private boolean jj_2_414(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_414(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(413, xla); } + } + + private boolean jj_2_415(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_415(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(414, xla); } + } + + private boolean jj_2_416(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_416(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(415, xla); } + } + + private boolean jj_2_417(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_417(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(416, xla); } + } + + private boolean jj_2_418(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_418(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(417, xla); } + } + + private boolean jj_2_419(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_419(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(418, xla); } + } + + private boolean jj_2_420(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_420(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(419, xla); } + } + + private boolean jj_2_421(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_421(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(420, xla); } + } + + private boolean jj_2_422(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_422(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(421, xla); } + } + + private boolean jj_2_423(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_423(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(422, xla); } + } + + private boolean jj_2_424(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_424(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(423, xla); } + } + + private boolean jj_2_425(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_425(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(424, xla); } + } + + private boolean jj_2_426(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_426(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(425, xla); } + } + + private boolean jj_2_427(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_427(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(426, xla); } + } + + private boolean jj_2_428(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_428(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(427, xla); } + } + + private boolean jj_2_429(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_429(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(428, xla); } + } + + private boolean jj_2_430(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_430(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(429, xla); } + } + + private boolean jj_2_431(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_431(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(430, xla); } + } + + private boolean jj_2_432(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_432(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(431, xla); } + } + + private boolean jj_2_433(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_433(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(432, xla); } + } + + private boolean jj_2_434(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_434(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(433, xla); } + } + + private boolean jj_2_435(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_435(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(434, xla); } + } + + private boolean jj_2_436(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_436(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(435, xla); } + } + + private boolean jj_2_437(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_437(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(436, xla); } + } + + private boolean jj_2_438(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_438(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(437, xla); } + } + + private boolean jj_2_439(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_439(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(438, xla); } + } + + private boolean jj_2_440(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_440(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(439, xla); } + } + + private boolean jj_2_441(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_441(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(440, xla); } + } + + private boolean jj_2_442(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_442(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(441, xla); } + } + + private boolean jj_2_443(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_443(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(442, xla); } + } + + private boolean jj_2_444(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_444(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(443, xla); } + } + + private boolean jj_2_445(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_445(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(444, xla); } + } + + private boolean jj_2_446(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_446(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(445, xla); } + } + + private boolean jj_2_447(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_447(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(446, xla); } + } + + private boolean jj_2_448(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_448(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(447, xla); } + } + + private boolean jj_2_449(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_449(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(448, xla); } + } + + private boolean jj_2_450(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_450(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(449, xla); } + } + + private boolean jj_2_451(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_451(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(450, xla); } + } + + private boolean jj_2_452(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_452(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(451, xla); } + } + + private boolean jj_2_453(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_453(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(452, xla); } + } + + private boolean jj_2_454(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_454(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(453, xla); } + } + + private boolean jj_2_455(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_455(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(454, xla); } + } + + private boolean jj_2_456(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_456(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(455, xla); } + } + + private boolean jj_2_457(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_457(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(456, xla); } + } + + private boolean jj_2_458(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_458(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(457, xla); } + } + + private boolean jj_2_459(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_459(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(458, xla); } + } + + private boolean jj_2_460(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_460(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(459, xla); } + } + + private boolean jj_2_461(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_461(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(460, xla); } + } + + private boolean jj_2_462(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_462(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(461, xla); } + } + + private boolean jj_2_463(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_463(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(462, xla); } + } + + private boolean jj_2_464(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_464(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(463, xla); } + } + + private boolean jj_2_465(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_465(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(464, xla); } + } + + private boolean jj_2_466(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_466(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(465, xla); } + } + + private boolean jj_2_467(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_467(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(466, xla); } + } + + private boolean jj_2_468(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_468(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(467, xla); } + } + + private boolean jj_2_469(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_469(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(468, xla); } + } + + private boolean jj_2_470(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_470(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(469, xla); } + } + + private boolean jj_2_471(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_471(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(470, xla); } + } + + private boolean jj_2_472(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_472(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(471, xla); } + } + + private boolean jj_2_473(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_473(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(472, xla); } + } + + private boolean jj_2_474(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_474(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(473, xla); } + } + + private boolean jj_2_475(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_475(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(474, xla); } + } + + private boolean jj_2_476(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_476(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(475, xla); } + } + + private boolean jj_2_477(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_477(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(476, xla); } + } + + private boolean jj_2_478(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_478(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(477, xla); } + } + + private boolean jj_2_479(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_479(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(478, xla); } + } + + private boolean jj_2_480(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_480(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(479, xla); } + } + + private boolean jj_2_481(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_481(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(480, xla); } + } + + private boolean jj_2_482(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_482(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(481, xla); } + } + + private boolean jj_2_483(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_483(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(482, xla); } + } + + private boolean jj_2_484(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_484(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(483, xla); } + } + + private boolean jj_2_485(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_485(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(484, xla); } + } + + private boolean jj_2_486(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_486(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(485, xla); } + } + + private boolean jj_2_487(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_487(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(486, xla); } + } + + private boolean jj_2_488(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_488(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(487, xla); } + } + + private boolean jj_2_489(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_489(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(488, xla); } + } + + private boolean jj_2_490(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_490(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(489, xla); } + } + + private boolean jj_2_491(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_491(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(490, xla); } + } + + private boolean jj_2_492(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_492(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(491, xla); } + } + + private boolean jj_2_493(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_493(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(492, xla); } + } + + private boolean jj_2_494(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_494(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(493, xla); } + } + + private boolean jj_2_495(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_495(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(494, xla); } + } + + private boolean jj_2_496(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_496(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(495, xla); } + } + + private boolean jj_2_497(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_497(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(496, xla); } + } + + private boolean jj_2_498(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_498(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(497, xla); } + } + + private boolean jj_2_499(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_499(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(498, xla); } + } + + private boolean jj_2_500(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_500(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(499, xla); } + } + + private boolean jj_2_501(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_501(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(500, xla); } + } + + private boolean jj_2_502(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_502(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(501, xla); } + } + + private boolean jj_2_503(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_503(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(502, xla); } + } + + private boolean jj_2_504(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_504(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(503, xla); } + } + + private boolean jj_2_505(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_505(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(504, xla); } + } + + private boolean jj_2_506(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_506(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(505, xla); } + } + + private boolean jj_2_507(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_507(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(506, xla); } + } + + private boolean jj_2_508(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_508(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(507, xla); } + } + + private boolean jj_2_509(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_509(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(508, xla); } + } + + private boolean jj_2_510(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_510(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(509, xla); } + } + + private boolean jj_2_511(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_511(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(510, xla); } + } + + private boolean jj_2_512(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_512(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(511, xla); } + } + + private boolean jj_2_513(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_513(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(512, xla); } + } + + private boolean jj_2_514(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_514(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(513, xla); } + } + + private boolean jj_2_515(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_515(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(514, xla); } + } + + private boolean jj_2_516(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_516(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(515, xla); } + } + + private boolean jj_2_517(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_517(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(516, xla); } + } + + private boolean jj_2_518(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_518(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(517, xla); } + } + + private boolean jj_2_519(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_519(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(518, xla); } + } + + private boolean jj_2_520(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_520(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(519, xla); } + } + + private boolean jj_2_521(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_521(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(520, xla); } + } + + private boolean jj_2_522(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_522(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(521, xla); } + } + + private boolean jj_2_523(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_523(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(522, xla); } + } + + private boolean jj_2_524(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_524(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(523, xla); } + } + + private boolean jj_2_525(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_525(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(524, xla); } + } + + private boolean jj_2_526(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_526(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(525, xla); } + } + + private boolean jj_2_527(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_527(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(526, xla); } + } + + private boolean jj_2_528(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_528(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(527, xla); } + } + + private boolean jj_2_529(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_529(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(528, xla); } + } + + private boolean jj_2_530(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_530(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(529, xla); } + } + + private boolean jj_2_531(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_531(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(530, xla); } + } + + private boolean jj_2_532(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_532(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(531, xla); } + } + + private boolean jj_2_533(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_533(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(532, xla); } + } + + private boolean jj_2_534(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_534(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(533, xla); } + } + + private boolean jj_2_535(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_535(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(534, xla); } + } + + private boolean jj_2_536(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_536(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(535, xla); } + } + + private boolean jj_2_537(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_537(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(536, xla); } + } + + private boolean jj_2_538(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_538(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(537, xla); } + } + + private boolean jj_2_539(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_539(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(538, xla); } + } + + private boolean jj_2_540(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_540(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(539, xla); } + } + + private boolean jj_2_541(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_541(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(540, xla); } + } + + private boolean jj_2_542(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_542(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(541, xla); } + } + + private boolean jj_2_543(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_543(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(542, xla); } + } + + private boolean jj_2_544(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_544(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(543, xla); } + } + + private boolean jj_2_545(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_545(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(544, xla); } + } + + private boolean jj_2_546(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_546(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(545, xla); } + } + + private boolean jj_2_547(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_547(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(546, xla); } + } + + private boolean jj_2_548(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_548(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(547, xla); } + } + + private boolean jj_2_549(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_549(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(548, xla); } + } + + private boolean jj_2_550(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_550(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(549, xla); } + } + + private boolean jj_2_551(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_551(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(550, xla); } + } + + private boolean jj_2_552(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_552(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(551, xla); } + } + + private boolean jj_2_553(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_553(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(552, xla); } + } + + private boolean jj_2_554(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_554(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(553, xla); } + } + + private boolean jj_2_555(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_555(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(554, xla); } + } + + private boolean jj_2_556(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_556(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(555, xla); } + } + + private boolean jj_2_557(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_557(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(556, xla); } + } + + private boolean jj_2_558(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_558(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(557, xla); } + } + + private boolean jj_2_559(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_559(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(558, xla); } + } + + private boolean jj_2_560(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_560(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(559, xla); } + } + + private boolean jj_2_561(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_561(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(560, xla); } + } + + private boolean jj_2_562(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_562(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(561, xla); } + } + + private boolean jj_2_563(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_563(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(562, xla); } + } + + private boolean jj_2_564(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_564(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(563, xla); } + } + + private boolean jj_2_565(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_565(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(564, xla); } + } + + private boolean jj_2_566(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_566(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(565, xla); } + } + + private boolean jj_2_567(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_567(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(566, xla); } + } + + private boolean jj_2_568(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_568(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(567, xla); } + } + + private boolean jj_2_569(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_569(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(568, xla); } + } + + private boolean jj_2_570(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_570(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(569, xla); } + } + + private boolean jj_2_571(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_571(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(570, xla); } + } + + private boolean jj_2_572(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_572(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(571, xla); } + } + + private boolean jj_2_573(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_573(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(572, xla); } + } + + private boolean jj_2_574(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_574(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(573, xla); } + } + + private boolean jj_2_575(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_575(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(574, xla); } + } + + private boolean jj_2_576(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_576(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(575, xla); } + } + + private boolean jj_2_577(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_577(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(576, xla); } + } + + private boolean jj_2_578(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_578(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(577, xla); } + } + + private boolean jj_2_579(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_579(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(578, xla); } + } + + private boolean jj_2_580(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_580(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(579, xla); } + } + + private boolean jj_2_581(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_581(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(580, xla); } + } + + private boolean jj_2_582(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_582(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(581, xla); } + } + + private boolean jj_2_583(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_583(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(582, xla); } + } + + private boolean jj_2_584(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_584(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(583, xla); } + } + + private boolean jj_2_585(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_585(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(584, xla); } + } + + private boolean jj_2_586(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_586(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(585, xla); } + } + + private boolean jj_2_587(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_587(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(586, xla); } + } + + private boolean jj_2_588(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_588(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(587, xla); } + } + + private boolean jj_2_589(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_589(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(588, xla); } + } + + private boolean jj_2_590(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_590(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(589, xla); } + } + + private boolean jj_2_591(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_591(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(590, xla); } + } + + private boolean jj_2_592(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_592(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(591, xla); } + } + + private boolean jj_2_593(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_593(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(592, xla); } + } + + private boolean jj_2_594(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_594(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(593, xla); } + } + + private boolean jj_2_595(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_595(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(594, xla); } + } + + private boolean jj_2_596(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_596(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(595, xla); } + } + + private boolean jj_2_597(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_597(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(596, xla); } + } + + private boolean jj_2_598(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_598(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(597, xla); } + } + + private boolean jj_2_599(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_599(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(598, xla); } + } + + private boolean jj_2_600(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_600(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(599, xla); } + } + + private boolean jj_2_601(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_601(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(600, xla); } + } + + private boolean jj_2_602(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_602(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(601, xla); } + } + + private boolean jj_2_603(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_603(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(602, xla); } + } + + private boolean jj_2_604(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_604(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(603, xla); } + } + + private boolean jj_2_605(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_605(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(604, xla); } + } + + private boolean jj_2_606(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_606(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(605, xla); } + } + + private boolean jj_2_607(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_607(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(606, xla); } + } + + private boolean jj_2_608(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_608(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(607, xla); } + } + + private boolean jj_2_609(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_609(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(608, xla); } + } + + private boolean jj_2_610(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_610(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(609, xla); } + } + + private boolean jj_2_611(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_611(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(610, xla); } + } + + private boolean jj_2_612(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_612(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(611, xla); } + } + + private boolean jj_2_613(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_613(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(612, xla); } + } + + private boolean jj_2_614(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_614(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(613, xla); } + } + + private boolean jj_2_615(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_615(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(614, xla); } + } + + private boolean jj_2_616(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_616(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(615, xla); } + } + + private boolean jj_2_617(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_617(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(616, xla); } + } + + private boolean jj_2_618(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_618(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(617, xla); } + } + + private boolean jj_2_619(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_619(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(618, xla); } + } + + private boolean jj_2_620(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_620(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(619, xla); } + } + + private boolean jj_2_621(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_621(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(620, xla); } + } + + private boolean jj_2_622(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_622(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(621, xla); } + } + + private boolean jj_2_623(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_623(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(622, xla); } + } + + private boolean jj_2_624(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_624(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(623, xla); } + } + + private boolean jj_2_625(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_625(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(624, xla); } + } + + private boolean jj_2_626(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_626(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(625, xla); } + } + + private boolean jj_2_627(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_627(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(626, xla); } + } + + private boolean jj_2_628(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_628(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(627, xla); } + } + + private boolean jj_2_629(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_629(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(628, xla); } + } + + private boolean jj_2_630(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_630(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(629, xla); } + } + + private boolean jj_2_631(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_631(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(630, xla); } + } + + private boolean jj_2_632(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_632(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(631, xla); } + } + + private boolean jj_2_633(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_633(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(632, xla); } + } + + private boolean jj_2_634(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_634(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(633, xla); } + } + + private boolean jj_2_635(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_635(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(634, xla); } + } + + private boolean jj_2_636(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_636(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(635, xla); } + } + + private boolean jj_2_637(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_637(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(636, xla); } + } + + private boolean jj_2_638(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_638(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(637, xla); } + } + + private boolean jj_2_639(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_639(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(638, xla); } + } + + private boolean jj_2_640(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_640(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(639, xla); } + } + + private boolean jj_2_641(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_641(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(640, xla); } + } + + private boolean jj_2_642(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_642(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(641, xla); } + } + + private boolean jj_2_643(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_643(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(642, xla); } + } + + private boolean jj_2_644(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_644(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(643, xla); } + } + + private boolean jj_2_645(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_645(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(644, xla); } + } + + private boolean jj_2_646(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_646(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(645, xla); } + } + + private boolean jj_2_647(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_647(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(646, xla); } + } + + private boolean jj_2_648(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_648(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(647, xla); } + } + + private boolean jj_2_649(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_649(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(648, xla); } + } + + private boolean jj_2_650(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_650(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(649, xla); } + } + + private boolean jj_2_651(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_651(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(650, xla); } + } + + private boolean jj_2_652(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_652(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(651, xla); } + } + + private boolean jj_2_653(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_653(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(652, xla); } + } + + private boolean jj_2_654(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_654(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(653, xla); } + } + + private boolean jj_2_655(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_655(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(654, xla); } + } + + private boolean jj_2_656(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_656(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(655, xla); } + } + + private boolean jj_2_657(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_657(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(656, xla); } + } + + private boolean jj_2_658(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_658(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(657, xla); } + } + + private boolean jj_2_659(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_659(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(658, xla); } + } + + private boolean jj_2_660(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_660(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(659, xla); } + } + + private boolean jj_2_661(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_661(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(660, xla); } + } + + private boolean jj_2_662(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_662(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(661, xla); } + } + + private boolean jj_2_663(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_663(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(662, xla); } + } + + private boolean jj_2_664(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_664(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(663, xla); } + } + + private boolean jj_2_665(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_665(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(664, xla); } + } + + private boolean jj_2_666(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_666(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(665, xla); } + } + + private boolean jj_2_667(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_667(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(666, xla); } + } + + private boolean jj_2_668(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_668(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(667, xla); } + } + + private boolean jj_2_669(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_669(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(668, xla); } + } + + private boolean jj_2_670(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_670(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(669, xla); } + } + + private boolean jj_2_671(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_671(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(670, xla); } + } + + private boolean jj_2_672(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_672(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(671, xla); } + } + + private boolean jj_2_673(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_673(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(672, xla); } + } + + private boolean jj_2_674(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_674(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(673, xla); } + } + + private boolean jj_2_675(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_675(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(674, xla); } + } + + private boolean jj_2_676(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_676(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(675, xla); } + } + + private boolean jj_2_677(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_677(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(676, xla); } + } + + private boolean jj_2_678(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_678(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(677, xla); } + } + + private boolean jj_2_679(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_679(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(678, xla); } + } + + private boolean jj_2_680(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_680(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(679, xla); } + } + + private boolean jj_2_681(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_681(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(680, xla); } + } + + private boolean jj_2_682(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_682(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(681, xla); } + } + + private boolean jj_2_683(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_683(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(682, xla); } + } + + private boolean jj_2_684(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_684(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(683, xla); } + } + + private boolean jj_2_685(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_685(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(684, xla); } + } + + private boolean jj_2_686(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_686(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(685, xla); } + } + + private boolean jj_2_687(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_687(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(686, xla); } + } + + private boolean jj_2_688(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_688(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(687, xla); } + } + + private boolean jj_2_689(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_689(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(688, xla); } + } + + private boolean jj_2_690(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_690(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(689, xla); } + } + + private boolean jj_2_691(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_691(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(690, xla); } + } + + private boolean jj_2_692(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_692(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(691, xla); } + } + + private boolean jj_2_693(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_693(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(692, xla); } + } + + private boolean jj_2_694(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_694(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(693, xla); } + } + + private boolean jj_2_695(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_695(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(694, xla); } + } + + private boolean jj_2_696(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_696(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(695, xla); } + } + + private boolean jj_2_697(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_697(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(696, xla); } + } + + private boolean jj_2_698(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_698(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(697, xla); } + } + + private boolean jj_2_699(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_699(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(698, xla); } + } + + private boolean jj_2_700(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_700(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(699, xla); } + } + + private boolean jj_2_701(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_701(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(700, xla); } + } + + private boolean jj_2_702(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_702(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(701, xla); } + } + + private boolean jj_2_703(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_703(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(702, xla); } + } + + private boolean jj_2_704(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_704(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(703, xla); } + } + + private boolean jj_2_705(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_705(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(704, xla); } + } + + private boolean jj_2_706(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_706(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(705, xla); } + } + + private boolean jj_2_707(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_707(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(706, xla); } + } + + private boolean jj_2_708(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_708(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(707, xla); } + } + + private boolean jj_2_709(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_709(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(708, xla); } + } + + private boolean jj_2_710(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_710(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(709, xla); } + } + + private boolean jj_2_711(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_711(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(710, xla); } + } + + private boolean jj_2_712(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_712(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(711, xla); } + } + + private boolean jj_2_713(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_713(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(712, xla); } + } + + private boolean jj_2_714(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_714(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(713, xla); } + } + + private boolean jj_2_715(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_715(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(714, xla); } + } + + private boolean jj_2_716(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_716(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(715, xla); } + } + + private boolean jj_2_717(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_717(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(716, xla); } + } + + private boolean jj_2_718(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_718(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(717, xla); } + } + + private boolean jj_2_719(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_719(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(718, xla); } + } + + private boolean jj_2_720(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_720(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(719, xla); } + } + + private boolean jj_2_721(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_721(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(720, xla); } + } + + private boolean jj_2_722(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_722(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(721, xla); } + } + + private boolean jj_2_723(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_723(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(722, xla); } + } + + private boolean jj_2_724(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_724(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(723, xla); } + } + + private boolean jj_2_725(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_725(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(724, xla); } + } + + private boolean jj_2_726(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_726(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(725, xla); } + } + + private boolean jj_2_727(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_727(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(726, xla); } + } + + private boolean jj_2_728(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_728(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(727, xla); } + } + + private boolean jj_2_729(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_729(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(728, xla); } + } + + private boolean jj_2_730(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_730(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(729, xla); } + } + + private boolean jj_2_731(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_731(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(730, xla); } + } + + private boolean jj_2_732(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_732(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(731, xla); } + } + + private boolean jj_2_733(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_733(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(732, xla); } + } + + private boolean jj_2_734(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_734(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(733, xla); } + } + + private boolean jj_2_735(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_735(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(734, xla); } + } + + private boolean jj_2_736(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_736(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(735, xla); } + } + + private boolean jj_2_737(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_737(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(736, xla); } + } + + private boolean jj_2_738(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_738(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(737, xla); } + } + + private boolean jj_2_739(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_739(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(738, xla); } + } + + private boolean jj_2_740(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_740(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(739, xla); } + } + + private boolean jj_2_741(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_741(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(740, xla); } + } + + private boolean jj_2_742(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_742(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(741, xla); } + } + + private boolean jj_2_743(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_743(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(742, xla); } + } + + private boolean jj_2_744(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_744(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(743, xla); } + } + + private boolean jj_2_745(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_745(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(744, xla); } + } + + private boolean jj_2_746(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_746(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(745, xla); } + } + + private boolean jj_2_747(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_747(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(746, xla); } + } + + private boolean jj_2_748(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_748(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(747, xla); } + } + + private boolean jj_2_749(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_749(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(748, xla); } + } + + private boolean jj_2_750(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_750(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(749, xla); } + } + + private boolean jj_2_751(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_751(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(750, xla); } + } + + private boolean jj_2_752(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_752(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(751, xla); } + } + + private boolean jj_2_753(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_753(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(752, xla); } + } + + private boolean jj_2_754(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_754(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(753, xla); } + } + + private boolean jj_2_755(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_755(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(754, xla); } + } + + private boolean jj_2_756(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_756(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(755, xla); } + } + + private boolean jj_2_757(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_757(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(756, xla); } + } + + private boolean jj_2_758(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_758(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(757, xla); } + } + + private boolean jj_2_759(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_759(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(758, xla); } + } + + private boolean jj_2_760(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_760(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(759, xla); } + } + + private boolean jj_2_761(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_761(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(760, xla); } + } + + private boolean jj_2_762(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_762(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(761, xla); } + } + + private boolean jj_2_763(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_763(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(762, xla); } + } + + private boolean jj_2_764(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_764(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(763, xla); } + } + + private boolean jj_2_765(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_765(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(764, xla); } + } + + private boolean jj_2_766(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_766(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(765, xla); } + } + + private boolean jj_2_767(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_767(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(766, xla); } + } + + private boolean jj_2_768(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_768(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(767, xla); } + } + + private boolean jj_2_769(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_769(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(768, xla); } + } + + private boolean jj_2_770(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_770(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(769, xla); } + } + + private boolean jj_2_771(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_771(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(770, xla); } + } + + private boolean jj_2_772(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_772(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(771, xla); } + } + + private boolean jj_2_773(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_773(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(772, xla); } + } + + private boolean jj_2_774(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_774(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(773, xla); } + } + + private boolean jj_2_775(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_775(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(774, xla); } + } + + private boolean jj_2_776(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_776(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(775, xla); } + } + + private boolean jj_2_777(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_777(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(776, xla); } + } + + private boolean jj_2_778(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_778(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(777, xla); } + } + + private boolean jj_2_779(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_779(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(778, xla); } + } + + private boolean jj_2_780(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_780(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(779, xla); } + } + + private boolean jj_2_781(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_781(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(780, xla); } + } + + private boolean jj_2_782(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_782(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(781, xla); } + } + + private boolean jj_2_783(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_783(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(782, xla); } + } + + private boolean jj_2_784(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_784(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(783, xla); } + } + + private boolean jj_2_785(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_785(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(784, xla); } + } + + private boolean jj_2_786(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_786(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(785, xla); } + } + + private boolean jj_2_787(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_787(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(786, xla); } + } + + private boolean jj_2_788(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_788(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(787, xla); } + } + + private boolean jj_2_789(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_789(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(788, xla); } + } + + private boolean jj_2_790(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_790(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(789, xla); } + } + + private boolean jj_2_791(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_791(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(790, xla); } + } + + private boolean jj_2_792(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_792(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(791, xla); } + } + + private boolean jj_2_793(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_793(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(792, xla); } + } + + private boolean jj_2_794(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_794(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(793, xla); } + } + + private boolean jj_2_795(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_795(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(794, xla); } + } + + private boolean jj_2_796(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_796(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(795, xla); } + } + + private boolean jj_2_797(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_797(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(796, xla); } + } + + private boolean jj_2_798(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_798(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(797, xla); } + } + + private boolean jj_2_799(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_799(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(798, xla); } + } + + private boolean jj_2_800(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_800(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(799, xla); } + } + + private boolean jj_2_801(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_801(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(800, xla); } + } + + private boolean jj_2_802(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_802(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(801, xla); } + } + + private boolean jj_2_803(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_803(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(802, xla); } + } + + private boolean jj_2_804(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_804(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(803, xla); } + } + + private boolean jj_2_805(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_805(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(804, xla); } + } + + private boolean jj_2_806(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_806(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(805, xla); } + } + + private boolean jj_2_807(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_807(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(806, xla); } + } + + private boolean jj_2_808(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_808(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(807, xla); } + } + + private boolean jj_2_809(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_809(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(808, xla); } + } + + private boolean jj_2_810(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_810(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(809, xla); } + } + + private boolean jj_2_811(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_811(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(810, xla); } + } + + private boolean jj_2_812(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_812(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(811, xla); } + } + + private boolean jj_2_813(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_813(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(812, xla); } + } + + private boolean jj_2_814(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_814(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(813, xla); } + } + + private boolean jj_2_815(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_815(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(814, xla); } + } + + private boolean jj_2_816(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_816(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(815, xla); } + } + + private boolean jj_2_817(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_817(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(816, xla); } + } + + private boolean jj_2_818(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_818(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(817, xla); } + } + + private boolean jj_2_819(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_819(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(818, xla); } + } + + private boolean jj_2_820(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_820(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(819, xla); } + } + + private boolean jj_2_821(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_821(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(820, xla); } + } + + private boolean jj_2_822(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_822(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(821, xla); } + } + + private boolean jj_2_823(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_823(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(822, xla); } + } + + private boolean jj_2_824(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_824(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(823, xla); } + } + + private boolean jj_2_825(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_825(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(824, xla); } + } + + private boolean jj_2_826(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_826(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(825, xla); } + } + + private boolean jj_2_827(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_827(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(826, xla); } + } + + private boolean jj_2_828(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_828(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(827, xla); } + } + + private boolean jj_2_829(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_829(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(828, xla); } + } + + private boolean jj_2_830(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_830(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(829, xla); } + } + + private boolean jj_2_831(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_831(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(830, xla); } + } + + private boolean jj_2_832(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_832(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(831, xla); } + } + + private boolean jj_2_833(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_833(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(832, xla); } + } + + private boolean jj_2_834(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_834(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(833, xla); } + } + + private boolean jj_2_835(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_835(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(834, xla); } + } + + private boolean jj_2_836(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_836(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(835, xla); } + } + + private boolean jj_2_837(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_837(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(836, xla); } + } + + private boolean jj_2_838(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_838(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(837, xla); } + } + + private boolean jj_2_839(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_839(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(838, xla); } + } + + private boolean jj_2_840(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_840(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(839, xla); } + } + + private boolean jj_2_841(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_841(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(840, xla); } + } + + private boolean jj_2_842(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_842(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(841, xla); } + } + + private boolean jj_2_843(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_843(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(842, xla); } + } + + private boolean jj_2_844(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_844(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(843, xla); } + } + + private boolean jj_2_845(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_845(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(844, xla); } + } + + private boolean jj_2_846(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_846(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(845, xla); } + } + + private boolean jj_2_847(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_847(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(846, xla); } + } + + private boolean jj_2_848(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_848(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(847, xla); } + } + + private boolean jj_2_849(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_849(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(848, xla); } + } + + private boolean jj_2_850(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_850(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(849, xla); } + } + + private boolean jj_2_851(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_851(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(850, xla); } + } + + private boolean jj_2_852(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_852(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(851, xla); } + } + + private boolean jj_2_853(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_853(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(852, xla); } + } + + private boolean jj_2_854(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_854(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(853, xla); } + } + + private boolean jj_2_855(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_855(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(854, xla); } + } + + private boolean jj_2_856(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_856(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(855, xla); } + } + + private boolean jj_2_857(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_857(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(856, xla); } + } + + private boolean jj_2_858(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_858(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(857, xla); } + } + + private boolean jj_2_859(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_859(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(858, xla); } + } + + private boolean jj_2_860(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_860(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(859, xla); } + } + + private boolean jj_2_861(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_861(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(860, xla); } + } + + private boolean jj_2_862(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_862(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(861, xla); } + } + + private boolean jj_2_863(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_863(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(862, xla); } + } + + private boolean jj_2_864(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_864(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(863, xla); } + } + + private boolean jj_2_865(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_865(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(864, xla); } + } + + private boolean jj_2_866(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_866(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(865, xla); } + } + + private boolean jj_2_867(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_867(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(866, xla); } + } + + private boolean jj_2_868(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_868(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(867, xla); } + } + + private boolean jj_2_869(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_869(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(868, xla); } + } + + private boolean jj_2_870(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_870(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(869, xla); } + } + + private boolean jj_2_871(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_871(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(870, xla); } + } + + private boolean jj_2_872(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_872(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(871, xla); } + } + + private boolean jj_2_873(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_873(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(872, xla); } + } + + private boolean jj_2_874(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_874(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(873, xla); } + } + + private boolean jj_2_875(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_875(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(874, xla); } + } + + private boolean jj_2_876(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_876(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(875, xla); } + } + + private boolean jj_2_877(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_877(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(876, xla); } + } + + private boolean jj_2_878(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_878(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(877, xla); } + } + + private boolean jj_2_879(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_879(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(878, xla); } + } + + private boolean jj_2_880(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_880(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(879, xla); } + } + + private boolean jj_2_881(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_881(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(880, xla); } + } + + private boolean jj_2_882(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_882(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(881, xla); } + } + + private boolean jj_2_883(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_883(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(882, xla); } + } + + private boolean jj_2_884(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_884(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(883, xla); } + } + + private boolean jj_2_885(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_885(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(884, xla); } + } + + private boolean jj_2_886(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_886(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(885, xla); } + } + + private boolean jj_2_887(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_887(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(886, xla); } + } + + private boolean jj_2_888(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_888(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(887, xla); } + } + + private boolean jj_2_889(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_889(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(888, xla); } + } + + private boolean jj_2_890(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_890(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(889, xla); } + } + + private boolean jj_2_891(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_891(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(890, xla); } + } + + private boolean jj_2_892(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_892(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(891, xla); } + } + + private boolean jj_2_893(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_893(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(892, xla); } + } + + private boolean jj_2_894(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_894(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(893, xla); } + } + + private boolean jj_2_895(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_895(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(894, xla); } + } + + private boolean jj_2_896(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_896(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(895, xla); } + } + + private boolean jj_2_897(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_897(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(896, xla); } + } + + private boolean jj_2_898(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_898(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(897, xla); } + } + + private boolean jj_2_899(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_899(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(898, xla); } + } + + private boolean jj_2_900(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_900(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(899, xla); } + } + + private boolean jj_2_901(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_901(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(900, xla); } + } + + private boolean jj_2_902(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_902(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(901, xla); } + } + + private boolean jj_2_903(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_903(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(902, xla); } + } + + private boolean jj_2_904(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_904(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(903, xla); } + } + + private boolean jj_2_905(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_905(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(904, xla); } + } + + private boolean jj_2_906(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_906(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(905, xla); } + } + + private boolean jj_2_907(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_907(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(906, xla); } + } + + private boolean jj_2_908(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_908(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(907, xla); } + } + + private boolean jj_2_909(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_909(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(908, xla); } + } + + private boolean jj_2_910(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_910(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(909, xla); } + } + + private boolean jj_2_911(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_911(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(910, xla); } + } + + private boolean jj_2_912(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_912(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(911, xla); } + } + + private boolean jj_2_913(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_913(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(912, xla); } + } + + private boolean jj_2_914(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_914(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(913, xla); } + } + + private boolean jj_2_915(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_915(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(914, xla); } + } + + private boolean jj_2_916(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_916(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(915, xla); } + } + + private boolean jj_2_917(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_917(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(916, xla); } + } + + private boolean jj_2_918(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_918(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(917, xla); } + } + + private boolean jj_2_919(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_919(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(918, xla); } + } + + private boolean jj_2_920(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_920(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(919, xla); } + } + + private boolean jj_2_921(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_921(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(920, xla); } + } + + private boolean jj_2_922(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_922(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(921, xla); } + } + + private boolean jj_2_923(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_923(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(922, xla); } + } + + private boolean jj_2_924(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_924(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(923, xla); } + } + + private boolean jj_2_925(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_925(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(924, xla); } + } + + private boolean jj_2_926(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_926(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(925, xla); } + } + + private boolean jj_2_927(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_927(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(926, xla); } + } + + private boolean jj_2_928(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_928(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(927, xla); } + } + + private boolean jj_2_929(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_929(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(928, xla); } + } + + private boolean jj_2_930(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_930(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(929, xla); } + } + + private boolean jj_2_931(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_931(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(930, xla); } + } + + private boolean jj_2_932(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_932(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(931, xla); } + } + + private boolean jj_2_933(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_933(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(932, xla); } + } + + private boolean jj_2_934(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_934(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(933, xla); } + } + + private boolean jj_2_935(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_935(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(934, xla); } + } + + private boolean jj_2_936(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_936(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(935, xla); } + } + + private boolean jj_2_937(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_937(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(936, xla); } + } + + private boolean jj_2_938(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_938(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(937, xla); } + } + + private boolean jj_2_939(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_939(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(938, xla); } + } + + private boolean jj_2_940(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_940(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(939, xla); } + } + + private boolean jj_2_941(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_941(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(940, xla); } + } + + private boolean jj_2_942(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_942(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(941, xla); } + } + + private boolean jj_2_943(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_943(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(942, xla); } + } + + private boolean jj_2_944(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_944(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(943, xla); } + } + + private boolean jj_2_945(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_945(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(944, xla); } + } + + private boolean jj_2_946(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_946(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(945, xla); } + } + + private boolean jj_2_947(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_947(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(946, xla); } + } + + private boolean jj_2_948(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_948(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(947, xla); } + } + + private boolean jj_2_949(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_949(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(948, xla); } + } + + private boolean jj_2_950(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_950(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(949, xla); } + } + + private boolean jj_2_951(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_951(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(950, xla); } + } + + private boolean jj_2_952(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_952(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(951, xla); } + } + + private boolean jj_2_953(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_953(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(952, xla); } + } + + private boolean jj_2_954(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_954(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(953, xla); } + } + + private boolean jj_2_955(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_955(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(954, xla); } + } + + private boolean jj_2_956(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_956(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(955, xla); } + } + + private boolean jj_2_957(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_957(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(956, xla); } + } + + private boolean jj_2_958(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_958(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(957, xla); } + } + + private boolean jj_2_959(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_959(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(958, xla); } + } + + private boolean jj_2_960(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_960(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(959, xla); } + } + + private boolean jj_2_961(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_961(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(960, xla); } + } + + private boolean jj_2_962(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_962(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(961, xla); } + } + + private boolean jj_2_963(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_963(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(962, xla); } + } + + private boolean jj_2_964(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_964(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(963, xla); } + } + + private boolean jj_2_965(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_965(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(964, xla); } + } + + private boolean jj_2_966(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_966(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(965, xla); } + } + + private boolean jj_2_967(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_967(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(966, xla); } + } + + private boolean jj_2_968(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_968(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(967, xla); } + } + + private boolean jj_2_969(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_969(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(968, xla); } + } + + private boolean jj_2_970(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_970(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(969, xla); } + } + + private boolean jj_2_971(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_971(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(970, xla); } + } + + private boolean jj_2_972(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_972(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(971, xla); } + } + + private boolean jj_2_973(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_973(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(972, xla); } + } + + private boolean jj_2_974(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_974(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(973, xla); } + } + + private boolean jj_2_975(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_975(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(974, xla); } + } + + private boolean jj_2_976(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_976(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(975, xla); } + } + + private boolean jj_2_977(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_977(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(976, xla); } + } + + private boolean jj_2_978(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_978(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(977, xla); } + } + + private boolean jj_2_979(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_979(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(978, xla); } + } + + private boolean jj_2_980(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_980(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(979, xla); } + } + + private boolean jj_2_981(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_981(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(980, xla); } + } + + private boolean jj_2_982(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_982(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(981, xla); } + } + + private boolean jj_2_983(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_983(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(982, xla); } + } + + private boolean jj_2_984(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_984(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(983, xla); } + } + + private boolean jj_2_985(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_985(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(984, xla); } + } + + private boolean jj_2_986(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_986(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(985, xla); } + } + + private boolean jj_2_987(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_987(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(986, xla); } + } + + private boolean jj_2_988(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_988(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(987, xla); } + } + + private boolean jj_2_989(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_989(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(988, xla); } + } + + private boolean jj_2_990(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_990(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(989, xla); } + } + + private boolean jj_2_991(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_991(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(990, xla); } + } + + private boolean jj_2_992(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_992(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(991, xla); } + } + + private boolean jj_2_993(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_993(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(992, xla); } + } + + private boolean jj_2_994(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_994(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(993, xla); } + } + + private boolean jj_2_995(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_995(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(994, xla); } + } + + private boolean jj_2_996(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_996(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(995, xla); } + } + + private boolean jj_2_997(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_997(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(996, xla); } + } + + private boolean jj_2_998(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_998(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(997, xla); } + } + + private boolean jj_2_999(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_999(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(998, xla); } + } + + private boolean jj_2_1000(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1000(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(999, xla); } + } + + private boolean jj_2_1001(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1001(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1000, xla); } + } + + private boolean jj_2_1002(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1002(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1001, xla); } + } + + private boolean jj_2_1003(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1003(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1002, xla); } + } + + private boolean jj_2_1004(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1004(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1003, xla); } + } + + private boolean jj_2_1005(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1005(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1004, xla); } + } + + private boolean jj_2_1006(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1006(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1005, xla); } + } + + private boolean jj_2_1007(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1007(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1006, xla); } + } + + private boolean jj_2_1008(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1008(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1007, xla); } + } + + private boolean jj_2_1009(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1009(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1008, xla); } + } + + private boolean jj_2_1010(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1010(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1009, xla); } + } + + private boolean jj_2_1011(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1011(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1010, xla); } + } + + private boolean jj_2_1012(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1012(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1011, xla); } + } + + private boolean jj_2_1013(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1013(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1012, xla); } + } + + private boolean jj_2_1014(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1014(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1013, xla); } + } + + private boolean jj_2_1015(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1015(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1014, xla); } + } + + private boolean jj_2_1016(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1016(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1015, xla); } + } + + private boolean jj_2_1017(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1017(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1016, xla); } + } + + private boolean jj_2_1018(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1018(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1017, xla); } + } + + private boolean jj_2_1019(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1019(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1018, xla); } + } + + private boolean jj_2_1020(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1020(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1019, xla); } + } + + private boolean jj_2_1021(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1021(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1020, xla); } + } + + private boolean jj_2_1022(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1022(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1021, xla); } + } + + private boolean jj_2_1023(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1023(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1022, xla); } + } + + private boolean jj_2_1024(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1024(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1023, xla); } + } + + private boolean jj_2_1025(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1025(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1024, xla); } + } + + private boolean jj_2_1026(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_1026(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(1025, xla); } + } + + private boolean jj_3_774() { + if (jj_scan_token(COLLATION_NAME)) return true; + return false; + } + + private boolean jj_3_773() { + if (jj_scan_token(COLLATION_CATALOG)) return true; + return false; + } + + private boolean jj_3_772() { + if (jj_scan_token(COLLATION)) return true; + return false; + } + + private boolean jj_3_771() { + if (jj_scan_token(COBOL)) return true; + return false; + } + + private boolean jj_3R_106() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_243()) { jj_scanpos = xsp; break; } + } + if (jj_3R_103()) return true; + return false; + } + + private boolean jj_3_770() { + if (jj_scan_token(CLASS_ORIGIN)) return true; + return false; + } + + private boolean jj_3_769() { + if (jj_scan_token(CHARACTERS)) return true; + return false; + } + + private boolean jj_3_768() { + if (jj_scan_token(CHARACTERISTICS)) return true; + return false; + } + + private boolean jj_3_767() { + if (jj_scan_token(CHARACTER_SET_SCHEMA)) return true; + return false; + } + + private boolean jj_3_766() { + if (jj_scan_token(CHARACTER_SET_NAME)) return true; + return false; + } + + private boolean jj_3_765() { + if (jj_scan_token(CHARACTER_SET_CATALOG)) return true; + return false; + } + + private boolean jj_3_764() { + if (jj_scan_token(CHAIN)) return true; + return false; + } + + private boolean jj_3_763() { + if (jj_scan_token(CENTURY)) return true; + return false; + } + + private boolean jj_3_762() { + if (jj_scan_token(CATALOG_NAME)) return true; + return false; + } + + private boolean jj_3_761() { + if (jj_scan_token(CATALOG)) return true; + return false; + } + + private boolean jj_3_760() { + if (jj_scan_token(CASCADE)) return true; + return false; + } + + private boolean jj_3_759() { + if (jj_scan_token(C)) return true; + return false; + } + + private boolean jj_3_758() { + if (jj_scan_token(BREADTH)) return true; + return false; + } + + private boolean jj_3_757() { + if (jj_scan_token(BERNOULLI)) return true; + return false; + } + + private boolean jj_3_756() { + if (jj_scan_token(BEFORE)) return true; + return false; + } + + private boolean jj_3R_41() { + if (jj_3R_104()) return true; + return false; + } + + private boolean jj_3_755() { + if (jj_scan_token(ATTRIBUTES)) return true; + return false; + } + + private boolean jj_3_754() { + if (jj_scan_token(ATTRIBUTE)) return true; + return false; + } + + private boolean jj_3_753() { + if (jj_scan_token(ASSIGNMENT)) return true; + return false; + } + + private boolean jj_3_752() { + if (jj_scan_token(ASSERTION)) return true; + return false; + } + + private boolean jj_3_751() { + if (jj_scan_token(ASC)) return true; + return false; + } + + private boolean jj_3_750() { + if (jj_scan_token(APPLY)) return true; + return false; + } + + private boolean jj_3_749() { + if (jj_scan_token(ALWAYS)) return true; + return false; + } + + private boolean jj_3_748() { + if (jj_scan_token(AFTER)) return true; + return false; + } + + private boolean jj_3_747() { + if (jj_scan_token(ADMIN)) return true; + return false; + } + + private boolean jj_3_746() { + if (jj_scan_token(ADD)) return true; + return false; + } + + private boolean jj_3_745() { + if (jj_scan_token(ADA)) return true; + return false; + } + + private boolean jj_3_744() { + if (jj_scan_token(ACTION)) return true; + return false; + } + + private boolean jj_3_242() { + if (jj_3R_100()) return true; + return false; + } + + private boolean jj_3_743() { + if (jj_scan_token(ABSOLUTE)) return true; + return false; + } + + private boolean jj_3_742() { + if (jj_scan_token(A)) return true; + return false; + } + + private boolean jj_3R_181() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_241()) { + jj_scanpos = xsp; + if (jj_3_242()) return true; + } + return false; + } + + private boolean jj_3_241() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_176() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_742()) { + jj_scanpos = xsp; + if (jj_3_743()) { + jj_scanpos = xsp; + if (jj_3_744()) { + jj_scanpos = xsp; + if (jj_3_745()) { + jj_scanpos = xsp; + if (jj_3_746()) { + jj_scanpos = xsp; + if (jj_3_747()) { + jj_scanpos = xsp; + if (jj_3_748()) { + jj_scanpos = xsp; + if (jj_3_749()) { + jj_scanpos = xsp; + if (jj_3_750()) { + jj_scanpos = xsp; + if (jj_3_751()) { + jj_scanpos = xsp; + if (jj_3_752()) { + jj_scanpos = xsp; + if (jj_3_753()) { + jj_scanpos = xsp; + if (jj_3_754()) { + jj_scanpos = xsp; + if (jj_3_755()) { + jj_scanpos = xsp; + if (jj_3_756()) { + jj_scanpos = xsp; + if (jj_3_757()) { + jj_scanpos = xsp; + if (jj_3_758()) { + jj_scanpos = xsp; + if (jj_3_759()) { + jj_scanpos = xsp; + if (jj_3_760()) { + jj_scanpos = xsp; + if (jj_3_761()) { + jj_scanpos = xsp; + if (jj_3_762()) { + jj_scanpos = xsp; + if (jj_3_763()) { + jj_scanpos = xsp; + if (jj_3_764()) { + jj_scanpos = xsp; + if (jj_3_765()) { + jj_scanpos = xsp; + if (jj_3_766()) { + jj_scanpos = xsp; + if (jj_3_767()) { + jj_scanpos = xsp; + if (jj_3_768()) { + jj_scanpos = xsp; + if (jj_3_769()) { + jj_scanpos = xsp; + if (jj_3_770()) { + jj_scanpos = xsp; + if (jj_3_771()) { + jj_scanpos = xsp; + if (jj_3_772()) { + jj_scanpos = xsp; + if (jj_3_773()) { + jj_scanpos = xsp; + if (jj_3_774()) { + jj_scanpos = xsp; + if (jj_3_775()) { + jj_scanpos = xsp; + if (jj_3_776()) { + jj_scanpos = xsp; + if (jj_3_777()) { + jj_scanpos = xsp; + if (jj_3_778()) { + jj_scanpos = xsp; + if (jj_3_779()) { + jj_scanpos = xsp; + if (jj_3_780()) { + jj_scanpos = xsp; + if (jj_3_781()) { + jj_scanpos = xsp; + if (jj_3_782()) { + jj_scanpos = xsp; + if (jj_3_783()) { + jj_scanpos = xsp; + if (jj_3_784()) { + jj_scanpos = xsp; + if (jj_3_785()) { + jj_scanpos = xsp; + if (jj_3_786()) { + jj_scanpos = xsp; + if (jj_3_787()) { + jj_scanpos = xsp; + if (jj_3_788()) { + jj_scanpos = xsp; + if (jj_3_789()) { + jj_scanpos = xsp; + if (jj_3_790()) { + jj_scanpos = xsp; + if (jj_3_791()) { + jj_scanpos = xsp; + if (jj_3_792()) { + jj_scanpos = xsp; + if (jj_3_793()) { + jj_scanpos = xsp; + if (jj_3_794()) { + jj_scanpos = xsp; + if (jj_3_795()) { + jj_scanpos = xsp; + if (jj_3_796()) { + jj_scanpos = xsp; + if (jj_3_797()) { + jj_scanpos = xsp; + if (jj_3_798()) { + jj_scanpos = xsp; + if (jj_3_799()) { + jj_scanpos = xsp; + if (jj_3_800()) { + jj_scanpos = xsp; + if (jj_3_801()) { + jj_scanpos = xsp; + if (jj_3_802()) { + jj_scanpos = xsp; + if (jj_3_803()) { + jj_scanpos = xsp; + if (jj_3_804()) { + jj_scanpos = xsp; + if (jj_3_805()) { + jj_scanpos = xsp; + if (jj_3_806()) { + jj_scanpos = xsp; + if (jj_3_807()) { + jj_scanpos = xsp; + if (jj_3_808()) { + jj_scanpos = xsp; + if (jj_3_809()) { + jj_scanpos = xsp; + if (jj_3_810()) { + jj_scanpos = xsp; + if (jj_3_811()) { + jj_scanpos = xsp; + if (jj_3_812()) { + jj_scanpos = xsp; + if (jj_3_813()) { + jj_scanpos = xsp; + if (jj_3_814()) { + jj_scanpos = xsp; + if (jj_3_815()) { + jj_scanpos = xsp; + if (jj_3_816()) { + jj_scanpos = xsp; + if (jj_3_817()) { + jj_scanpos = xsp; + if (jj_3_818()) { + jj_scanpos = xsp; + if (jj_3_819()) { + jj_scanpos = xsp; + if (jj_3_820()) { + jj_scanpos = xsp; + if (jj_3_821()) { + jj_scanpos = xsp; + if (jj_3_822()) { + jj_scanpos = xsp; + if (jj_3_823()) { + jj_scanpos = xsp; + if (jj_3_824()) { + jj_scanpos = xsp; + if (jj_3_825()) { + jj_scanpos = xsp; + if (jj_3_826()) { + jj_scanpos = xsp; + if (jj_3_827()) { + jj_scanpos = xsp; + if (jj_3_828()) { + jj_scanpos = xsp; + if (jj_3_829()) { + jj_scanpos = xsp; + if (jj_3_830()) { + jj_scanpos = xsp; + if (jj_3_831()) { + jj_scanpos = xsp; + if (jj_3_832()) { + jj_scanpos = xsp; + if (jj_3_833()) { + jj_scanpos = xsp; + if (jj_3_834()) { + jj_scanpos = xsp; + if (jj_3_835()) { + jj_scanpos = xsp; + if (jj_3_836()) { + jj_scanpos = xsp; + if (jj_3_837()) { + jj_scanpos = xsp; + if (jj_3_838()) { + jj_scanpos = xsp; + if (jj_3_839()) { + jj_scanpos = xsp; + if (jj_3_840()) { + jj_scanpos = xsp; + if (jj_3_841()) { + jj_scanpos = xsp; + if (jj_3_842()) { + jj_scanpos = xsp; + if (jj_3_843()) { + jj_scanpos = xsp; + if (jj_3_844()) { + jj_scanpos = xsp; + if (jj_3_845()) { + jj_scanpos = xsp; + if (jj_3_846()) { + jj_scanpos = xsp; + if (jj_3_847()) { + jj_scanpos = xsp; + if (jj_3_848()) { + jj_scanpos = xsp; + if (jj_3_849()) { + jj_scanpos = xsp; + if (jj_3_850()) { + jj_scanpos = xsp; + if (jj_3_851()) { + jj_scanpos = xsp; + if (jj_3_852()) { + jj_scanpos = xsp; + if (jj_3_853()) { + jj_scanpos = xsp; + if (jj_3_854()) { + jj_scanpos = xsp; + if (jj_3_855()) { + jj_scanpos = xsp; + if (jj_3_856()) { + jj_scanpos = xsp; + if (jj_3_857()) { + jj_scanpos = xsp; + if (jj_3_858()) { + jj_scanpos = xsp; + if (jj_3_859()) { + jj_scanpos = xsp; + if (jj_3_860()) { + jj_scanpos = xsp; + if (jj_3_861()) { + jj_scanpos = xsp; + if (jj_3_862()) { + jj_scanpos = xsp; + if (jj_3_863()) { + jj_scanpos = xsp; + if (jj_3_864()) { + jj_scanpos = xsp; + if (jj_3_865()) { + jj_scanpos = xsp; + if (jj_3_866()) { + jj_scanpos = xsp; + if (jj_3_867()) { + jj_scanpos = xsp; + if (jj_3_868()) { + jj_scanpos = xsp; + if (jj_3_869()) { + jj_scanpos = xsp; + if (jj_3_870()) { + jj_scanpos = xsp; + if (jj_3_871()) { + jj_scanpos = xsp; + if (jj_3_872()) { + jj_scanpos = xsp; + if (jj_3_873()) { + jj_scanpos = xsp; + if (jj_3_874()) { + jj_scanpos = xsp; + if (jj_3_875()) { + jj_scanpos = xsp; + if (jj_3_876()) { + jj_scanpos = xsp; + if (jj_3_877()) { + jj_scanpos = xsp; + if (jj_3_878()) { + jj_scanpos = xsp; + if (jj_3_879()) { + jj_scanpos = xsp; + if (jj_3_880()) { + jj_scanpos = xsp; + if (jj_3_881()) { + jj_scanpos = xsp; + if (jj_3_882()) { + jj_scanpos = xsp; + if (jj_3_883()) { + jj_scanpos = xsp; + if (jj_3_884()) { + jj_scanpos = xsp; + if (jj_3_885()) { + jj_scanpos = xsp; + if (jj_3_886()) { + jj_scanpos = xsp; + if (jj_3_887()) { + jj_scanpos = xsp; + if (jj_3_888()) { + jj_scanpos = xsp; + if (jj_3_889()) { + jj_scanpos = xsp; + if (jj_3_890()) { + jj_scanpos = xsp; + if (jj_3_891()) { + jj_scanpos = xsp; + if (jj_3_892()) { + jj_scanpos = xsp; + if (jj_3_893()) { + jj_scanpos = xsp; + if (jj_3_894()) { + jj_scanpos = xsp; + if (jj_3_895()) { + jj_scanpos = xsp; + if (jj_3_896()) { + jj_scanpos = xsp; + if (jj_3_897()) { + jj_scanpos = xsp; + if (jj_3_898()) { + jj_scanpos = xsp; + if (jj_3_899()) { + jj_scanpos = xsp; + if (jj_3_900()) { + jj_scanpos = xsp; + if (jj_3_901()) { + jj_scanpos = xsp; + if (jj_3_902()) { + jj_scanpos = xsp; + if (jj_3_903()) { + jj_scanpos = xsp; + if (jj_3_904()) { + jj_scanpos = xsp; + if (jj_3_905()) { + jj_scanpos = xsp; + if (jj_3_906()) { + jj_scanpos = xsp; + if (jj_3_907()) { + jj_scanpos = xsp; + if (jj_3_908()) { + jj_scanpos = xsp; + if (jj_3_909()) { + jj_scanpos = xsp; + if (jj_3_910()) { + jj_scanpos = xsp; + if (jj_3_911()) { + jj_scanpos = xsp; + if (jj_3_912()) { + jj_scanpos = xsp; + if (jj_3_913()) { + jj_scanpos = xsp; + if (jj_3_914()) { + jj_scanpos = xsp; + if (jj_3_915()) { + jj_scanpos = xsp; + if (jj_3_916()) { + jj_scanpos = xsp; + if (jj_3_917()) { + jj_scanpos = xsp; + if (jj_3_918()) { + jj_scanpos = xsp; + if (jj_3_919()) { + jj_scanpos = xsp; + if (jj_3_920()) { + jj_scanpos = xsp; + if (jj_3_921()) { + jj_scanpos = xsp; + if (jj_3_922()) { + jj_scanpos = xsp; + if (jj_3_923()) { + jj_scanpos = xsp; + if (jj_3_924()) { + jj_scanpos = xsp; + if (jj_3_925()) { + jj_scanpos = xsp; + if (jj_3_926()) { + jj_scanpos = xsp; + if (jj_3_927()) { + jj_scanpos = xsp; + if (jj_3_928()) { + jj_scanpos = xsp; + if (jj_3_929()) { + jj_scanpos = xsp; + if (jj_3_930()) { + jj_scanpos = xsp; + if (jj_3_931()) { + jj_scanpos = xsp; + if (jj_3_932()) { + jj_scanpos = xsp; + if (jj_3_933()) { + jj_scanpos = xsp; + if (jj_3_934()) { + jj_scanpos = xsp; + if (jj_3_935()) { + jj_scanpos = xsp; + if (jj_3_936()) { + jj_scanpos = xsp; + if (jj_3_937()) { + jj_scanpos = xsp; + if (jj_3_938()) { + jj_scanpos = xsp; + if (jj_3_939()) { + jj_scanpos = xsp; + if (jj_3_940()) { + jj_scanpos = xsp; + if (jj_3_941()) { + jj_scanpos = xsp; + if (jj_3_942()) { + jj_scanpos = xsp; + if (jj_3_943()) { + jj_scanpos = xsp; + if (jj_3_944()) { + jj_scanpos = xsp; + if (jj_3_945()) { + jj_scanpos = xsp; + if (jj_3_946()) { + jj_scanpos = xsp; + if (jj_3_947()) { + jj_scanpos = xsp; + if (jj_3_948()) { + jj_scanpos = xsp; + if (jj_3_949()) { + jj_scanpos = xsp; + if (jj_3_950()) { + jj_scanpos = xsp; + if (jj_3_951()) { + jj_scanpos = xsp; + if (jj_3_952()) { + jj_scanpos = xsp; + if (jj_3_953()) { + jj_scanpos = xsp; + if (jj_3_954()) { + jj_scanpos = xsp; + if (jj_3_955()) { + jj_scanpos = xsp; + if (jj_3_956()) { + jj_scanpos = xsp; + if (jj_3_957()) { + jj_scanpos = xsp; + if (jj_3_958()) { + jj_scanpos = xsp; + if (jj_3_959()) { + jj_scanpos = xsp; + if (jj_3_960()) { + jj_scanpos = xsp; + if (jj_3_961()) { + jj_scanpos = xsp; + if (jj_3_962()) { + jj_scanpos = xsp; + if (jj_3_963()) { + jj_scanpos = xsp; + if (jj_3_964()) { + jj_scanpos = xsp; + if (jj_3_965()) { + jj_scanpos = xsp; + if (jj_3_966()) { + jj_scanpos = xsp; + if (jj_3_967()) { + jj_scanpos = xsp; + if (jj_3_968()) { + jj_scanpos = xsp; + if (jj_3_969()) { + jj_scanpos = xsp; + if (jj_3_970()) { + jj_scanpos = xsp; + if (jj_3_971()) { + jj_scanpos = xsp; + if (jj_3_972()) { + jj_scanpos = xsp; + if (jj_3_973()) { + jj_scanpos = xsp; + if (jj_3_974()) { + jj_scanpos = xsp; + if (jj_3_975()) { + jj_scanpos = xsp; + if (jj_3_976()) { + jj_scanpos = xsp; + if (jj_3_977()) { + jj_scanpos = xsp; + if (jj_3_978()) { + jj_scanpos = xsp; + if (jj_3_979()) { + jj_scanpos = xsp; + if (jj_3_980()) { + jj_scanpos = xsp; + if (jj_3_981()) { + jj_scanpos = xsp; + if (jj_3_982()) { + jj_scanpos = xsp; + if (jj_3_983()) { + jj_scanpos = xsp; + if (jj_3_984()) { + jj_scanpos = xsp; + if (jj_3_985()) { + jj_scanpos = xsp; + if (jj_3_986()) { + jj_scanpos = xsp; + if (jj_3_987()) { + jj_scanpos = xsp; + if (jj_3_988()) { + jj_scanpos = xsp; + if (jj_3_989()) { + jj_scanpos = xsp; + if (jj_3_990()) { + jj_scanpos = xsp; + if (jj_3_991()) { + jj_scanpos = xsp; + if (jj_3_992()) { + jj_scanpos = xsp; + if (jj_3_993()) { + jj_scanpos = xsp; + if (jj_3_994()) { + jj_scanpos = xsp; + if (jj_3_995()) { + jj_scanpos = xsp; + if (jj_3_996()) { + jj_scanpos = xsp; + if (jj_3_997()) { + jj_scanpos = xsp; + if (jj_3_998()) { + jj_scanpos = xsp; + if (jj_3_999()) { + jj_scanpos = xsp; + if (jj_3_1000()) { + jj_scanpos = xsp; + if (jj_3_1001()) { + jj_scanpos = xsp; + if (jj_3_1002()) { + jj_scanpos = xsp; + if (jj_3_1003()) { + jj_scanpos = xsp; + if (jj_3_1004()) { + jj_scanpos = xsp; + if (jj_3_1005()) { + jj_scanpos = xsp; + if (jj_3_1006()) { + jj_scanpos = xsp; + if (jj_3_1007()) { + jj_scanpos = xsp; + if (jj_3_1008()) { + jj_scanpos = xsp; + if (jj_3_1009()) { + jj_scanpos = xsp; + if (jj_3_1010()) { + jj_scanpos = xsp; + if (jj_3_1011()) { + jj_scanpos = xsp; + if (jj_3_1012()) { + jj_scanpos = xsp; + if (jj_3_1013()) { + jj_scanpos = xsp; + if (jj_3_1014()) { + jj_scanpos = xsp; + if (jj_3_1015()) { + jj_scanpos = xsp; + if (jj_3_1016()) { + jj_scanpos = xsp; + if (jj_3_1017()) { + jj_scanpos = xsp; + if (jj_3_1018()) { + jj_scanpos = xsp; + if (jj_3_1019()) { + jj_scanpos = xsp; + if (jj_3_1020()) { + jj_scanpos = xsp; + if (jj_3_1021()) { + jj_scanpos = xsp; + if (jj_3_1022()) { + jj_scanpos = xsp; + if (jj_3_1023()) { + jj_scanpos = xsp; + if (jj_3_1024()) { + jj_scanpos = xsp; + if (jj_3_1025()) { + jj_scanpos = xsp; + if (jj_3_1026()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_240() { + if (jj_3R_68()) return true; + return false; + } + + private boolean jj_3R_99() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_239() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_99()) return true; + return false; + } + + private boolean jj_3R_97() { + if (jj_scan_token(WITH)) return true; + if (jj_3R_99()) return true; + return false; + } + + private boolean jj_3_238() { + if (jj_3R_98()) return true; + return false; + } + + private boolean jj_3_237() { + if (jj_3R_97()) return true; + return false; + } + + private boolean jj_3R_157() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_237()) jj_scanpos = xsp; + if (jj_3R_181()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3_238()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3R_96() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_236() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_96()) return true; + return false; + } + + private boolean jj_3R_95() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_235() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_95()) return true; + return false; + } + + private boolean jj_3R_89() { + if (jj_3R_95()) return true; + return false; + } + + private boolean jj_3_230() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_94()) return true; + return false; + } + + private boolean jj_3_234() { + if (jj_scan_token(PERMUTE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_233() { + if (jj_scan_token(LBRACE)) return true; + if (jj_scan_token(MINUS)) return true; + return false; + } + + private boolean jj_3_232() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_94()) return true; + return false; + } + + private boolean jj_3_231() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3R_169() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_231()) { + jj_scanpos = xsp; + if (jj_3_232()) { + jj_scanpos = xsp; + if (jj_3_233()) { + jj_scanpos = xsp; + if (jj_3_234()) return true; + } + } + } + return false; + } + + private boolean jj_3_228() { + if (jj_scan_token(HOOK)) return true; + return false; + } + + private boolean jj_3_223() { + if (jj_scan_token(MINUS)) return true; + if (jj_3R_94()) return true; + return false; + } + + private boolean jj_3_219() { + if (jj_3R_93()) return true; + return false; + } + + private boolean jj_3_222() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_93()) return true; + return false; + } + + private boolean jj_3_220() { + if (jj_scan_token(COMMA)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_219()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_221() { + if (jj_3R_93()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_220()) jj_scanpos = xsp; + if (jj_scan_token(RBRACE)) return true; + return false; + } + + private boolean jj_3_227() { + if (jj_scan_token(LBRACE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_221()) { + jj_scanpos = xsp; + if (jj_3_222()) { + jj_scanpos = xsp; + if (jj_3_223()) return true; + } + } + return false; + } + + private boolean jj_3_226() { + if (jj_scan_token(HOOK)) return true; + return false; + } + + private boolean jj_3_225() { + if (jj_scan_token(PLUS)) return true; + return false; + } + + private boolean jj_3_224() { + if (jj_scan_token(STAR)) return true; + return false; + } + + private boolean jj_3_229() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_224()) { + jj_scanpos = xsp; + if (jj_3_225()) { + jj_scanpos = xsp; + if (jj_3_226()) { + jj_scanpos = xsp; + if (jj_3_227()) return true; + } + } + } + xsp = jj_scanpos; + if (jj_3_228()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3R_92() { + if (jj_3R_169()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_229()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_218() { + if (jj_3R_92()) return true; + return false; + } + + private boolean jj_3R_91() { + if (jj_3R_92()) return true; + return false; + } + + private boolean jj_3_217() { + if (jj_scan_token(VERTICAL_BAR)) return true; + if (jj_3R_91()) return true; + return false; + } + + private boolean jj_3R_94() { + if (jj_3R_91()) return true; + return false; + } + + private boolean jj_3R_90() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_216() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_90()) return true; + return false; + } + + private boolean jj_3R_87() { + if (jj_3R_90()) return true; + return false; + } + + private boolean jj_3_215() { + if (jj_scan_token(SUBSET)) return true; + if (jj_3R_89()) return true; + return false; + } + + private boolean jj_3_214() { + if (jj_scan_token(WITHIN)) return true; + if (jj_3R_88()) return true; + return false; + } + + private boolean jj_3_213() { + if (jj_scan_token(DOLLAR)) return true; + return false; + } + + private boolean jj_3_212() { + if (jj_scan_token(CARET)) return true; + return false; + } + + private boolean jj_3_205() { + if (jj_scan_token(LAST)) return true; + return false; + } + + private boolean jj_3_210() { + if (jj_scan_token(PAST)) return true; + if (jj_scan_token(LAST)) return true; + return false; + } + + private boolean jj_3_208() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_205()) jj_scanpos = xsp; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_207() { + if (jj_scan_token(FIRST)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_206() { + if (jj_scan_token(NEXT)) return true; + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3_209() { + if (jj_scan_token(TO)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_206()) { + jj_scanpos = xsp; + if (jj_3_207()) { + jj_scanpos = xsp; + if (jj_3_208()) return true; + } + } + return false; + } + + private boolean jj_3_211() { + if (jj_scan_token(AFTER)) return true; + if (jj_scan_token(MATCH)) return true; + return false; + } + + private boolean jj_3_204() { + if (jj_scan_token(ALL)) return true; + if (jj_scan_token(ROWS)) return true; + return false; + } + + private boolean jj_3_203() { + if (jj_scan_token(ONE)) return true; + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3_202() { + if (jj_scan_token(MEASURES)) return true; + if (jj_3R_87()) return true; + return false; + } + + private boolean jj_3_201() { + if (jj_3R_36()) return true; + return false; + } + + private boolean jj_3_200() { + if (jj_scan_token(PARTITION)) return true; + if (jj_scan_token(BY)) return true; + return false; + } + + private boolean jj_3R_73() { + if (jj_scan_token(MATCH_RECOGNIZE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_198() { + if (jj_scan_token(NULLS)) return true; + if (jj_scan_token(LAST)) return true; + return false; + } + + private boolean jj_3_197() { + if (jj_scan_token(NULLS)) return true; + if (jj_scan_token(FIRST)) return true; + return false; + } + + private boolean jj_3_199() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_197()) { + jj_scanpos = xsp; + if (jj_3_198()) return true; + } + return false; + } + + private boolean jj_3_195() { + if (jj_scan_token(DESC)) return true; + return false; + } + + private boolean jj_3_194() { + if (jj_scan_token(ASC)) return true; + return false; + } + + private boolean jj_3_196() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_194()) { + jj_scanpos = xsp; + if (jj_3_195()) return true; + } + return false; + } + + private boolean jj_3R_86() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_193() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_86()) return true; + return false; + } + + private boolean jj_3R_36() { + if (jj_scan_token(ORDER)) return true; + if (jj_scan_token(BY)) return true; + return false; + } + + private boolean jj_3_189() { + if (jj_scan_token(FOLLOWING)) return true; + return false; + } + + private boolean jj_3_188() { + if (jj_scan_token(PRECEDING)) return true; + return false; + } + + private boolean jj_3_192() { + if (jj_3R_41()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_188()) { + jj_scanpos = xsp; + if (jj_3_189()) return true; + } + return false; + } + + private boolean jj_3_187() { + if (jj_scan_token(FOLLOWING)) return true; + return false; + } + + private boolean jj_3_186() { + if (jj_scan_token(PRECEDING)) return true; + return false; + } + + private boolean jj_3_191() { + if (jj_scan_token(UNBOUNDED)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_186()) { + jj_scanpos = xsp; + if (jj_3_187()) return true; + } + return false; + } + + private boolean jj_3_190() { + if (jj_scan_token(CURRENT)) return true; + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3R_85() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_190()) { + jj_scanpos = xsp; + if (jj_3_191()) { + jj_scanpos = xsp; + if (jj_3_192()) return true; + } + } + return false; + } + + private boolean jj_3_184() { + if (jj_scan_token(DISALLOW)) return true; + if (jj_scan_token(PARTIAL)) return true; + return false; + } + + private boolean jj_3_181() { + if (jj_3R_85()) return true; + return false; + } + + private boolean jj_3_183() { + if (jj_scan_token(ALLOW)) return true; + if (jj_scan_token(PARTIAL)) return true; + return false; + } + + private boolean jj_3_185() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_183()) { + jj_scanpos = xsp; + if (jj_3_184()) return true; + } + return false; + } + + private boolean jj_3_180() { + if (jj_scan_token(BETWEEN)) return true; + if (jj_3R_85()) return true; + return false; + } + + private boolean jj_3_179() { + if (jj_scan_token(RANGE)) return true; + return false; + } + + private boolean jj_3_178() { + if (jj_scan_token(ROWS)) return true; + return false; + } + + private boolean jj_3_182() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_178()) { + jj_scanpos = xsp; + if (jj_3_179()) return true; + } + xsp = jj_scanpos; + if (jj_3_180()) { + jj_scanpos = xsp; + if (jj_3_181()) return true; + } + return false; + } + + private boolean jj_3_177() { + if (jj_3R_36()) return true; + return false; + } + + private boolean jj_3_176() { + if (jj_scan_token(PARTITION)) return true; + if (jj_scan_token(BY)) return true; + return false; + } + + private boolean jj_3R_180() { + return false; + } + + private boolean jj_3_175() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3R_147() { + if (jj_scan_token(LPAREN)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_175()) { + jj_scanpos = xsp; + if (jj_3R_180()) return true; + } + return false; + } + + private boolean jj_3_173() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_174() { + if (jj_scan_token(WINDOW)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_172() { + if (jj_scan_token(HAVING)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_738() { + if (jj_scan_token(UNKNOWN)) return true; + return false; + } + + private boolean jj_3_737() { + if (jj_scan_token(FALSE)) return true; + return false; + } + + private boolean jj_3_736() { + if (jj_scan_token(TRUE)) return true; + return false; + } + + private boolean jj_3_735() { + if (jj_scan_token(NULL)) return true; + return false; + } + + private boolean jj_3_734() { + if (jj_scan_token(UNKNOWN)) return true; + return false; + } + + private boolean jj_3_733() { + if (jj_scan_token(FALSE)) return true; + return false; + } + + private boolean jj_3_741() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_735()) { + jj_scanpos = xsp; + if (jj_3_736()) { + jj_scanpos = xsp; + if (jj_3_737()) { + jj_scanpos = xsp; + if (jj_3_738()) return true; + } + } + } + return false; + } + + private boolean jj_3_732() { + if (jj_scan_token(TRUE)) return true; + return false; + } + + private boolean jj_3_171() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_731() { + if (jj_scan_token(NULL)) return true; + return false; + } + + private boolean jj_3_740() { + if (jj_scan_token(NOT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_731()) { + jj_scanpos = xsp; + if (jj_3_732()) { + jj_scanpos = xsp; + if (jj_3_733()) { + jj_scanpos = xsp; + if (jj_3_734()) return true; + } + } + } + return false; + } + + private boolean jj_3_739() { + if (jj_scan_token(A)) return true; + if (jj_scan_token(SET)) return true; + return false; + } + + private boolean jj_3R_123() { + if (jj_3R_41()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_171()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3R_107() { + if (jj_scan_token(IS)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_739()) { + jj_scanpos = xsp; + if (jj_3_740()) { + jj_scanpos = xsp; + if (jj_3_741()) return true; + } + } + return false; + } + + private boolean jj_3_730() { + if (jj_scan_token(EXISTS)) return true; + return false; + } + + private boolean jj_3_729() { + if (jj_scan_token(NOT)) return true; + return false; + } + + private boolean jj_3_728() { + if (jj_scan_token(MINUS)) return true; + return false; + } + + private boolean jj_3_727() { + if (jj_scan_token(PLUS)) return true; + return false; + } + + private boolean jj_3R_101() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_727()) { + jj_scanpos = xsp; + if (jj_3_728()) { + jj_scanpos = xsp; + if (jj_3_729()) { + jj_scanpos = xsp; + if (jj_3_730()) return true; + } + } + } + return false; + } + + private boolean jj_3_170() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_169() { + if (jj_scan_token(LPAREN)) return true; + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_726() { + if (jj_3R_154()) return true; + return false; + } + + private boolean jj_3_725() { + if (jj_scan_token(IMMEDIATELY)) return true; + if (jj_scan_token(SUCCEEDS)) return true; + return false; + } + + private boolean jj_3_168() { + if (jj_scan_token(CUBE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_724() { + if (jj_scan_token(IMMEDIATELY)) return true; + if (jj_scan_token(PRECEDES)) return true; + return false; + } + + private boolean jj_3_723() { + if (jj_scan_token(SUCCEEDS)) return true; + return false; + } + + private boolean jj_3_722() { + if (jj_scan_token(PRECEDES)) return true; + return false; + } + + private boolean jj_3_721() { + if (jj_scan_token(EQUALS)) return true; + return false; + } + + private boolean jj_3_720() { + if (jj_scan_token(OVERLAPS)) return true; + return false; + } + + private boolean jj_3_719() { + if (jj_scan_token(CONTAINS)) return true; + return false; + } + + private boolean jj_3_167() { + if (jj_scan_token(ROLLUP)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_718() { + if (jj_scan_token(SUBMULTISET)) return true; + if (jj_scan_token(OF)) return true; + return false; + } + + private boolean jj_3_717() { + if (jj_scan_token(MEMBER)) return true; + if (jj_scan_token(OF)) return true; + return false; + } + + private boolean jj_3_716() { + if (jj_scan_token(IS)) return true; + if (jj_scan_token(NOT)) return true; + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_715() { + if (jj_scan_token(IS)) return true; + if (jj_scan_token(DISTINCT)) return true; + if (jj_scan_token(FROM)) return true; + return false; + } + + private boolean jj_3_166() { + if (jj_scan_token(GROUPING)) return true; + if (jj_scan_token(SETS)) return true; + return false; + } + + private boolean jj_3R_84() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_166()) { + jj_scanpos = xsp; + if (jj_3_167()) { + jj_scanpos = xsp; + if (jj_3_168()) { + jj_scanpos = xsp; + if (jj_3_169()) { + jj_scanpos = xsp; + if (jj_3_170()) return true; + } + } + } + } + return false; + } + + private boolean jj_3_714() { + if (jj_scan_token(OR)) return true; + return false; + } + + private boolean jj_3_713() { + if (jj_scan_token(AND)) return true; + return false; + } + + private boolean jj_3_712() { + if (jj_scan_token(CONCAT)) return true; + return false; + } + + private boolean jj_3_711() { + if (jj_scan_token(PERCENT_REMAINDER)) return true; + return false; + } + + private boolean jj_3_710() { + if (jj_scan_token(SLASH)) return true; + return false; + } + + private boolean jj_3_165() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_84()) return true; + return false; + } + + private boolean jj_3_709() { + if (jj_scan_token(STAR)) return true; + return false; + } + + private boolean jj_3_708() { + if (jj_scan_token(MINUS)) return true; + return false; + } + + private boolean jj_3_707() { + if (jj_scan_token(PLUS)) return true; + return false; + } + + private boolean jj_3_706() { + if (jj_scan_token(NE2)) return true; + return false; + } + + private boolean jj_3_705() { + if (jj_scan_token(NE)) return true; + return false; + } + + private boolean jj_3_704() { + if (jj_scan_token(GE)) return true; + return false; + } + + private boolean jj_3_703() { + if (jj_scan_token(LE)) return true; + return false; + } + + private boolean jj_3_702() { + if (jj_scan_token(LT)) return true; + return false; + } + + private boolean jj_3_701() { + if (jj_scan_token(GT)) return true; + return false; + } + + private boolean jj_3_700() { + if (jj_scan_token(EQ)) return true; + return false; + } + + private boolean jj_3R_105() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_700()) { + jj_scanpos = xsp; + if (jj_3_701()) { + jj_scanpos = xsp; + if (jj_3_702()) { + jj_scanpos = xsp; + if (jj_3_703()) { + jj_scanpos = xsp; + if (jj_3_704()) { + jj_scanpos = xsp; + if (jj_3_705()) { + jj_scanpos = xsp; + if (jj_3_706()) { + jj_scanpos = xsp; + if (jj_3_707()) { + jj_scanpos = xsp; + if (jj_3_708()) { + jj_scanpos = xsp; + if (jj_3_709()) { + jj_scanpos = xsp; + if (jj_3_710()) { + jj_scanpos = xsp; + if (jj_3_711()) { + jj_scanpos = xsp; + if (jj_3_712()) { + jj_scanpos = xsp; + if (jj_3_713()) { + jj_scanpos = xsp; + if (jj_3_714()) { + jj_scanpos = xsp; + if (jj_3_715()) { + jj_scanpos = xsp; + if (jj_3_716()) { + jj_scanpos = xsp; + if (jj_3_717()) { + jj_scanpos = xsp; + if (jj_3_718()) { + jj_scanpos = xsp; + if (jj_3_719()) { + jj_scanpos = xsp; + if (jj_3_720()) { + jj_scanpos = xsp; + if (jj_3_721()) { + jj_scanpos = xsp; + if (jj_3_722()) { + jj_scanpos = xsp; + if (jj_3_723()) { + jj_scanpos = xsp; + if (jj_3_724()) { + jj_scanpos = xsp; + if (jj_3_725()) { + jj_scanpos = xsp; + if (jj_3_726()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_695() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_164() { + if (jj_scan_token(GROUP)) return true; + if (jj_scan_token(BY)) return true; + return false; + } + + private boolean jj_3_694() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_696() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_694()) { + jj_scanpos = xsp; + if (jj_3_695()) return true; + } + return false; + } + + private boolean jj_3_692() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_691() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_693() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_691()) { + jj_scanpos = xsp; + if (jj_3_692()) return true; + } + return false; + } + + private boolean jj_3_699() { + if (jj_scan_token(EXCEPT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_696()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_689() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_688() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_690() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_688()) { + jj_scanpos = xsp; + if (jj_3_689()) return true; + } + return false; + } + + private boolean jj_3_698() { + if (jj_scan_token(INTERSECT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_693()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_697() { + if (jj_scan_token(UNION)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_690()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_163() { + if (jj_scan_token(WHERE)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_154() { + if (jj_scan_token(MULTISET)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_697()) { + jj_scanpos = xsp; + if (jj_3_698()) { + jj_scanpos = xsp; + if (jj_3_699()) return true; + } + } + return false; + } + + private boolean jj_3R_153() { + return false; + } + + private boolean jj_3_684() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_683() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_682() { + if (jj_scan_token(SET_MINUS)) return true; + return false; + } + + private boolean jj_3_681() { + if (jj_scan_token(EXCEPT)) return true; + return false; + } + + private boolean jj_3_162() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_83() { + return false; + } + + private boolean jj_3R_152() { + return false; + } + + private boolean jj_3_680() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_687() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_681()) { + jj_scanpos = xsp; + if (jj_3_682()) return true; + } + xsp = jj_scanpos; + if (jj_3_683()) { + jj_scanpos = xsp; + if (jj_3_684()) { + jj_scanpos = xsp; + if (jj_3R_153()) return true; + } + } + return false; + } + + private boolean jj_3_159() { + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3_679() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3R_151() { + return false; + } + + private boolean jj_3_161() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_159()) { + jj_scanpos = xsp; + if (jj_3R_83()) return true; + } + if (jj_3R_82()) return true; + return false; + } + + private boolean jj_3_678() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_686() { + if (jj_scan_token(INTERSECT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_679()) { + jj_scanpos = xsp; + if (jj_3_680()) { + jj_scanpos = xsp; + if (jj_3R_152()) return true; + } + } + return false; + } + + private boolean jj_3_677() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_160() { + if (jj_scan_token(LPAREN)) return true; + if (jj_scan_token(ROW)) return true; + if (jj_3R_82()) return true; + return false; + } + + private boolean jj_3_685() { + if (jj_scan_token(UNION)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_677()) { + jj_scanpos = xsp; + if (jj_3_678()) { + jj_scanpos = xsp; + if (jj_3R_151()) return true; + } + } + return false; + } + + private boolean jj_3R_98() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_685()) { + jj_scanpos = xsp; + if (jj_3_686()) { + jj_scanpos = xsp; + if (jj_3_687()) return true; + } + } + return false; + } + + private boolean jj_3R_81() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_160()) { + jj_scanpos = xsp; + if (jj_3_161()) { + jj_scanpos = xsp; + if (jj_3_162()) return true; + } + } + return false; + } + + private boolean jj_3_673() { + if (jj_3R_76()) return true; + return false; + } + + private boolean jj_3_672() { + if (jj_scan_token(LPAREN)) return true; + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_158() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_81()) return true; + return false; + } + + private boolean jj_3_671() { + if (jj_scan_token(LPAREN)) return true; + if (jj_scan_token(STAR)) return true; + return false; + } + + private boolean jj_3_670() { + if (jj_3R_78()) return true; + return false; + } + + private boolean jj_3_669() { + if (jj_3R_150()) return true; + return false; + } + + private boolean jj_3R_156() { + if (jj_3R_81()) return true; + return false; + } + + private boolean jj_3_668() { + if (jj_3R_149()) return true; + return false; + } + + private boolean jj_3_667() { + if (jj_scan_token(TRUNCATE)) return true; + return false; + } + + private boolean jj_3_666() { + if (jj_scan_token(INSERT)) return true; + return false; + } + + private boolean jj_3_676() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_666()) { + jj_scanpos = xsp; + if (jj_3_667()) { + jj_scanpos = xsp; + if (jj_3_668()) { + jj_scanpos = xsp; + if (jj_3_669()) { + jj_scanpos = xsp; + if (jj_3_670()) return true; + } + } + } + } + xsp = jj_scanpos; + if (jj_3_671()) { + jj_scanpos = xsp; + if (jj_3_672()) { + jj_scanpos = xsp; + if (jj_3_673()) return true; + } + } + return false; + } + + private boolean jj_3R_39() { + if (jj_scan_token(VALUES)) return true; + if (jj_3R_156()) return true; + return false; + } + + private boolean jj_3_675() { + if (jj_scan_token(CONVERT)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_674() { + if (jj_3R_140()) return true; + return false; + } + + private boolean jj_3R_40() { + if (jj_scan_token(TABLE)) return true; + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3R_172() { + if (jj_3R_139()) return true; + return false; + } + + private boolean jj_3R_113() { + if (jj_scan_token(LBRACE_FN)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_172()) { + jj_scanpos = xsp; + if (jj_3_674()) { + jj_scanpos = xsp; + if (jj_3_675()) { + jj_scanpos = xsp; + if (jj_3_676()) return true; + } + } + } + return false; + } + + private boolean jj_3_665() { + if (jj_scan_token(USER)) return true; + return false; + } + + private boolean jj_3_664() { + if (jj_scan_token(SYSTEM_USER)) return true; + return false; + } + + private boolean jj_3_663() { + if (jj_scan_token(SESSION_USER)) return true; + return false; + } + + private boolean jj_3_662() { + if (jj_scan_token(LOCALTIMESTAMP)) return true; + return false; + } + + private boolean jj_3_157() { + if (jj_scan_token(SPECIFIC)) return true; + return false; + } + + private boolean jj_3_661() { + if (jj_scan_token(LOCALTIME)) return true; + return false; + } + + private boolean jj_3_660() { + if (jj_scan_token(CURRENT_USER)) return true; + return false; + } + + private boolean jj_3_659() { + if (jj_scan_token(CURRENT_TIMESTAMP)) return true; + return false; + } + + private boolean jj_3_658() { + if (jj_scan_token(CURRENT_TIME)) return true; + return false; + } + + private boolean jj_3_657() { + if (jj_scan_token(CURRENT_SCHEMA)) return true; + return false; + } + + private boolean jj_3_656() { + if (jj_scan_token(CURRENT_ROLE)) return true; + return false; + } + + private boolean jj_3_655() { + if (jj_scan_token(CURRENT_PATH)) return true; + return false; + } + + private boolean jj_3_654() { + if (jj_scan_token(CURRENT_DEFAULT_TRANSFORM_GROUP)) return true; + return false; + } + + private boolean jj_3_653() { + if (jj_scan_token(CURRENT_DATE)) return true; + return false; + } + + private boolean jj_3_652() { + if (jj_scan_token(CURRENT_CATALOG)) return true; + return false; + } + + private boolean jj_3R_119() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_652()) { + jj_scanpos = xsp; + if (jj_3_653()) { + jj_scanpos = xsp; + if (jj_3_654()) { + jj_scanpos = xsp; + if (jj_3_655()) { + jj_scanpos = xsp; + if (jj_3_656()) { + jj_scanpos = xsp; + if (jj_3_657()) { + jj_scanpos = xsp; + if (jj_3_658()) { + jj_scanpos = xsp; + if (jj_3_659()) { + jj_scanpos = xsp; + if (jj_3_660()) { + jj_scanpos = xsp; + if (jj_3_661()) { + jj_scanpos = xsp; + if (jj_3_662()) { + jj_scanpos = xsp; + if (jj_3_663()) { + jj_scanpos = xsp; + if (jj_3_664()) { + jj_scanpos = xsp; + if (jj_3_665()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_155() { + if (jj_scan_token(NOT)) return true; + if (jj_scan_token(NULL)) return true; + return false; + } + + private boolean jj_3_651() { + if (jj_scan_token(YEAR)) return true; + return false; + } + + private boolean jj_3_650() { + if (jj_scan_token(VAR_SAMP)) return true; + return false; + } + + private boolean jj_3_649() { + if (jj_scan_token(VAR_POP)) return true; + return false; + } + + private boolean jj_3_648() { + if (jj_scan_token(USER)) return true; + return false; + } + + private boolean jj_3_647() { + if (jj_scan_token(TRUNCATE)) return true; + return false; + } + + private boolean jj_3_646() { + if (jj_scan_token(UPPER)) return true; + return false; + } + + private boolean jj_3_156() { + if (jj_3R_80()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_155()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_645() { + if (jj_scan_token(SUM)) return true; + return false; + } + + private boolean jj_3_644() { + if (jj_scan_token(STDDEV_SAMP)) return true; + return false; + } + + private boolean jj_3_643() { + if (jj_scan_token(STDDEV_POP)) return true; + return false; + } + + private boolean jj_3_642() { + if (jj_scan_token(SQRT)) return true; + return false; + } + + private boolean jj_3_641() { + if (jj_scan_token(SECOND)) return true; + return false; + } + + private boolean jj_3_640() { + if (jj_scan_token(ROW_NUMBER)) return true; + return false; + } + + private boolean jj_3R_133() { + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_639() { + if (jj_scan_token(REGR_SYY)) return true; + return false; + } + + private boolean jj_3_638() { + if (jj_scan_token(REGR_SXX)) return true; + return false; + } + + private boolean jj_3_637() { + if (jj_scan_token(RANK)) return true; + return false; + } + + private boolean jj_3_636() { + if (jj_scan_token(POWER)) return true; + return false; + } + + private boolean jj_3_635() { + if (jj_scan_token(PERCENT_RANK)) return true; + return false; + } + + private boolean jj_3_634() { + if (jj_scan_token(OCTET_LENGTH)) return true; + return false; + } + + private boolean jj_3_633() { + if (jj_scan_token(NULLIF)) return true; + return false; + } + + private boolean jj_3_632() { + if (jj_scan_token(NTILE)) return true; + return false; + } + + private boolean jj_3_631() { + if (jj_scan_token(MONTH)) return true; + return false; + } + + private boolean jj_3_630() { + if (jj_scan_token(MOD)) return true; + return false; + } + + private boolean jj_3_629() { + if (jj_scan_token(MINUTE)) return true; + return false; + } + + private boolean jj_3_628() { + if (jj_scan_token(MIN)) return true; + return false; + } + + private boolean jj_3_627() { + if (jj_scan_token(MAX)) return true; + return false; + } + + private boolean jj_3_626() { + if (jj_scan_token(LOWER)) return true; + return false; + } + + private boolean jj_3_625() { + if (jj_scan_token(LOCALTIMESTAMP)) return true; + return false; + } + + private boolean jj_3_624() { + if (jj_scan_token(LOCALTIME)) return true; + return false; + } + + private boolean jj_3_154() { + if (jj_scan_token(NOT)) return true; + if (jj_scan_token(NULL)) return true; + return false; + } + + private boolean jj_3_623() { + if (jj_scan_token(LN)) return true; + return false; + } + + private boolean jj_3_622() { + if (jj_scan_token(LAST_VALUE)) return true; + return false; + } + + private boolean jj_3_621() { + if (jj_scan_token(LEAD)) return true; + return false; + } + + private boolean jj_3_620() { + if (jj_scan_token(LAG)) return true; + return false; + } + + private boolean jj_3_619() { + if (jj_scan_token(HOUR)) return true; + return false; + } + + private boolean jj_3_618() { + if (jj_scan_token(GROUPING)) return true; + return false; + } + + private boolean jj_3_617() { + if (jj_scan_token(FUSION)) return true; + return false; + } + + private boolean jj_3R_79() { + if (jj_3R_61()) return true; + if (jj_3R_80()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_154()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_616() { + if (jj_scan_token(FLOOR)) return true; + return false; + } + + private boolean jj_3_615() { + if (jj_scan_token(FIRST_VALUE)) return true; + return false; + } + + private boolean jj_3_614() { + if (jj_scan_token(EXP)) return true; + return false; + } + + private boolean jj_3_613() { + if (jj_scan_token(ELEMENT)) return true; + return false; + } + + private boolean jj_3_612() { + if (jj_scan_token(DENSE_RANK)) return true; + return false; + } + + private boolean jj_3_611() { + if (jj_scan_token(CURRENT_TIMESTAMP)) return true; + return false; + } + + private boolean jj_3_610() { + if (jj_scan_token(CURRENT_TIME)) return true; + return false; + } + + private boolean jj_3_609() { + if (jj_scan_token(CURRENT_DATE)) return true; + return false; + } + + private boolean jj_3_608() { + if (jj_scan_token(COUNT)) return true; + return false; + } + + private boolean jj_3_607() { + if (jj_scan_token(CUME_DIST)) return true; + return false; + } + + private boolean jj_3_153() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_79()) return true; + return false; + } + + private boolean jj_3_606() { + if (jj_scan_token(COVAR_SAMP)) return true; + return false; + } + + private boolean jj_3_605() { + if (jj_scan_token(COVAR_POP)) return true; + return false; + } + + private boolean jj_3_604() { + if (jj_scan_token(COLLECT)) return true; + return false; + } + + private boolean jj_3_603() { + if (jj_scan_token(COALESCE)) return true; + return false; + } + + private boolean jj_3_602() { + if (jj_scan_token(CHARACTER_LENGTH)) return true; + return false; + } + + private boolean jj_3_601() { + if (jj_scan_token(CHAR_LENGTH)) return true; + return false; + } + + private boolean jj_3_600() { + if (jj_scan_token(CEILING)) return true; + return false; + } + + private boolean jj_3R_64() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_79()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_153()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_599() { + if (jj_scan_token(CARDINALITY)) return true; + return false; + } + + private boolean jj_3_598() { + if (jj_scan_token(AVG)) return true; + return false; + } + + private boolean jj_3_597() { + if (jj_scan_token(ABS)) return true; + return false; + } + + private boolean jj_3R_149() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_597()) { + jj_scanpos = xsp; + if (jj_3_598()) { + jj_scanpos = xsp; + if (jj_3_599()) { + jj_scanpos = xsp; + if (jj_3_600()) { + jj_scanpos = xsp; + if (jj_3_601()) { + jj_scanpos = xsp; + if (jj_3_602()) { + jj_scanpos = xsp; + if (jj_3_603()) { + jj_scanpos = xsp; + if (jj_3_604()) { + jj_scanpos = xsp; + if (jj_3_605()) { + jj_scanpos = xsp; + if (jj_3_606()) { + jj_scanpos = xsp; + if (jj_3_607()) { + jj_scanpos = xsp; + if (jj_3_608()) { + jj_scanpos = xsp; + if (jj_3_609()) { + jj_scanpos = xsp; + if (jj_3_610()) { + jj_scanpos = xsp; + if (jj_3_611()) { + jj_scanpos = xsp; + if (jj_3_612()) { + jj_scanpos = xsp; + if (jj_3_613()) { + jj_scanpos = xsp; + if (jj_3_614()) { + jj_scanpos = xsp; + if (jj_3_615()) { + jj_scanpos = xsp; + if (jj_3_616()) { + jj_scanpos = xsp; + if (jj_3_617()) { + jj_scanpos = xsp; + if (jj_3_618()) { + jj_scanpos = xsp; + if (jj_3_619()) { + jj_scanpos = xsp; + if (jj_3_620()) { + jj_scanpos = xsp; + if (jj_3_621()) { + jj_scanpos = xsp; + if (jj_3_622()) { + jj_scanpos = xsp; + if (jj_3_623()) { + jj_scanpos = xsp; + if (jj_3_624()) { + jj_scanpos = xsp; + if (jj_3_625()) { + jj_scanpos = xsp; + if (jj_3_626()) { + jj_scanpos = xsp; + if (jj_3_627()) { + jj_scanpos = xsp; + if (jj_3_628()) { + jj_scanpos = xsp; + if (jj_3_629()) { + jj_scanpos = xsp; + if (jj_3_630()) { + jj_scanpos = xsp; + if (jj_3_631()) { + jj_scanpos = xsp; + if (jj_3_632()) { + jj_scanpos = xsp; + if (jj_3_633()) { + jj_scanpos = xsp; + if (jj_3_634()) { + jj_scanpos = xsp; + if (jj_3_635()) { + jj_scanpos = xsp; + if (jj_3_636()) { + jj_scanpos = xsp; + if (jj_3_637()) { + jj_scanpos = xsp; + if (jj_3_638()) { + jj_scanpos = xsp; + if (jj_3_639()) { + jj_scanpos = xsp; + if (jj_3_640()) { + jj_scanpos = xsp; + if (jj_3_641()) { + jj_scanpos = xsp; + if (jj_3_642()) { + jj_scanpos = xsp; + if (jj_3_643()) { + jj_scanpos = xsp; + if (jj_3_644()) { + jj_scanpos = xsp; + if (jj_3_645()) { + jj_scanpos = xsp; + if (jj_3_646()) { + jj_scanpos = xsp; + if (jj_3_647()) { + jj_scanpos = xsp; + if (jj_3_648()) { + jj_scanpos = xsp; + if (jj_3_649()) { + jj_scanpos = xsp; + if (jj_3_650()) { + jj_scanpos = xsp; + if (jj_3_651()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_596() { + if (jj_3R_149()) return true; + return false; + } + + private boolean jj_3_595() { + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3R_118() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_595()) { + jj_scanpos = xsp; + if (jj_3_596()) return true; + } + return false; + } + + private boolean jj_3_149() { + if (jj_scan_token(REPEATABLE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_150() { + if (jj_scan_token(SUBSTRING)) return true; + return false; + } + + private boolean jj_3_148() { + if (jj_scan_token(SYSTEM)) return true; + return false; + } + + private boolean jj_3_147() { + if (jj_scan_token(BERNOULLI)) return true; + return false; + } + + private boolean jj_3_593() { + if (jj_3R_147()) return true; + return false; + } + + private boolean jj_3_151() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_147()) { + jj_scanpos = xsp; + if (jj_3_148()) return true; + } + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_592() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_594() { + if (jj_scan_token(OVER)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_592()) { + jj_scanpos = xsp; + if (jj_3_593()) return true; + } + return false; + } + + private boolean jj_3_150() { + if (jj_scan_token(SUBSTITUTE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_152() { + if (jj_scan_token(TABLESAMPLE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_150()) { + jj_scanpos = xsp; + if (jj_3_151()) return true; + } + return false; + } + + private boolean jj_3_591() { + if (jj_scan_token(TO)) return true; + if (jj_3R_148()) return true; + return false; + } + + private boolean jj_3R_177() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_145() { + if (jj_3R_68()) return true; + return false; + } + + private boolean jj_3_144() { + if (jj_scan_token(AS)) return true; + return false; + } + + private boolean jj_3_146() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_144()) jj_scanpos = xsp; + if (jj_3R_78()) return true; + xsp = jj_scanpos; + if (jj_3_145()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_143() { + if (jj_3R_77()) return true; + return false; + } + + private boolean jj_3_589() { + if (jj_3R_147()) return true; + return false; + } + + private boolean jj_3_588() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_138() { + if (jj_scan_token(LATERAL)) return true; + return false; + } + + private boolean jj_3_142() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_138()) jj_scanpos = xsp; + if (jj_scan_token(TABLE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_590() { + if (jj_scan_token(OVER)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_588()) { + jj_scanpos = xsp; + if (jj_3_589()) return true; + } + return false; + } + + private boolean jj_3_137() { + if (jj_scan_token(WITH)) return true; + if (jj_scan_token(ORDINALITY)) return true; + return false; + } + + private boolean jj_3_587() { + if (jj_scan_token(FILTER)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_141() { + if (jj_scan_token(UNNEST)) return true; + if (jj_3R_76()) return true; + return false; + } + + private boolean jj_3_136() { + if (jj_3R_73()) return true; + return false; + } + + private boolean jj_3_586() { + if (jj_3R_146()) return true; + return false; + } + + private boolean jj_3_585() { + if (jj_scan_token(LPAREN)) return true; + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_584() { + if (jj_scan_token(LPAREN)) return true; + if (jj_scan_token(STAR)) return true; + return false; + } + + private boolean jj_3_135() { + if (jj_scan_token(LATERAL)) return true; + return false; + } + + private boolean jj_3_140() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_135()) jj_scanpos = xsp; + if (jj_3R_75()) return true; + return false; + } + + private boolean jj_3R_184() { + return false; + } + + private boolean jj_3_134() { + if (jj_3R_73()) return true; + return false; + } + + private boolean jj_3_583() { + if (jj_scan_token(SPECIFIC)) return true; + return false; + } + + private boolean jj_3R_179() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_583()) { + jj_scanpos = xsp; + if (jj_3R_184()) return true; + } + if (jj_3R_118()) return true; + return false; + } + + private boolean jj_3_132() { + if (jj_scan_token(EXTEND)) return true; + return false; + } + + private boolean jj_3_133() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_132()) jj_scanpos = xsp; + if (jj_3R_64()) return true; + return false; + } + + private boolean jj_3_139() { + if (jj_3R_61()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_133()) jj_scanpos = xsp; + if (jj_3R_74()) return true; + xsp = jj_scanpos; + if (jj_3_134()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3R_166() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_139()) { + jj_scanpos = xsp; + if (jj_3_140()) { + jj_scanpos = xsp; + if (jj_3_141()) { + jj_scanpos = xsp; + if (jj_3_142()) { + jj_scanpos = xsp; + if (jj_3_143()) return true; + } + } + } + } + return false; + } + + private boolean jj_3_582() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_125()) return true; + return false; + } + + private boolean jj_3_581() { + if (jj_scan_token(NEXT)) return true; + return false; + } + + private boolean jj_3_580() { + if (jj_scan_token(PREV)) return true; + return false; + } + + private boolean jj_3R_72() { + if (jj_3R_166()) return true; + return false; + } + + private boolean jj_3R_144() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_580()) { + jj_scanpos = xsp; + if (jj_3_581()) return true; + } + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_579() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_125()) return true; + return false; + } + + private boolean jj_3_578() { + if (jj_scan_token(LAST)) return true; + return false; + } + + private boolean jj_3_577() { + if (jj_scan_token(FIRST)) return true; + return false; + } + + private boolean jj_3_131() { + if (jj_scan_token(OUTER)) return true; + if (jj_scan_token(APPLY)) return true; + return false; + } + + private boolean jj_3R_178() { + return false; + } + + private boolean jj_3_576() { + if (jj_scan_token(FINAL)) return true; + return false; + } + + private boolean jj_3_575() { + if (jj_scan_token(RUNNING)) return true; + return false; + } + + private boolean jj_3R_143() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_575()) { + jj_scanpos = xsp; + if (jj_3_576()) { + jj_scanpos = xsp; + if (jj_3R_178()) return true; + } + } + xsp = jj_scanpos; + if (jj_3_577()) { + jj_scanpos = xsp; + if (jj_3_578()) return true; + } + return false; + } + + private boolean jj_3_130() { + if (jj_scan_token(CROSS)) return true; + if (jj_scan_token(APPLY)) return true; + return false; + } + + private boolean jj_3_129() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_72()) return true; + return false; + } + + private boolean jj_3_574() { + if (jj_scan_token(FINAL)) return true; + return false; + } + + private boolean jj_3_573() { + if (jj_scan_token(RUNNING)) return true; + return false; + } + + private boolean jj_3R_145() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_573()) { + jj_scanpos = xsp; + if (jj_3_574()) return true; + } + if (jj_3R_179()) return true; + return false; + } + + private boolean jj_3_572() { + if (jj_3R_145()) return true; + return false; + } + + private boolean jj_3_571() { + if (jj_3R_144()) return true; + return false; + } + + private boolean jj_3_570() { + if (jj_3R_143()) return true; + return false; + } + + private boolean jj_3_569() { + if (jj_scan_token(MATCH_NUMBER)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_127() { + if (jj_scan_token(USING)) return true; + if (jj_3R_68()) return true; + return false; + } + + private boolean jj_3_568() { + if (jj_scan_token(CLASSIFIER)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_142() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_568()) { + jj_scanpos = xsp; + if (jj_3_569()) { + jj_scanpos = xsp; + if (jj_3_570()) { + jj_scanpos = xsp; + if (jj_3_571()) { + jj_scanpos = xsp; + if (jj_3_572()) return true; + } + } + } + } + return false; + } + + private boolean jj_3_126() { + if (jj_scan_token(ON)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_128() { + if (jj_3R_70()) return true; + if (jj_3R_71()) return true; + return false; + } + + private boolean jj_3_125() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_128()) { + jj_scanpos = xsp; + if (jj_3_129()) { + jj_scanpos = xsp; + if (jj_3_130()) { + jj_scanpos = xsp; + if (jj_3_131()) return true; + } + } + } + return false; + } + + private boolean jj_3R_140() { + if (jj_scan_token(TIMESTAMPDIFF)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_59() { + if (jj_3R_72()) return true; + return false; + } + + private boolean jj_3R_139() { + if (jj_scan_token(TIMESTAMPADD)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_567() { + if (jj_3R_142()) return true; + return false; + } + + private boolean jj_3_566() { + if (jj_3R_141()) return true; + return false; + } + + private boolean jj_3_565() { + if (jj_3R_140()) return true; + return false; + } + + private boolean jj_3_124() { + if (jj_scan_token(USING)) return true; + if (jj_3R_68()) return true; + return false; + } + + private boolean jj_3_564() { + if (jj_3R_139()) return true; + return false; + } + + private boolean jj_3_123() { + if (jj_scan_token(ON)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_552() { + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_116() { + if (jj_scan_token(OUTER)) return true; + return false; + } + + private boolean jj_3_115() { + if (jj_scan_token(OUTER)) return true; + return false; + } + + private boolean jj_3_551() { + if (jj_scan_token(FROM)) return true; + return false; + } + + private boolean jj_3_114() { + if (jj_scan_token(OUTER)) return true; + return false; + } + + private boolean jj_3_550() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_122() { + if (jj_scan_token(CROSS)) return true; + if (jj_scan_token(JOIN)) return true; + return false; + } + + private boolean jj_3_121() { + if (jj_scan_token(FULL)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_116()) jj_scanpos = xsp; + if (jj_scan_token(JOIN)) return true; + return false; + } + + private boolean jj_3_548() { + if (jj_scan_token(LEADING)) return true; + return false; + } + + private boolean jj_3_120() { + if (jj_scan_token(RIGHT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_115()) jj_scanpos = xsp; + if (jj_scan_token(JOIN)) return true; + return false; + } + + private boolean jj_3_119() { + if (jj_scan_token(LEFT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_114()) jj_scanpos = xsp; + if (jj_scan_token(JOIN)) return true; + return false; + } + + private boolean jj_3_547() { + if (jj_scan_token(TRAILING)) return true; + return false; + } + + private boolean jj_3_118() { + if (jj_scan_token(INNER)) return true; + if (jj_scan_token(JOIN)) return true; + return false; + } + + private boolean jj_3_117() { + if (jj_scan_token(JOIN)) return true; + return false; + } + + private boolean jj_3_549() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_546()) { + jj_scanpos = xsp; + if (jj_3_547()) { + jj_scanpos = xsp; + if (jj_3_548()) return true; + } + } + return false; + } + + private boolean jj_3_546() { + if (jj_scan_token(BOTH)) return true; + return false; + } + + private boolean jj_3R_71() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_117()) { + jj_scanpos = xsp; + if (jj_3_118()) { + jj_scanpos = xsp; + if (jj_3_119()) { + jj_scanpos = xsp; + if (jj_3_120()) { + jj_scanpos = xsp; + if (jj_3_121()) { + jj_scanpos = xsp; + if (jj_3_122()) return true; + } + } + } + } + } + return false; + } + + private boolean jj_3_553() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_549()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_550()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_551()) { + jj_scanpos = xsp; + if (jj_3_552()) return true; + } + return false; + } + + private boolean jj_3R_165() { + return false; + } + + private boolean jj_3_113() { + if (jj_scan_token(NATURAL)) return true; + return false; + } + + private boolean jj_3R_70() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_113()) { + jj_scanpos = xsp; + if (jj_3R_165()) return true; + } + return false; + } + + private boolean jj_3_544() { + if (jj_scan_token(COMMA)) return true; + return false; + } + + private boolean jj_3_563() { + if (jj_scan_token(TRIM)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_542() { + if (jj_scan_token(COMMA)) return true; + return false; + } + + private boolean jj_3_543() { + if (jj_scan_token(FOR)) return true; + return false; + } + + private boolean jj_3_112() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_545() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_543()) { + jj_scanpos = xsp; + if (jj_3_544()) return true; + } + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_164() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_111()) { + jj_scanpos = xsp; + if (jj_3_112()) return true; + } + return false; + } + + private boolean jj_3_111() { + if (jj_scan_token(STAR)) return true; + return false; + } + + private boolean jj_3_541() { + if (jj_scan_token(FROM)) return true; + return false; + } + + private boolean jj_3_540() { + if (jj_scan_token(CEILING)) return true; + return false; + } + + private boolean jj_3_562() { + if (jj_scan_token(SUBSTRING)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_539() { + if (jj_scan_token(CEIL)) return true; + return false; + } + + private boolean jj_3_109() { + if (jj_scan_token(AS)) return true; + return false; + } + + private boolean jj_3_561() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_539()) { + jj_scanpos = xsp; + if (jj_3_540()) return true; + } + if (jj_3R_138()) return true; + return false; + } + + private boolean jj_3_110() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_109()) jj_scanpos = xsp; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_560() { + if (jj_scan_token(FLOOR)) return true; + if (jj_3R_138()) return true; + return false; + } + + private boolean jj_3R_69() { + if (jj_3R_164()) return true; + return false; + } + + private boolean jj_3_538() { + if (jj_scan_token(FOR)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_108() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_69()) return true; + return false; + } + + private boolean jj_3_559() { + if (jj_scan_token(OVERLAY)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_535() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_537() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_535()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_536() { + if (jj_scan_token(USING)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_107() { + if (jj_scan_token(RPAREN)) return true; + return false; + } + + private boolean jj_3_558() { + if (jj_scan_token(TRANSLATE)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_106() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_105() { + if (jj_3R_68()) return true; + return false; + } + + private boolean jj_3_557() { + if (jj_scan_token(CONVERT)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_66() { + if (jj_scan_token(WHEN)) return true; + if (jj_scan_token(NOT)) return true; + return false; + } + + private boolean jj_3_534() { + if (jj_scan_token(FROM)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_556() { + if (jj_scan_token(POSITION)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_104() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_555() { + if (jj_scan_token(EXTRACT)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_533() { + if (jj_scan_token(INTERVAL)) return true; + if (jj_3R_108()) return true; + return false; + } + + private boolean jj_3_532() { + if (jj_3R_80()) return true; + return false; + } + + private boolean jj_3R_67() { + if (jj_scan_token(WHEN)) return true; + if (jj_scan_token(MATCHED)) return true; + return false; + } + + private boolean jj_3_554() { + if (jj_scan_token(CAST)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3R_112() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_554()) { + jj_scanpos = xsp; + if (jj_3_555()) { + jj_scanpos = xsp; + if (jj_3_556()) { + jj_scanpos = xsp; + if (jj_3_557()) { + jj_scanpos = xsp; + if (jj_3_558()) { + jj_scanpos = xsp; + if (jj_3_559()) { + jj_scanpos = xsp; + if (jj_3_560()) { + jj_scanpos = xsp; + if (jj_3_561()) { + jj_scanpos = xsp; + if (jj_3_562()) { + jj_scanpos = xsp; + if (jj_3_563()) { + jj_scanpos = xsp; + if (jj_3_564()) { + jj_scanpos = xsp; + if (jj_3_565()) { + jj_scanpos = xsp; + if (jj_3_566()) { + jj_scanpos = xsp; + if (jj_3_567()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_103() { + if (jj_3R_66()) return true; + return false; + } + + private boolean jj_3_101() { + if (jj_3R_66()) return true; + return false; + } + + private boolean jj_3_102() { + if (jj_3R_67()) return true; + return false; + } + + private boolean jj_3_99() { + if (jj_scan_token(AS)) return true; + return false; + } + + private boolean jj_3_100() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_99()) jj_scanpos = xsp; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_97() { + if (jj_scan_token(EXTEND)) return true; + return false; + } + + private boolean jj_3_98() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_97()) jj_scanpos = xsp; + if (jj_3R_64()) return true; + return false; + } + + private boolean jj_3R_54() { + if (jj_scan_token(MERGE)) return true; + if (jj_scan_token(INTO)) return true; + return false; + } + + private boolean jj_3R_110() { + if (jj_scan_token(CURSOR)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_134() { + if (jj_scan_token(MULTISET)) return true; + return false; + } + + private boolean jj_3_96() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_94() { + if (jj_scan_token(AS)) return true; + return false; + } + + private boolean jj_3_95() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_94()) jj_scanpos = xsp; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_501() { + if (jj_scan_token(FLOAT)) return true; + return false; + } + + private boolean jj_3_499() { + if (jj_scan_token(DOUBLE)) return true; + return false; + } + + private boolean jj_3_92() { + if (jj_scan_token(EXTEND)) return true; + return false; + } + + private boolean jj_3_493() { + if (jj_scan_token(SMALLINT)) return true; + return false; + } + + private boolean jj_3_531() { + if (jj_scan_token(SQL_INTERVAL_SECOND)) return true; + return false; + } + + private boolean jj_3_495() { + if (jj_scan_token(BIGINT)) return true; + return false; + } + + private boolean jj_3_489() { + if (jj_scan_token(VARBINARY)) return true; + return false; + } + + private boolean jj_3_93() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_92()) jj_scanpos = xsp; + if (jj_3R_64()) return true; + return false; + } + + private boolean jj_3_530() { + if (jj_scan_token(SQL_INTERVAL_MINUTE_TO_SECOND)) return true; + return false; + } + + private boolean jj_3_491() { + if (jj_scan_token(TINYINT)) return true; + return false; + } + + private boolean jj_3_529() { + if (jj_scan_token(SQL_INTERVAL_MINUTE)) return true; + return false; + } + + private boolean jj_3_497() { + if (jj_scan_token(REAL)) return true; + return false; + } + + private boolean jj_3_528() { + if (jj_scan_token(SQL_INTERVAL_HOUR_TO_SECOND)) return true; + return false; + } + + private boolean jj_3_527() { + if (jj_scan_token(SQL_INTERVAL_HOUR_TO_MINUTE)) return true; + return false; + } + + private boolean jj_3_487() { + if (jj_scan_token(BINARY)) return true; + return false; + } + + private boolean jj_3_485() { + if (jj_scan_token(INTEGER)) return true; + return false; + } + + private boolean jj_3_526() { + if (jj_scan_token(SQL_INTERVAL_HOUR)) return true; + return false; + } + + private boolean jj_3_483() { + if (jj_scan_token(BOOLEAN)) return true; + return false; + } + + private boolean jj_3_525() { + if (jj_scan_token(SQL_INTERVAL_DAY_TO_SECOND)) return true; + return false; + } + + private boolean jj_3_481() { + if (jj_scan_token(NUMERIC)) return true; + return false; + } + + private boolean jj_3_477() { + if (jj_scan_token(TIMESTAMP)) return true; + return false; + } + + private boolean jj_3_524() { + if (jj_scan_token(SQL_INTERVAL_DAY_TO_MINUTE)) return true; + return false; + } + + private boolean jj_3_479() { + if (jj_scan_token(DECIMAL)) return true; + return false; + } + + private boolean jj_3_523() { + if (jj_scan_token(SQL_INTERVAL_DAY_TO_HOUR)) return true; + return false; + } + + private boolean jj_3_522() { + if (jj_scan_token(SQL_INTERVAL_DAY)) return true; + return false; + } + + private boolean jj_3_521() { + if (jj_scan_token(SQL_INTERVAL_MONTH)) return true; + return false; + } + + private boolean jj_3R_53() { + if (jj_scan_token(UPDATE)) return true; + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_520() { + if (jj_scan_token(SQL_INTERVAL_YEAR_TO_MONTH)) return true; + return false; + } + + private boolean jj_3_471() { + if (jj_scan_token(VARCHAR)) return true; + return false; + } + + private boolean jj_3_519() { + if (jj_scan_token(SQL_INTERVAL_YEAR)) return true; + return false; + } + + private boolean jj_3_500() { + if (jj_scan_token(SQL_FLOAT)) return true; + return false; + } + + private boolean jj_3_475() { + if (jj_scan_token(TIME)) return true; + return false; + } + + private boolean jj_3_518() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_500()) { + jj_scanpos = xsp; + if (jj_3_501()) return true; + } + return false; + } + + private boolean jj_3_498() { + if (jj_scan_token(SQL_DOUBLE)) return true; + return false; + } + + private boolean jj_3_473() { + if (jj_scan_token(DATE)) return true; + return false; + } + + private boolean jj_3_517() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_498()) { + jj_scanpos = xsp; + if (jj_3_499()) return true; + } + return false; + } + + private boolean jj_3_496() { + if (jj_scan_token(SQL_REAL)) return true; + return false; + } + + private boolean jj_3_516() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_496()) { + jj_scanpos = xsp; + if (jj_3_497()) return true; + } + return false; + } + + private boolean jj_3_494() { + if (jj_scan_token(SQL_BIGINT)) return true; + return false; + } + + private boolean jj_3_469() { + if (jj_scan_token(CHAR)) return true; + return false; + } + + private boolean jj_3_515() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_494()) { + jj_scanpos = xsp; + if (jj_3_495()) return true; + } + return false; + } + + private boolean jj_3_492() { + if (jj_scan_token(SQL_SMALLINT)) return true; + return false; + } + + private boolean jj_3_514() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_492()) { + jj_scanpos = xsp; + if (jj_3_493()) return true; + } + return false; + } + + private boolean jj_3_490() { + if (jj_scan_token(SQL_TINYINT)) return true; + return false; + } + + private boolean jj_3_513() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_490()) { + jj_scanpos = xsp; + if (jj_3_491()) return true; + } + return false; + } + + private boolean jj_3_488() { + if (jj_scan_token(SQL_VARBINARY)) return true; + return false; + } + + private boolean jj_3_512() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_488()) { + jj_scanpos = xsp; + if (jj_3_489()) return true; + } + return false; + } + + private boolean jj_3_486() { + if (jj_scan_token(SQL_BINARY)) return true; + return false; + } + + private boolean jj_3_511() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_486()) { + jj_scanpos = xsp; + if (jj_3_487()) return true; + } + return false; + } + + private boolean jj_3_484() { + if (jj_scan_token(SQL_INTEGER)) return true; + return false; + } + + private boolean jj_3_510() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_484()) { + jj_scanpos = xsp; + if (jj_3_485()) return true; + } + return false; + } + + private boolean jj_3_482() { + if (jj_scan_token(SQL_BOOLEAN)) return true; + return false; + } + + private boolean jj_3_509() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_482()) { + jj_scanpos = xsp; + if (jj_3_483()) return true; + } + return false; + } + + private boolean jj_3_480() { + if (jj_scan_token(SQL_NUMERIC)) return true; + return false; + } + + private boolean jj_3_508() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_480()) { + jj_scanpos = xsp; + if (jj_3_481()) return true; + } + return false; + } + + private boolean jj_3_478() { + if (jj_scan_token(SQL_DECIMAL)) return true; + return false; + } + + private boolean jj_3_507() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_478()) { + jj_scanpos = xsp; + if (jj_3_479()) return true; + } + return false; + } + + private boolean jj_3_476() { + if (jj_scan_token(SQL_TIMESTAMP)) return true; + return false; + } + + private boolean jj_3_506() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_476()) { + jj_scanpos = xsp; + if (jj_3_477()) return true; + } + return false; + } + + private boolean jj_3_474() { + if (jj_scan_token(SQL_TIME)) return true; + return false; + } + + private boolean jj_3_505() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_474()) { + jj_scanpos = xsp; + if (jj_3_475()) return true; + } + return false; + } + + private boolean jj_3_472() { + if (jj_scan_token(SQL_DATE)) return true; + return false; + } + + private boolean jj_3_504() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_472()) { + jj_scanpos = xsp; + if (jj_3_473()) return true; + } + return false; + } + + private boolean jj_3_470() { + if (jj_scan_token(SQL_VARCHAR)) return true; + return false; + } + + private boolean jj_3_503() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_470()) { + jj_scanpos = xsp; + if (jj_3_471()) return true; + } + return false; + } + + private boolean jj_3_468() { + if (jj_scan_token(SQL_CHAR)) return true; + return false; + } + + private boolean jj_3_502() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_468()) { + jj_scanpos = xsp; + if (jj_3_469()) return true; + } + return false; + } + + private boolean jj_3_90() { + if (jj_scan_token(AS)) return true; + return false; + } + + private boolean jj_3_91() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_90()) jj_scanpos = xsp; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_88() { + if (jj_scan_token(EXTEND)) return true; + return false; + } + + private boolean jj_3_89() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_88()) jj_scanpos = xsp; + if (jj_3R_64()) return true; + return false; + } + + private boolean jj_3_467() { + if (jj_scan_token(ANY)) return true; + return false; + } + + private boolean jj_3_466() { + if (jj_scan_token(FLOAT)) return true; + return false; + } + + private boolean jj_3_449() { + if (jj_scan_token(PRECISION)) return true; + return false; + } + + private boolean jj_3_465() { + if (jj_scan_token(DOUBLE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_449()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_464() { + if (jj_scan_token(REAL)) return true; + return false; + } + + private boolean jj_3_445() { + if (jj_scan_token(NUMERIC)) return true; + return false; + } + + private boolean jj_3R_52() { + if (jj_scan_token(DELETE)) return true; + if (jj_scan_token(FROM)) return true; + return false; + } + + private boolean jj_3_463() { + if (jj_scan_token(BIGINT)) return true; + return false; + } + + private boolean jj_3_447() { + if (jj_scan_token(INT)) return true; + return false; + } + + private boolean jj_3_462() { + if (jj_scan_token(SMALLINT)) return true; + return false; + } + + private boolean jj_3_461() { + if (jj_scan_token(TINYINT)) return true; + return false; + } + + private boolean jj_3R_137() { + return false; + } + + private boolean jj_3_460() { + if (jj_scan_token(VARBINARY)) return true; + return false; + } + + private boolean jj_3_444() { + if (jj_scan_token(DEC)) return true; + return false; + } + + private boolean jj_3_448() { + if (jj_scan_token(VARYING)) return true; + return false; + } + + private boolean jj_3_459() { + if (jj_scan_token(BINARY)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_448()) { + jj_scanpos = xsp; + if (jj_3R_137()) return true; + } + return false; + } + + private boolean jj_3_446() { + if (jj_scan_token(INTEGER)) return true; + return false; + } + + private boolean jj_3_458() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_446()) { + jj_scanpos = xsp; + if (jj_3_447()) return true; + } + return false; + } + + private boolean jj_3_457() { + if (jj_scan_token(BOOLEAN)) return true; + return false; + } + + private boolean jj_3_443() { + if (jj_scan_token(DECIMAL)) return true; + return false; + } + + private boolean jj_3_456() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_443()) { + jj_scanpos = xsp; + if (jj_3_444()) { + jj_scanpos = xsp; + if (jj_3_445()) return true; + } + } + return false; + } + + private boolean jj_3_455() { + if (jj_scan_token(GEOMETRY)) return true; + return false; + } + + private boolean jj_3_441() { + if (jj_scan_token(CHAR)) return true; + return false; + } + + private boolean jj_3_454() { + if (jj_scan_token(TIMESTAMP)) return true; + return false; + } + + private boolean jj_3_453() { + if (jj_scan_token(TIME)) return true; + return false; + } + + private boolean jj_3_87() { + if (jj_3R_65()) return true; + return false; + } + + private boolean jj_3_452() { + if (jj_scan_token(DATE)) return true; + return false; + } + + private boolean jj_3R_136() { + return false; + } + + private boolean jj_3_451() { + if (jj_scan_token(VARCHAR)) return true; + return false; + } + + private boolean jj_3_442() { + if (jj_scan_token(VARYING)) return true; + return false; + } + + private boolean jj_3_85() { + if (jj_scan_token(EXTEND)) return true; + return false; + } + + private boolean jj_3_86() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_85()) jj_scanpos = xsp; + if (jj_3R_64()) return true; + return false; + } + + private boolean jj_3_440() { + if (jj_scan_token(CHARACTER)) return true; + return false; + } + + private boolean jj_3_450() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_440()) { + jj_scanpos = xsp; + if (jj_3_441()) return true; + } + xsp = jj_scanpos; + if (jj_3_442()) { + jj_scanpos = xsp; + if (jj_3R_136()) return true; + } + return false; + } + + private boolean jj_3R_135() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_450()) { + jj_scanpos = xsp; + if (jj_3_451()) { + jj_scanpos = xsp; + if (jj_3_452()) { + jj_scanpos = xsp; + if (jj_3_453()) { + jj_scanpos = xsp; + if (jj_3_454()) { + jj_scanpos = xsp; + if (jj_3_455()) { + jj_scanpos = xsp; + if (jj_3_456()) { + jj_scanpos = xsp; + if (jj_3_457()) { + jj_scanpos = xsp; + if (jj_3_458()) { + jj_scanpos = xsp; + if (jj_3_459()) { + jj_scanpos = xsp; + if (jj_3_460()) { + jj_scanpos = xsp; + if (jj_3_461()) { + jj_scanpos = xsp; + if (jj_3_462()) { + jj_scanpos = xsp; + if (jj_3_463()) { + jj_scanpos = xsp; + if (jj_3_464()) { + jj_scanpos = xsp; + if (jj_3_465()) { + jj_scanpos = xsp; + if (jj_3_466()) { + jj_scanpos = xsp; + if (jj_3_467()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_84() { + if (jj_scan_token(UPSERT)) return true; + return false; + } + + private boolean jj_3_83() { + if (jj_scan_token(INSERT)) return true; + return false; + } + + private boolean jj_3_439() { + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_438() { + if (jj_3R_134()) return true; + return false; + } + + private boolean jj_3R_51() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_83()) { + jj_scanpos = xsp; + if (jj_3_84()) return true; + } + if (jj_3R_160()) return true; + return false; + } + + private boolean jj_3_437() { + if (jj_3R_135()) return true; + return false; + } + + private boolean jj_3R_168() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_437()) { + jj_scanpos = xsp; + if (jj_3_438()) { + jj_scanpos = xsp; + if (jj_3_439()) return true; + } + } + return false; + } + + private boolean jj_3_81() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_44()) return true; + return false; + } + + private boolean jj_3_82() { + if (jj_3R_63()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_81()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3_436() { + if (jj_3R_134()) return true; + return false; + } + + private boolean jj_3R_161() { + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_435() { + if (jj_scan_token(CHARACTER)) return true; + if (jj_scan_token(SET)) return true; + return false; + } + + private boolean jj_3_433() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_434() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3R_80() { + if (jj_3R_168()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_434()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_435()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_436()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3R_55() { + if (jj_scan_token(CALL)) return true; + if (jj_3R_161()) return true; + return false; + } + + private boolean jj_3_74() { + if (jj_scan_token(SCHEMA)) return true; + return false; + } + + private boolean jj_3_432() { + if (jj_scan_token(MINUS)) return true; + if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; + return false; + } + + private boolean jj_3_77() { + if (jj_scan_token(STATEMENT)) return true; + return false; + } + + private boolean jj_3_80() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_77()) jj_scanpos = xsp; + if (jj_3R_62()) return true; + return false; + } + + private boolean jj_3_79() { + Token xsp; + xsp = jj_scanpos; + if (jj_scan_token(561)) { + jj_scanpos = xsp; + if (jj_scan_token(706)) { + jj_scanpos = xsp; + if (jj_scan_token(703)) { + jj_scanpos = xsp; + if (jj_scan_token(704)) { + jj_scanpos = xsp; + if (jj_scan_token(702)) return true; + } + } + } + } + return false; + } + + private boolean jj_3_430() { + if (jj_scan_token(PLUS)) return true; + if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; + return false; + } + + private boolean jj_3_76() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_429() { + if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; + return false; + } + + private boolean jj_3_73() { + if (jj_scan_token(CATALOG)) return true; + return false; + } + + private boolean jj_3_75() { + if (jj_scan_token(TABLE)) return true; + return false; + } + + private boolean jj_3_431() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_429()) { + jj_scanpos = xsp; + if (jj_3_430()) return true; + } + return false; + } + + private boolean jj_3R_159() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_75()) jj_scanpos = xsp; + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_72() { + if (jj_scan_token(DATABASE)) return true; + return false; + } + + private boolean jj_3_78() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_72()) { + jj_scanpos = xsp; + if (jj_3_73()) { + jj_scanpos = xsp; + if (jj_3_74()) return true; + } + } + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3R_131() { + if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; + return false; + } + + private boolean jj_3R_50() { + if (jj_scan_token(DESCRIBE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_78()) { + jj_scanpos = xsp; + if (jj_3R_159()) { + jj_scanpos = xsp; + if (jj_3_80()) return true; + } + } + return false; + } + + private boolean jj_3R_120() { + if (jj_scan_token(NEW)) return true; + if (jj_3R_161()) return true; + return false; + } + + private boolean jj_3_69() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_71() { + if (jj_scan_token(INCLUDING)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_69()) jj_scanpos = xsp; + if (jj_scan_token(ATTRIBUTES)) return true; + return false; + } + + private boolean jj_3_70() { + if (jj_scan_token(EXCLUDING)) return true; + if (jj_scan_token(ATTRIBUTES)) return true; + return false; + } + + private boolean jj_3R_65() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_162()) return true; + return false; + } + + private boolean jj_3R_60() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_70()) { + jj_scanpos = xsp; + if (jj_3_71()) return true; + } + return false; + } + + private boolean jj_3_428() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_133()) return true; + return false; + } + + private boolean jj_3R_162() { + if (jj_3R_133()) return true; + return false; + } + + private boolean jj_3_68() { + if (jj_scan_token(WITHOUT)) return true; + if (jj_scan_token(IMPLEMENTATION)) return true; + return false; + } + + private boolean jj_3_67() { + if (jj_scan_token(WITH)) return true; + if (jj_scan_token(IMPLEMENTATION)) return true; + return false; + } + + private boolean jj_3_66() { + if (jj_scan_token(WITH)) return true; + if (jj_scan_token(TYPE)) return true; + return false; + } + + private boolean jj_3_427() { + if (jj_scan_token(DOT)) return true; + if (jj_scan_token(STAR)) return true; + return false; + } + + private boolean jj_3_426() { + if (jj_scan_token(DOT)) return true; + if (jj_3R_78()) return true; + return false; + } + + private boolean jj_3_65() { + if (jj_3R_54()) return true; + return false; + } + + private boolean jj_3_64() { + if (jj_3R_53()) return true; + return false; + } + + private boolean jj_3_63() { + if (jj_3R_52()) return true; + return false; + } + + private boolean jj_3_62() { + if (jj_3R_51()) return true; + return false; + } + + private boolean jj_3_61() { + if (jj_3R_42()) return true; + return false; + } + + private boolean jj_3R_61() { + if (jj_3R_78()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_426()) { jj_scanpos = xsp; break; } + } + xsp = jj_scanpos; + if (jj_3_427()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3R_62() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_61()) { + jj_scanpos = xsp; + if (jj_3_62()) { + jj_scanpos = xsp; + if (jj_3_63()) { + jj_scanpos = xsp; + if (jj_3_64()) { + jj_scanpos = xsp; + if (jj_3_65()) return true; + } + } + } + } + return false; + } + + private boolean jj_3R_68() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_163()) return true; + return false; + } + + private boolean jj_3_60() { + if (jj_scan_token(AS)) return true; + if (jj_scan_token(JSON)) return true; + return false; + } + + private boolean jj_3_59() { + if (jj_scan_token(AS)) return true; + if (jj_scan_token(XML)) return true; + return false; + } + + private boolean jj_3_58() { + if (jj_3R_60()) return true; + return false; + } + + private boolean jj_3_425() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3R_49() { + if (jj_scan_token(EXPLAIN)) return true; + if (jj_scan_token(PLAN)) return true; + return false; + } + + private boolean jj_3R_163() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3R_45() { + if (jj_3R_78()) return true; + return false; + } + + private boolean jj_3_424() { + if (jj_3R_132()) return true; + return false; + } + + private boolean jj_3_57() { + if (jj_scan_token(FROM)) return true; + if (jj_3R_59()) return true; + return false; + } + + private boolean jj_3_418() { + if (jj_scan_token(UESCAPE)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_55() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_54() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_56() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_54()) { + jj_scanpos = xsp; + if (jj_3_55()) return true; + } + return false; + } + + private boolean jj_3_423() { + if (jj_scan_token(UNICODE_QUOTED_IDENTIFIER)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_418()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_53() { + if (jj_scan_token(STREAM)) return true; + return false; + } + + private boolean jj_3_422() { + if (jj_scan_token(BRACKET_QUOTED_IDENTIFIER)) return true; + return false; + } + + private boolean jj_3_421() { + if (jj_scan_token(BACK_QUOTED_IDENTIFIER)) return true; + return false; + } + + private boolean jj_3R_38() { + if (jj_scan_token(SELECT)) return true; + if (jj_3R_155()) return true; + return false; + } + + private boolean jj_3_420() { + if (jj_scan_token(QUOTED_IDENTIFIER)) return true; + return false; + } + + private boolean jj_3_419() { + if (jj_scan_token(IDENTIFIER)) return true; + return false; + } + + private boolean jj_3_51() { + if (jj_scan_token(SEMICOLON)) return true; + if (jj_3R_58()) return true; + return false; + } + + private boolean jj_3R_78() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_419()) { + jj_scanpos = xsp; + if (jj_3_420()) { + jj_scanpos = xsp; + if (jj_3_421()) { + jj_scanpos = xsp; + if (jj_3_422()) { + jj_scanpos = xsp; + if (jj_3_423()) { + jj_scanpos = xsp; + if (jj_3_424()) return true; + } + } + } + } + } + return false; + } + + private boolean jj_3_52() { + if (jj_scan_token(SEMICOLON)) return true; + return false; + } + + private boolean jj_3R_111() { + if (jj_scan_token(HOOK)) return true; + return false; + } + + private boolean jj_3_417() { + if (jj_scan_token(SQL_TSI_YEAR)) return true; + return false; + } + + private boolean jj_3_416() { + if (jj_scan_token(YEAR)) return true; + return false; + } + + private boolean jj_3_415() { + if (jj_scan_token(SQL_TSI_QUARTER)) return true; + return false; + } + + private boolean jj_3_414() { + if (jj_scan_token(QUARTER)) return true; + return false; + } + + private boolean jj_3_413() { + if (jj_scan_token(SQL_TSI_MONTH)) return true; + return false; + } + + private boolean jj_3_412() { + if (jj_scan_token(MONTH)) return true; + return false; + } + + private boolean jj_3_411() { + if (jj_scan_token(SQL_TSI_WEEK)) return true; + return false; + } + + private boolean jj_3_410() { + if (jj_scan_token(WEEK)) return true; + return false; + } + + private boolean jj_3_409() { + if (jj_scan_token(SQL_TSI_DAY)) return true; + return false; + } + + private boolean jj_3_408() { + if (jj_scan_token(DAY)) return true; + return false; + } + + private boolean jj_3_50() { + if (jj_3R_57()) return true; + return false; + } + + private boolean jj_3_407() { + if (jj_scan_token(SQL_TSI_HOUR)) return true; + return false; + } + + private boolean jj_3_406() { + if (jj_scan_token(HOUR)) return true; + return false; + } + + private boolean jj_3_405() { + if (jj_scan_token(SQL_TSI_MINUTE)) return true; + return false; + } + + private boolean jj_3_404() { + if (jj_scan_token(MINUTE)) return true; + return false; + } + + private boolean jj_3_403() { + if (jj_scan_token(SQL_TSI_SECOND)) return true; + return false; + } + + private boolean jj_3_402() { + if (jj_scan_token(SECOND)) return true; + return false; + } + + private boolean jj_3_401() { + if (jj_scan_token(SQL_TSI_MICROSECOND)) return true; + return false; + } + + private boolean jj_3_400() { + if (jj_scan_token(SQL_TSI_FRAC_SECOND)) return true; + return false; + } + + private boolean jj_3_49() { + if (jj_3R_45()) return true; + if (jj_scan_token(DOT)) return true; + return false; + } + + private boolean jj_3_399() { + if (jj_scan_token(MICROSECOND)) return true; + return false; + } + + private boolean jj_3_398() { + if (jj_scan_token(FRAC_SECOND)) return true; + return false; + } + + private boolean jj_3R_46() { + if (jj_scan_token(CREATE)) return true; + if (jj_scan_token(FUNCTION)) return true; + return false; + } + + private boolean jj_3_397() { + if (jj_scan_token(MILLENNIUM)) return true; + return false; + } + + private boolean jj_3_396() { + if (jj_scan_token(CENTURY)) return true; + return false; + } + + private boolean jj_3_395() { + if (jj_scan_token(DECADE)) return true; + return false; + } + + private boolean jj_3_394() { + if (jj_scan_token(EPOCH)) return true; + return false; + } + + private boolean jj_3_393() { + if (jj_scan_token(YEAR)) return true; + return false; + } + + private boolean jj_3_392() { + if (jj_scan_token(QUARTER)) return true; + return false; + } + + private boolean jj_3_391() { + if (jj_scan_token(MONTH)) return true; + return false; + } + + private boolean jj_3_390() { + if (jj_scan_token(WEEK)) return true; + return false; + } + + private boolean jj_3_389() { + if (jj_scan_token(DOY)) return true; + return false; + } + + private boolean jj_3_388() { + if (jj_scan_token(DOW)) return true; + return false; + } + + private boolean jj_3_387() { + if (jj_scan_token(DAY)) return true; + return false; + } + + private boolean jj_3_386() { + if (jj_scan_token(HOUR)) return true; + return false; + } + + private boolean jj_3_385() { + if (jj_scan_token(MINUTE)) return true; + return false; + } + + private boolean jj_3_384() { + if (jj_scan_token(SECOND)) return true; + return false; + } + + private boolean jj_3R_148() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_384()) { + jj_scanpos = xsp; + if (jj_3_385()) { + jj_scanpos = xsp; + if (jj_3_386()) { + jj_scanpos = xsp; + if (jj_3_387()) { + jj_scanpos = xsp; + if (jj_3_388()) { + jj_scanpos = xsp; + if (jj_3_389()) { + jj_scanpos = xsp; + if (jj_3_390()) { + jj_scanpos = xsp; + if (jj_3_391()) { + jj_scanpos = xsp; + if (jj_3_392()) { + jj_scanpos = xsp; + if (jj_3_393()) { + jj_scanpos = xsp; + if (jj_3_394()) { + jj_scanpos = xsp; + if (jj_3_395()) { + jj_scanpos = xsp; + if (jj_3_396()) { + jj_scanpos = xsp; + if (jj_3_397()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_47() { + if (jj_scan_token(ARCHIVE)) return true; + return false; + } + + private boolean jj_3_48() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_56()) return true; + return false; + } + + private boolean jj_3R_57() { + if (jj_scan_token(USING)) return true; + if (jj_3R_56()) return true; + return false; + } + + private boolean jj_3_376() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_46() { + if (jj_scan_token(FILE)) return true; + return false; + } + + private boolean jj_3_377() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_374() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_373() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_383() { + if (jj_scan_token(SECOND)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_377()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_45() { + if (jj_scan_token(JAR)) return true; + return false; + } + + private boolean jj_3R_56() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_45()) { + jj_scanpos = xsp; + if (jj_3_46()) { + jj_scanpos = xsp; + if (jj_3_47()) return true; + } + } + return false; + } + + private boolean jj_3_369() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_375() { + if (jj_scan_token(TO)) return true; + if (jj_scan_token(SECOND)) return true; + return false; + } + + private boolean jj_3_371() { + if (jj_scan_token(SECOND)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_369()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_382() { + if (jj_scan_token(MINUTE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_373()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_375()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_370() { + if (jj_scan_token(MINUTE)) return true; + return false; + } + + private boolean jj_3_368() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_363() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_372() { + if (jj_scan_token(TO)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_370()) { + jj_scanpos = xsp; + if (jj_3_371()) return true; + } + return false; + } + + private boolean jj_3_366() { + if (jj_scan_token(SECOND)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_363()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_381() { + if (jj_scan_token(HOUR)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_368()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_372()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_365() { + if (jj_scan_token(MINUTE)) return true; + return false; + } + + private boolean jj_3_364() { + if (jj_scan_token(HOUR)) return true; + return false; + } + + private boolean jj_3_362() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_361() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_44() { + if (jj_3R_55()) return true; + return false; + } + + private boolean jj_3_43() { + if (jj_3R_54()) return true; + return false; + } + + private boolean jj_3_367() { + if (jj_scan_token(TO)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_364()) { + jj_scanpos = xsp; + if (jj_3_365()) { + jj_scanpos = xsp; + if (jj_3_366()) return true; + } + } + return false; + } + + private boolean jj_3_42() { + if (jj_3R_53()) return true; + return false; + } + + private boolean jj_3_380() { + if (jj_scan_token(DAY)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_362()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_367()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_41() { + if (jj_3R_52()) return true; + return false; + } + + private boolean jj_3_40() { + if (jj_3R_51()) return true; + return false; + } + + private boolean jj_3_379() { + if (jj_scan_token(MONTH)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_361()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_359() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_131()) return true; + return false; + } + + private boolean jj_3_39() { + if (jj_3R_50()) return true; + return false; + } + + private boolean jj_3_360() { + if (jj_scan_token(TO)) return true; + if (jj_scan_token(MONTH)) return true; + return false; + } + + private boolean jj_3_38() { + if (jj_3R_49()) return true; + return false; + } + + private boolean jj_3_37() { + if (jj_3R_42()) return true; + return false; + } + + private boolean jj_3_36() { + if (jj_3R_48()) return true; + return false; + } + + private boolean jj_3_378() { + if (jj_scan_token(YEAR)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_359()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_360()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_35() { + if (jj_3R_47()) return true; + return false; + } + + private boolean jj_3_34() { + if (jj_3R_46()) return true; + return false; + } + + private boolean jj_3R_108() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_378()) { + jj_scanpos = xsp; + if (jj_3_379()) { + jj_scanpos = xsp; + if (jj_3_380()) { + jj_scanpos = xsp; + if (jj_3_381()) { + jj_scanpos = xsp; + if (jj_3_382()) { + jj_scanpos = xsp; + if (jj_3_383()) return true; + } + } + } + } + } + return false; + } + + private boolean jj_3R_58() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_34()) { + jj_scanpos = xsp; + if (jj_3_35()) { + jj_scanpos = xsp; + if (jj_3_36()) { + jj_scanpos = xsp; + if (jj_3_37()) { + jj_scanpos = xsp; + if (jj_3_38()) { + jj_scanpos = xsp; + if (jj_3_39()) { + jj_scanpos = xsp; + if (jj_3_40()) { + jj_scanpos = xsp; + if (jj_3_41()) { + jj_scanpos = xsp; + if (jj_3_42()) { + jj_scanpos = xsp; + if (jj_3_43()) { + jj_scanpos = xsp; + if (jj_3_44()) return true; + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_357() { + if (jj_scan_token(PLUS)) return true; + return false; + } + + private boolean jj_3_358() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_356()) { + jj_scanpos = xsp; + if (jj_3_357()) return true; + } + return false; + } + + private boolean jj_3_356() { + if (jj_scan_token(MINUS)) return true; + return false; + } + + private boolean jj_3R_88() { + if (jj_scan_token(INTERVAL)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_358()) jj_scanpos = xsp; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3R_43() { + if (jj_scan_token(DEFAULT_)) return true; + return false; + } + + private boolean jj_3_33() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_117() { + if (jj_scan_token(PERIOD)) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_32() { + if (jj_3R_43()) return true; + return false; + } + + private boolean jj_3_31() { + if (jj_3R_45()) return true; + if (jj_scan_token(NAMED_ARGUMENT_ASSIGNMENT)) return true; + return false; + } + + private boolean jj_3R_44() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_31()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_32()) { + jj_scanpos = xsp; + if (jj_3_33()) return true; + } + return false; + } + + private boolean jj_3R_130() { + return false; + } + + private boolean jj_3_354() { + if (jj_3R_123()) return true; + return false; + } + + private boolean jj_3_355() { + if (jj_scan_token(LBRACKET)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_354()) { + jj_scanpos = xsp; + if (jj_3R_130()) return true; + } + return false; + } + + private boolean jj_3_30() { + if (jj_3R_42()) return true; + return false; + } + + private boolean jj_3_29() { + if (jj_3R_43()) return true; + return false; + } + + private boolean jj_3R_175() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_28() { + if (jj_3R_45()) return true; + if (jj_scan_token(NAMED_ARGUMENT_ASSIGNMENT)) return true; + return false; + } + + private boolean jj_3R_63() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_28()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_29()) { + jj_scanpos = xsp; + if (jj_3_30()) return true; + } + return false; + } + + private boolean jj_3R_116() { + if (jj_scan_token(MAP)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_175()) { + jj_scanpos = xsp; + if (jj_3_355()) return true; + } + return false; + } + + private boolean jj_3R_129() { + return false; + } + + private boolean jj_3_352() { + if (jj_3R_123()) return true; + return false; + } + + private boolean jj_3_353() { + if (jj_scan_token(LBRACKET)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_352()) { + jj_scanpos = xsp; + if (jj_3R_129()) return true; + } + return false; + } + + private boolean jj_3R_174() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_27() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_44()) return true; + return false; + } + + private boolean jj_3R_115() { + if (jj_scan_token(ARRAY)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_174()) { + jj_scanpos = xsp; + if (jj_3_353()) return true; + } + return false; + } + + private boolean jj_3_25() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_26() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_24()) { + jj_scanpos = xsp; + if (jj_3_25()) return true; + } + return false; + } + + private boolean jj_3_24() { + if (jj_scan_token(DISTINCT)) return true; + return false; + } + + private boolean jj_3_350() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_146() { + if (jj_scan_token(LPAREN)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_26()) jj_scanpos = xsp; + if (jj_3R_63()) return true; + return false; + } + + private boolean jj_3_351() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_173() { + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_23() { + if (jj_3R_43()) return true; + return false; + } + + private boolean jj_3_22() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_114() { + if (jj_scan_token(MULTISET)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_173()) { + jj_scanpos = xsp; + if (jj_3_351()) return true; + } + return false; + } + + private boolean jj_3_21() { + if (jj_scan_token(COMMA)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_22()) { + jj_scanpos = xsp; + if (jj_3_23()) return true; + } + return false; + } + + private boolean jj_3_349() { + if (jj_scan_token(TIMESTAMP)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_20() { + if (jj_3R_43()) return true; + return false; + } + + private boolean jj_3_19() { + if (jj_3R_42()) return true; + return false; + } + + private boolean jj_3_348() { + if (jj_scan_token(TIME)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_347() { + if (jj_scan_token(DATE)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_346() { + if (jj_scan_token(LBRACE_TS)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3R_82() { + if (jj_scan_token(LPAREN)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_19()) { + jj_scanpos = xsp; + if (jj_3_20()) return true; + } + return false; + } + + private boolean jj_3_345() { + if (jj_scan_token(LBRACE_T)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_344() { + if (jj_scan_token(LBRACE_D)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3R_128() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_344()) { + jj_scanpos = xsp; + if (jj_3_345()) { + jj_scanpos = xsp; + if (jj_3_346()) { + jj_scanpos = xsp; + if (jj_3_347()) { + jj_scanpos = xsp; + if (jj_3_348()) { + jj_scanpos = xsp; + if (jj_3_349()) return true; + } + } + } + } + } + return false; + } + + private boolean jj_3_18() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_341() { + if (jj_scan_token(UESCAPE)) return true; + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3R_76() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_42()) return true; + return false; + } + + private boolean jj_3_340() { + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_339() { + if (jj_scan_token(UNICODE_STRING_LITERAL)) return true; + return false; + } + + private boolean jj_3_338() { + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_337() { + if (jj_scan_token(PREFIXED_STRING_LITERAL)) return true; + return false; + } + + private boolean jj_3_7() { + if (jj_scan_token(ROWS)) return true; + return false; + } + + private boolean jj_3_343() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_337()) { + jj_scanpos = xsp; + if (jj_3_338()) { + jj_scanpos = xsp; + if (jj_3_339()) return true; + } + } + while (true) { + xsp = jj_scanpos; + if (jj_3_340()) { jj_scanpos = xsp; break; } + } + xsp = jj_scanpos; + if (jj_3_341()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_8() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_6()) { + jj_scanpos = xsp; + if (jj_3_7()) return true; + } + return false; + } + + private boolean jj_3_6() { + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3R_75() { + if (jj_scan_token(LPAREN)) return true; + if (jj_3R_42()) return true; + return false; + } + + private boolean jj_3_336() { + if (jj_scan_token(QUOTED_STRING)) return true; + return false; + } + + private boolean jj_3_17() { + if (jj_3R_40()) return true; + return false; + } + + private boolean jj_3_16() { + if (jj_3R_39()) return true; + return false; + } + + private boolean jj_3_11() { + if (jj_scan_token(NEXT)) return true; + return false; + } + + private boolean jj_3_15() { + if (jj_3R_38()) return true; + return false; + } + + private boolean jj_3R_100() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_15()) { + jj_scanpos = xsp; + if (jj_3_16()) { + jj_scanpos = xsp; + if (jj_3_17()) return true; + } + } + return false; + } + + private boolean jj_3_342() { + if (jj_scan_token(BINARY_STRING_LITERAL)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_336()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3R_126() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_342()) { + jj_scanpos = xsp; + if (jj_3_343()) return true; + } + return false; + } + + private boolean jj_3_13() { + if (jj_scan_token(ROWS)) return true; + return false; + } + + private boolean jj_3_10() { + if (jj_scan_token(FIRST)) return true; + return false; + } + + private boolean jj_3_12() { + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3_14() { + if (jj_scan_token(FETCH)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_10()) { + jj_scanpos = xsp; + if (jj_3_11()) return true; + } + return false; + } + + private boolean jj_3_9() { + if (jj_scan_token(OFFSET)) return true; + if (jj_3R_37()) return true; + return false; + } + + private boolean jj_3_4() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_3() { + if (jj_3R_37()) return true; + return false; + } + + private boolean jj_3_335() { + if (jj_scan_token(NULL)) return true; + return false; + } + + private boolean jj_3_334() { + if (jj_scan_token(UNKNOWN)) return true; + return false; + } + + private boolean jj_3_333() { + if (jj_scan_token(FALSE)) return true; + return false; + } + + private boolean jj_3_332() { + if (jj_scan_token(TRUE)) return true; + return false; + } + + private boolean jj_3R_127() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_332()) { + jj_scanpos = xsp; + if (jj_3_333()) { + jj_scanpos = xsp; + if (jj_3_334()) { + jj_scanpos = xsp; + if (jj_3_335()) return true; + } + } + } + return false; + } + + private boolean jj_3_2() { + if (jj_3R_37()) return true; + if (jj_scan_token(COMMA)) return true; + return false; + } + + private boolean jj_3_5() { + if (jj_scan_token(LIMIT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_2()) { + jj_scanpos = xsp; + if (jj_3_3()) { + jj_scanpos = xsp; + if (jj_3_4()) return true; + } + } + return false; + } + + private boolean jj_3_331() { + if (jj_3R_93()) return true; + return false; + } + + private boolean jj_3_1() { + if (jj_3R_36()) return true; + return false; + } + + private boolean jj_3_330() { + if (jj_scan_token(MINUS)) return true; + if (jj_3R_93()) return true; + return false; + } + + private boolean jj_3_329() { + if (jj_scan_token(PLUS)) return true; + if (jj_3R_93()) return true; + return false; + } + + private boolean jj_3R_125() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_329()) { + jj_scanpos = xsp; + if (jj_3_330()) { + jj_scanpos = xsp; + if (jj_3_331()) return true; + } + } + return false; + } + + private boolean jj_3R_42() { + if (jj_3R_157()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_1()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_5()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_9()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_14()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_328() { + if (jj_scan_token(APPROX_NUMERIC_LITERAL)) return true; + return false; + } + + private boolean jj_3_327() { + if (jj_scan_token(DECIMAL_NUMERIC_LITERAL)) return true; + return false; + } + + private boolean jj_3_326() { + if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; + return false; + } + + private boolean jj_3R_93() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_326()) { + jj_scanpos = xsp; + if (jj_3_327()) { + jj_scanpos = xsp; + if (jj_3_328()) return true; + } + } + return false; + } + + private boolean jj_3R_183() { + return false; + } + + private boolean jj_3_325() { + if (jj_3R_88()) return true; + return false; + } + + private boolean jj_3_324() { + if (jj_3R_128()) return true; + return false; + } + + private boolean jj_3_323() { + if (jj_3R_127()) return true; + return false; + } + + private boolean jj_3_322() { + if (jj_3R_126()) return true; + return false; + } + + private boolean jj_3_321() { + if (jj_3R_125()) return true; + return false; + } + + private boolean jj_3R_167() { + jj_lookingAhead = true; + jj_semLA = false; + jj_lookingAhead = false; + if (!jj_semLA || jj_3R_183()) return true; + if (jj_scan_token(ZONE)) return true; + return false; + } + + private boolean jj_3R_124() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_321()) { + jj_scanpos = xsp; + if (jj_3_322()) { + jj_scanpos = xsp; + if (jj_3_323()) { + jj_scanpos = xsp; + if (jj_3_324()) { + jj_scanpos = xsp; + if (jj_3_325()) return true; + } + } + } + } + return false; + } + + private boolean jj_3_320() { + if (jj_scan_token(SESSION)) return true; + return false; + } + + private boolean jj_3_319() { + if (jj_scan_token(SYSTEM)) return true; + return false; + } + + private boolean jj_3R_158() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_319()) { + jj_scanpos = xsp; + if (jj_3_320()) return true; + } + return false; + } + + private boolean jj_3R_48() { + if (jj_scan_token(ALTER)) return true; + if (jj_3R_158()) return true; + return false; + } + + private boolean jj_3_316() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_315() { + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_318() { + if (jj_scan_token(RESET)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_315()) { + jj_scanpos = xsp; + if (jj_3_316()) return true; + } + return false; + } + + private boolean jj_3_314() { + if (jj_scan_token(ON)) return true; + return false; + } + + private boolean jj_3_313() { + if (jj_3R_45()) return true; + return false; + } + + private boolean jj_3_312() { + if (jj_3R_124()) return true; + return false; + } + + private boolean jj_3_317() { + if (jj_scan_token(SET)) return true; + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3R_47() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_317()) { + jj_scanpos = xsp; + if (jj_3_318()) return true; + } + return false; + } + + private boolean jj_3_311() { + if (jj_scan_token(CURRENT)) return true; + return false; + } + + private boolean jj_3_310() { + if (jj_scan_token(NEXT)) return true; + return false; + } + + private boolean jj_3R_122() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_310()) { + jj_scanpos = xsp; + if (jj_3_311()) return true; + } + if (jj_scan_token(VALUE)) return true; + return false; + } + + private boolean jj_3_309() { + if (jj_scan_token(ELSE)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_308() { + if (jj_scan_token(WHEN)) return true; + if (jj_3R_123()) return true; + return false; + } + + private boolean jj_3_307() { + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3R_121() { + if (jj_scan_token(CASE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_307()) jj_scanpos = xsp; + if (jj_3_308()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3_308()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3_306() { + if (jj_3R_122()) return true; + return false; + } + + private boolean jj_3_301() { + Token xsp; + xsp = jj_scanpos; + if (jj_scan_token(483)) jj_scanpos = xsp; + if (jj_3R_118()) return true; + if (jj_scan_token(LPAREN)) return true; + return false; + } + + private boolean jj_3_305() { + if (jj_3R_121()) return true; + return false; + } + + private boolean jj_3_304() { + if (jj_3R_120()) return true; + return false; + } + + private boolean jj_3_303() { + if (jj_3R_61()) return true; + return false; + } + + private boolean jj_3_302() { + if (jj_3R_119()) return true; + return false; + } + + private boolean jj_3R_171() { + if (jj_3R_179()) return true; + return false; + } + + private boolean jj_3_300() { + if (jj_3R_117()) return true; + return false; + } + + private boolean jj_3_299() { + if (jj_3R_116()) return true; + return false; + } + + private boolean jj_3_298() { + if (jj_3R_115()) return true; + return false; + } + + private boolean jj_3_297() { + if (jj_3R_114()) return true; + return false; + } + + private boolean jj_3_296() { + if (jj_3R_113()) return true; + return false; + } + + private boolean jj_3_295() { + if (jj_3R_112()) return true; + return false; + } + + private boolean jj_3_294() { + if (jj_3R_111()) return true; + return false; + } + + private boolean jj_3R_170() { + if (jj_3R_124()) return true; + return false; + } + + private boolean jj_3R_109() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_170()) { + jj_scanpos = xsp; + if (jj_3_294()) { + jj_scanpos = xsp; + if (jj_3_295()) { + jj_scanpos = xsp; + if (jj_3_296()) { + jj_scanpos = xsp; + if (jj_3_297()) { + jj_scanpos = xsp; + if (jj_3_298()) { + jj_scanpos = xsp; + if (jj_3_299()) { + jj_scanpos = xsp; + if (jj_3_300()) { + jj_scanpos = xsp; + if (jj_3R_171()) { + jj_scanpos = xsp; + if (jj_3_302()) { + jj_scanpos = xsp; + if (jj_3_303()) { + jj_scanpos = xsp; + if (jj_3_304()) { + jj_scanpos = xsp; + if (jj_3_305()) { + jj_scanpos = xsp; + if (jj_3_306()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + private boolean jj_3_293() { + if (jj_3R_111()) return true; + return false; + } + + private boolean jj_3_292() { + if (jj_3R_93()) return true; + return false; + } + + private boolean jj_3R_37() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_292()) { + jj_scanpos = xsp; + if (jj_3_293()) return true; + } + return false; + } + + private boolean jj_3_291() { + if (jj_scan_token(EQUALS)) return true; + return false; + } + + private boolean jj_3_290() { + if (jj_scan_token(SUCCEEDS)) return true; + return false; + } + + private boolean jj_3_289() { + if (jj_scan_token(IMMEDIATELY)) return true; + if (jj_scan_token(SUCCEEDS)) return true; + return false; + } + + private boolean jj_3_288() { + if (jj_scan_token(PRECEDES)) return true; + return false; + } + + private boolean jj_3_287() { + if (jj_scan_token(IMMEDIATELY)) return true; + if (jj_scan_token(PRECEDES)) return true; + return false; + } + + private boolean jj_3_286() { + if (jj_scan_token(OVERLAPS)) return true; + return false; + } + + private boolean jj_3R_138() { + if (jj_3R_177()) return true; + return false; + } + + private boolean jj_3R_141() { + if (jj_3R_167()) return true; + return false; + } + + private boolean jj_3R_160() { + if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;} + return false; + } + + private boolean jj_3R_155() { + if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;} + return false; + } + + private boolean jj_3R_74() { + return false; + } + + private boolean jj_3_281() { + if (jj_3R_108()) return true; + return false; + } + + private boolean jj_3_1026() { + if (jj_scan_token(ZONE)) return true; + return false; + } + + private boolean jj_3R_77() { + if (jj_3R_167()) return true; + return false; + } + + private boolean jj_3_1025() { + if (jj_scan_token(XML)) return true; + return false; + } + + private boolean jj_3_1024() { + if (jj_scan_token(WRITE)) return true; + return false; + } + + private boolean jj_3_1023() { + if (jj_scan_token(WORK)) return true; + return false; + } + + private boolean jj_3_1022() { + if (jj_scan_token(WRAPPER)) return true; + return false; + } + + private boolean jj_3_1021() { + if (jj_scan_token(WEEK)) return true; + return false; + } + + private boolean jj_3_280() { + if (jj_scan_token(ROW)) return true; + return false; + } + + private boolean jj_3_1020() { + if (jj_scan_token(VIEW)) return true; + return false; + } + + private boolean jj_3_1019() { + if (jj_scan_token(VERSION)) return true; + return false; + } + + private boolean jj_3_1018() { + if (jj_scan_token(USER_DEFINED_TYPE_SCHEMA)) return true; + return false; + } + + private boolean jj_3_1017() { + if (jj_scan_token(USER_DEFINED_TYPE_NAME)) return true; + return false; + } + + private boolean jj_3_1016() { + if (jj_scan_token(USER_DEFINED_TYPE_CODE)) return true; + return false; + } + + private boolean jj_3_285() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_280()) jj_scanpos = xsp; + if (jj_3R_76()) return true; + return false; + } + + private boolean jj_3_1015() { + if (jj_scan_token(USER_DEFINED_TYPE_CATALOG)) return true; + return false; + } + + private boolean jj_3_1014() { + if (jj_scan_token(USAGE)) return true; + return false; + } + + private boolean jj_3_1013() { + if (jj_scan_token(UNNAMED)) return true; + return false; + } + + private boolean jj_3_1012() { + if (jj_scan_token(UNDER)) return true; + return false; + } + + private boolean jj_3R_132() { + if (jj_3R_176()) return true; + return false; + } + + private boolean jj_3_1011() { + if (jj_scan_token(UNCOMMITTED)) return true; + return false; + } + + private boolean jj_3_1010() { + if (jj_scan_token(UNBOUNDED)) return true; + return false; + } + + private boolean jj_3_1009() { + if (jj_scan_token(TYPE)) return true; + return false; + } + + private boolean jj_3_1008() { + if (jj_scan_token(TRIGGER_SCHEMA)) return true; + return false; + } + + private boolean jj_3_1007() { + if (jj_scan_token(TRIGGER_NAME)) return true; + return false; + } + + private boolean jj_3_1006() { + if (jj_scan_token(TRIGGER_CATALOG)) return true; + return false; + } + + private boolean jj_3_1005() { + if (jj_scan_token(TRANSFORMS)) return true; + return false; + } + + private boolean jj_3_1004() { + if (jj_scan_token(TRANSFORM)) return true; + return false; + } + + private boolean jj_3_1003() { + if (jj_scan_token(TRANSACTIONS_ROLLED_BACK)) return true; + return false; + } + + private boolean jj_3_1002() { + if (jj_scan_token(TRANSACTIONS_COMMITTED)) return true; + return false; + } + + private boolean jj_3_284() { + if (jj_scan_token(ROW)) return true; + if (jj_3R_68()) return true; + return false; + } + + private boolean jj_3_1001() { + if (jj_scan_token(TRANSACTIONS_ACTIVE)) return true; + return false; + } + + private boolean jj_3_1000() { + if (jj_scan_token(TRANSACTION)) return true; + return false; + } + + private boolean jj_3_283() { + if (jj_3R_110()) return true; + return false; + } + + private boolean jj_3_999() { + if (jj_scan_token(TOP_LEVEL_COUNT)) return true; + return false; + } + + private boolean jj_3_998() { + if (jj_scan_token(TIMESTAMPDIFF)) return true; + return false; + } + + private boolean jj_3_997() { + if (jj_scan_token(TIMESTAMPADD)) return true; + return false; + } + + private boolean jj_3_996() { + if (jj_scan_token(TIES)) return true; + return false; + } + + private boolean jj_3_995() { + if (jj_scan_token(TEMPORARY)) return true; + return false; + } + + private boolean jj_3_994() { + if (jj_scan_token(TABLE_NAME)) return true; + return false; + } + + private boolean jj_3_993() { + if (jj_scan_token(SUBSTITUTE)) return true; + return false; + } + + private boolean jj_3_282() { + if (jj_3R_109()) return true; + return false; + } + + private boolean jj_3R_103() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_282()) { + jj_scanpos = xsp; + if (jj_3_283()) { + jj_scanpos = xsp; + if (jj_3_284()) { + jj_scanpos = xsp; + if (jj_3_285()) return true; + } + } + } + return false; + } + + private boolean jj_3_992() { + if (jj_scan_token(SUBCLASS_ORIGIN)) return true; + return false; + } + + private boolean jj_3_991() { + if (jj_scan_token(STYLE)) return true; + return false; + } + + private boolean jj_3_990() { + if (jj_scan_token(STRUCTURE)) return true; + return false; + } + + private boolean jj_3_989() { + if (jj_scan_token(STATEMENT)) return true; + return false; + } + + private boolean jj_3_988() { + if (jj_scan_token(STATE)) return true; + return false; + } + + private boolean jj_3_987() { + if (jj_scan_token(SQL_VARCHAR)) return true; + return false; + } + + private boolean jj_3_986() { + if (jj_scan_token(SQL_VARBINARY)) return true; + return false; + } + + private boolean jj_3_985() { + if (jj_scan_token(SQL_TSI_YEAR)) return true; + return false; + } + + private boolean jj_3_984() { + if (jj_scan_token(SQL_TSI_WEEK)) return true; + return false; + } + + private boolean jj_3_983() { + if (jj_scan_token(SQL_TSI_SECOND)) return true; + return false; + } + + private boolean jj_3_982() { + if (jj_scan_token(SQL_TSI_QUARTER)) return true; + return false; + } + + private boolean jj_3_981() { + if (jj_scan_token(SQL_TSI_MONTH)) return true; + return false; + } + + private boolean jj_3_980() { + if (jj_scan_token(SQL_TSI_MINUTE)) return true; + return false; + } + + private boolean jj_3_979() { + if (jj_scan_token(SQL_TSI_MICROSECOND)) return true; + return false; + } + + private boolean jj_3_978() { + if (jj_scan_token(SQL_TSI_HOUR)) return true; + return false; + } + + private boolean jj_3_977() { + if (jj_scan_token(SQL_TSI_FRAC_SECOND)) return true; + return false; + } + + private boolean jj_3_976() { + if (jj_scan_token(SQL_TSI_DAY)) return true; + return false; + } + + private boolean jj_3_975() { + if (jj_scan_token(SQL_TINYINT)) return true; + return false; + } + + private boolean jj_3_974() { + if (jj_scan_token(SQL_TIMESTAMP)) return true; + return false; + } + + private boolean jj_3_973() { + if (jj_scan_token(SQL_TIME)) return true; + return false; + } + + private boolean jj_3_972() { + if (jj_scan_token(SQL_SMALLINT)) return true; + return false; + } + + private boolean jj_3_971() { + if (jj_scan_token(SQL_REAL)) return true; + return false; + } + + private boolean jj_3_970() { + if (jj_scan_token(SQL_NVARCHAR)) return true; + return false; + } + + private boolean jj_3_279() { + if (jj_scan_token(NE2)) return true; + return false; + } + + private boolean jj_3_969() { + if (jj_scan_token(SQL_NUMERIC)) return true; + return false; + } + + private boolean jj_3_968() { + if (jj_scan_token(SQL_NCLOB)) return true; + return false; + } + + private boolean jj_3_278() { + if (jj_scan_token(NE)) return true; + return false; + } + + private boolean jj_3_967() { + if (jj_scan_token(SQL_NCHAR)) return true; + return false; + } + + private boolean jj_3_966() { + if (jj_scan_token(SQL_LONGVARCHAR)) return true; + return false; + } + + private boolean jj_3_277() { + if (jj_scan_token(EQ)) return true; + return false; + } + + private boolean jj_3_965() { + if (jj_scan_token(SQL_LONGVARNCHAR)) return true; + return false; + } + + private boolean jj_3_964() { + if (jj_scan_token(SQL_LONGVARBINARY)) return true; + return false; + } + + private boolean jj_3_276() { + if (jj_scan_token(GE)) return true; + return false; + } + + private boolean jj_3_963() { + if (jj_scan_token(SQL_INTERVAL_YEAR_TO_MONTH)) return true; + return false; + } + + private boolean jj_3_962() { + if (jj_scan_token(SQL_INTERVAL_YEAR)) return true; + return false; + } + + private boolean jj_3_275() { + if (jj_scan_token(GT)) return true; + return false; + } + + private boolean jj_3_961() { + if (jj_scan_token(SQL_INTERVAL_SECOND)) return true; + return false; + } + + private boolean jj_3_960() { + if (jj_scan_token(SQL_INTERVAL_MONTH)) return true; + return false; + } + + private boolean jj_3_274() { + if (jj_scan_token(LE)) return true; + return false; + } + + private boolean jj_3_959() { + if (jj_scan_token(SQL_INTERVAL_MINUTE_TO_SECOND)) return true; + return false; + } + + private boolean jj_3_958() { + if (jj_scan_token(SQL_INTERVAL_MINUTE)) return true; + return false; + } + + private boolean jj_3_273() { + if (jj_scan_token(LT)) return true; + return false; + } + + private boolean jj_3R_102() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_273()) { + jj_scanpos = xsp; + if (jj_3_274()) { + jj_scanpos = xsp; + if (jj_3_275()) { + jj_scanpos = xsp; + if (jj_3_276()) { + jj_scanpos = xsp; + if (jj_3_277()) { + jj_scanpos = xsp; + if (jj_3_278()) { + jj_scanpos = xsp; + if (jj_3_279()) return true; + } + } + } + } + } + } + return false; + } + + private boolean jj_3_957() { + if (jj_scan_token(SQL_INTERVAL_HOUR_TO_SECOND)) return true; + return false; + } + + private boolean jj_3_956() { + if (jj_scan_token(SQL_INTERVAL_HOUR_TO_MINUTE)) return true; + return false; + } + + private boolean jj_3_955() { + if (jj_scan_token(SQL_INTERVAL_HOUR)) return true; + return false; + } + + private boolean jj_3_954() { + if (jj_scan_token(SQL_INTERVAL_DAY_TO_SECOND)) return true; + return false; + } + + private boolean jj_3_953() { + if (jj_scan_token(SQL_INTERVAL_DAY_TO_MINUTE)) return true; + return false; + } + + private boolean jj_3_952() { + if (jj_scan_token(SQL_INTERVAL_DAY_TO_HOUR)) return true; + return false; + } + + private boolean jj_3_951() { + if (jj_scan_token(SQL_INTERVAL_DAY)) return true; + return false; + } + + private boolean jj_3R_182() { + return false; + } + + private boolean jj_3_950() { + if (jj_scan_token(SQL_INTEGER)) return true; + return false; + } + + private boolean jj_3_949() { + if (jj_scan_token(SQL_FLOAT)) return true; + return false; + } + + private boolean jj_3_948() { + if (jj_scan_token(SQL_DOUBLE)) return true; + return false; + } + + private boolean jj_3_947() { + if (jj_scan_token(SQL_DECIMAL)) return true; + return false; + } + + private boolean jj_3_270() { + if (jj_3R_107()) return true; + return false; + } + + private boolean jj_3_946() { + if (jj_scan_token(SQL_DATE)) return true; + return false; + } + + private boolean jj_3_945() { + if (jj_scan_token(SQL_CLOB)) return true; + return false; + } + + private boolean jj_3_944() { + if (jj_scan_token(SQL_CHAR)) return true; + return false; + } + + private boolean jj_3_943() { + if (jj_scan_token(SQL_BOOLEAN)) return true; + return false; + } + + private boolean jj_3_942() { + if (jj_scan_token(SQL_BLOB)) return true; + return false; + } + + private boolean jj_3_264() { + if (jj_scan_token(DOT)) return true; + if (jj_3R_78()) return true; + return false; + } + + private boolean jj_3_941() { + if (jj_scan_token(SQL_BIT)) return true; + return false; + } + + private boolean jj_3_940() { + if (jj_scan_token(SQL_BINARY)) return true; + return false; + } + + private boolean jj_3_939() { + if (jj_scan_token(SQL_BIGINT)) return true; + return false; + } + + private boolean jj_3_938() { + if (jj_scan_token(SPECIFIC_NAME)) return true; + return false; + } + + private boolean jj_3_937() { + if (jj_scan_token(SPACE)) return true; + return false; + } + + private boolean jj_3_936() { + if (jj_scan_token(SOURCE)) return true; + return false; + } + + private boolean jj_3_935() { + if (jj_scan_token(SIZE)) return true; + return false; + } + + private boolean jj_3_934() { + if (jj_scan_token(SIMPLE)) return true; + return false; + } + + private boolean jj_3_933() { + if (jj_scan_token(SETS)) return true; + return false; + } + + private boolean jj_3_932() { + if (jj_scan_token(SESSION)) return true; + return false; + } + + private boolean jj_3_931() { + if (jj_scan_token(SERVER_NAME)) return true; + return false; + } + + private boolean jj_3_930() { + if (jj_scan_token(SERVER)) return true; + return false; + } + + private boolean jj_3_929() { + if (jj_scan_token(SERIALIZABLE)) return true; + return false; + } + + private boolean jj_3_269() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_41()) return true; + return false; + } + + private boolean jj_3_928() { + if (jj_scan_token(SEQUENCE)) return true; + return false; + } + + private boolean jj_3_927() { + if (jj_scan_token(SELF)) return true; + return false; + } + + private boolean jj_3_926() { + if (jj_scan_token(SECURITY)) return true; + return false; + } + + private boolean jj_3_925() { + if (jj_scan_token(SECTION)) return true; + return false; + } + + private boolean jj_3_924() { + if (jj_scan_token(SCOPE_SCHEMA)) return true; + return false; + } + + private boolean jj_3_923() { + if (jj_scan_token(SCOPE_NAME)) return true; + return false; + } + + private boolean jj_3_268() { + if (jj_3R_105()) return true; + if (jj_3R_106()) return true; + return false; + } + + private boolean jj_3_922() { + if (jj_scan_token(SCOPE_CATALOGS)) return true; + return false; + } + + private boolean jj_3_921() { + if (jj_scan_token(SCHEMA_NAME)) return true; + return false; + } + + private boolean jj_3_920() { + if (jj_scan_token(SCHEMA)) return true; + return false; + } + + private boolean jj_3_919() { + if (jj_scan_token(SCALE)) return true; + return false; + } + + private boolean jj_3_918() { + if (jj_scan_token(ROW_COUNT)) return true; + return false; + } + + private boolean jj_3_917() { + if (jj_scan_token(ROUTINE_SCHEMA)) return true; + return false; + } + + private boolean jj_3_263() { + if (jj_scan_token(ESCAPE)) return true; + if (jj_3R_103()) return true; + return false; + } + + private boolean jj_3_916() { + if (jj_scan_token(ROUTINE_NAME)) return true; + return false; + } + + private boolean jj_3_915() { + if (jj_scan_token(ROUTINE_CATALOG)) return true; + return false; + } + + private boolean jj_3_914() { + if (jj_scan_token(ROUTINE)) return true; + return false; + } + + private boolean jj_3_913() { + if (jj_scan_token(ROLE)) return true; + return false; + } + + private boolean jj_3_912() { + if (jj_scan_token(RETURNED_SQLSTATE)) return true; + return false; + } + + private boolean jj_3_911() { + if (jj_scan_token(RETURNED_OCTET_LENGTH)) return true; + return false; + } + + private boolean jj_3_910() { + if (jj_scan_token(RETURNED_LENGTH)) return true; + return false; + } + + private boolean jj_3_262() { + if (jj_scan_token(SIMILAR)) return true; + if (jj_scan_token(TO)) return true; + return false; + } + + private boolean jj_3_909() { + if (jj_scan_token(RETURNED_CARDINALITY)) return true; + return false; + } + + private boolean jj_3_259() { + if (jj_scan_token(SIMILAR)) return true; + if (jj_scan_token(TO)) return true; + return false; + } + + private boolean jj_3_908() { + if (jj_scan_token(RESTRICT)) return true; + return false; + } + + private boolean jj_3_261() { + if (jj_scan_token(LIKE)) return true; + return false; + } + + private boolean jj_3_907() { + if (jj_scan_token(RESTART)) return true; + return false; + } + + private boolean jj_3_258() { + if (jj_scan_token(LIKE)) return true; + return false; + } + + private boolean jj_3_906() { + if (jj_scan_token(REPLACE)) return true; + return false; + } + + private boolean jj_3_905() { + if (jj_scan_token(REPEATABLE)) return true; + return false; + } + + private boolean jj_3_904() { + if (jj_scan_token(RELATIVE)) return true; + return false; + } + + private boolean jj_3_903() { + if (jj_scan_token(READ)) return true; + return false; + } + + private boolean jj_3_902() { + if (jj_scan_token(QUARTER)) return true; + return false; + } + + private boolean jj_3_901() { + if (jj_scan_token(PUBLIC)) return true; + return false; + } + + private boolean jj_3_260() { + if (jj_scan_token(NOT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_258()) { + jj_scanpos = xsp; + if (jj_3_259()) return true; + } + return false; + } + + private boolean jj_3_900() { + if (jj_scan_token(PRIVILEGES)) return true; + return false; + } + + private boolean jj_3_899() { + if (jj_scan_token(PRIOR)) return true; + return false; + } + + private boolean jj_3_898() { + if (jj_scan_token(PRESERVE)) return true; + return false; + } + + private boolean jj_3_897() { + if (jj_scan_token(PRECEDING)) return true; + return false; + } + + private boolean jj_3_896() { + if (jj_scan_token(PLI)) return true; + return false; + } + + private boolean jj_3_895() { + if (jj_scan_token(PLAN)) return true; + return false; + } + + private boolean jj_3_894() { + if (jj_scan_token(PLACING)) return true; + return false; + } + + private boolean jj_3_893() { + if (jj_scan_token(PATH)) return true; + return false; + } + + private boolean jj_3_892() { + if (jj_scan_token(PAST)) return true; + return false; + } + + private boolean jj_3_254() { + if (jj_scan_token(ASYMMETRIC)) return true; + return false; + } + + private boolean jj_3_267() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_260()) { + jj_scanpos = xsp; + if (jj_3_261()) { + jj_scanpos = xsp; + if (jj_3_262()) return true; + } + } + if (jj_3R_104()) return true; + return false; + } + + private boolean jj_3_891() { + if (jj_scan_token(PASSTHROUGH)) return true; + return false; + } + + private boolean jj_3_890() { + if (jj_scan_token(PASCAL)) return true; + return false; + } + + private boolean jj_3_253() { + if (jj_scan_token(SYMMETRIC)) return true; + return false; + } + + private boolean jj_3_255() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_253()) { + jj_scanpos = xsp; + if (jj_3_254()) return true; + } + return false; + } + + private boolean jj_3_889() { + if (jj_scan_token(PARTIAL)) return true; + return false; + } + + private boolean jj_3_888() { + if (jj_scan_token(PARAMETER_SPECIFIC_SCHEMA)) return true; + return false; + } + + private boolean jj_3_887() { + if (jj_scan_token(PARAMETER_SPECIFIC_NAME)) return true; + return false; + } + + private boolean jj_3_886() { + if (jj_scan_token(PARAMETER_SPECIFIC_CATALOG)) return true; + return false; + } + + private boolean jj_3_885() { + if (jj_scan_token(PARAMETER_ORDINAL_POSITION)) return true; + return false; + } + + private boolean jj_3_884() { + if (jj_scan_token(PARAMETER_NAME)) return true; + return false; + } + + private boolean jj_3_883() { + if (jj_scan_token(PARAMETER_MODE)) return true; + return false; + } + + private boolean jj_3_882() { + if (jj_scan_token(PAD)) return true; + return false; + } + + private boolean jj_3_881() { + if (jj_scan_token(OVERRIDING)) return true; + return false; + } + + private boolean jj_3_251() { + if (jj_scan_token(ASYMMETRIC)) return true; + return false; + } + + private boolean jj_3_880() { + if (jj_scan_token(OUTPUT)) return true; + return false; + } + + private boolean jj_3_257() { + if (jj_scan_token(BETWEEN)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_255()) jj_scanpos = xsp; + return false; + } + + private boolean jj_3_879() { + if (jj_scan_token(OTHERS)) return true; + return false; + } + + private boolean jj_3_250() { + if (jj_scan_token(SYMMETRIC)) return true; + return false; + } + + private boolean jj_3_252() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_250()) { + jj_scanpos = xsp; + if (jj_3_251()) return true; + } + return false; + } + + private boolean jj_3_878() { + if (jj_scan_token(ORDINALITY)) return true; + return false; + } + + private boolean jj_3_877() { + if (jj_scan_token(ORDERING)) return true; + return false; + } + + private boolean jj_3_876() { + if (jj_scan_token(OPTIONS)) return true; + return false; + } + + private boolean jj_3_875() { + if (jj_scan_token(OPTION)) return true; + return false; + } + + private boolean jj_3_874() { + if (jj_scan_token(OCTETS)) return true; + return false; + } + + private boolean jj_3_873() { + if (jj_scan_token(OBJECT)) return true; + return false; + } + + private boolean jj_3_872() { + if (jj_scan_token(NUMBER)) return true; + return false; + } + + private boolean jj_3_871() { + if (jj_scan_token(NULLS)) return true; + return false; + } + + private boolean jj_3_870() { + if (jj_scan_token(NULLABLE)) return true; + return false; + } + + private boolean jj_3_256() { + if (jj_scan_token(NOT)) return true; + if (jj_scan_token(BETWEEN)) return true; + return false; + } + + private boolean jj_3_869() { + if (jj_scan_token(NORMALIZED)) return true; + return false; + } + + private boolean jj_3_868() { + if (jj_scan_token(NESTING)) return true; + return false; + } + + private boolean jj_3_867() { + if (jj_scan_token(NAMES)) return true; + return false; + } + + private boolean jj_3_866() { + if (jj_scan_token(NAME)) return true; + return false; + } + + private boolean jj_3_865() { + if (jj_scan_token(MUMPS)) return true; + return false; + } + + private boolean jj_3_864() { + if (jj_scan_token(MORE_)) return true; + return false; + } + + private boolean jj_3_863() { + if (jj_scan_token(MINVALUE)) return true; + return false; + } + + private boolean jj_3_862() { + if (jj_scan_token(MILLENNIUM)) return true; + return false; + } + + private boolean jj_3_266() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_256()) { + jj_scanpos = xsp; + if (jj_3_257()) return true; + } + if (jj_3R_103()) return true; + return false; + } + + private boolean jj_3_861() { + if (jj_scan_token(MESSAGE_TEXT)) return true; + return false; + } + + private boolean jj_3_860() { + if (jj_scan_token(MESSAGE_OCTET_LENGTH)) return true; + return false; + } + + private boolean jj_3_859() { + if (jj_scan_token(MESSAGE_LENGTH)) return true; + return false; + } + + private boolean jj_3_858() { + if (jj_scan_token(MICROSECOND)) return true; + return false; + } + + private boolean jj_3_857() { + if (jj_scan_token(MAXVALUE)) return true; + return false; + } + + private boolean jj_3_856() { + if (jj_scan_token(MATCHED)) return true; + return false; + } + + private boolean jj_3_855() { + if (jj_scan_token(MAP)) return true; + return false; + } + + private boolean jj_3_854() { + if (jj_scan_token(M)) return true; + return false; + } + + private boolean jj_3_853() { + if (jj_scan_token(LOCATOR)) return true; + return false; + } + + private boolean jj_3_852() { + if (jj_scan_token(LIBRARY)) return true; + return false; + } + + private boolean jj_3_851() { + if (jj_scan_token(LEVEL)) return true; + return false; + } + + private boolean jj_3_850() { + if (jj_scan_token(LENGTH)) return true; + return false; + } + + private boolean jj_3_849() { + if (jj_scan_token(LAST)) return true; + return false; + } + + private boolean jj_3_246() { + if (jj_scan_token(ALL)) return true; + return false; + } + + private boolean jj_3_848() { + if (jj_scan_token(LABEL)) return true; + return false; + } + + private boolean jj_3_847() { + if (jj_scan_token(KEY_TYPE)) return true; + return false; + } + + private boolean jj_3_245() { + if (jj_scan_token(ANY)) return true; + return false; + } + + private boolean jj_3_846() { + if (jj_scan_token(KEY_MEMBER)) return true; + return false; + } + + private boolean jj_3_845() { + if (jj_scan_token(KEY)) return true; + return false; + } + + private boolean jj_3_244() { + if (jj_scan_token(SOME)) return true; + return false; + } + + private boolean jj_3_844() { + if (jj_scan_token(K)) return true; + return false; + } + + private boolean jj_3_843() { + if (jj_scan_token(JSON)) return true; + return false; + } + + private boolean jj_3_842() { + if (jj_scan_token(JAVA)) return true; + return false; + } + + private boolean jj_3_841() { + if (jj_scan_token(ISOLATION)) return true; + return false; + } + + private boolean jj_3_840() { + if (jj_scan_token(INVOKER)) return true; + return false; + } + + private boolean jj_3_839() { + if (jj_scan_token(INSTANTIABLE)) return true; + return false; + } + + private boolean jj_3_838() { + if (jj_scan_token(INSTANCE)) return true; + return false; + } + + private boolean jj_3_249() { + if (jj_3R_102()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_244()) { + jj_scanpos = xsp; + if (jj_3_245()) { + jj_scanpos = xsp; + if (jj_3_246()) return true; + } + } + return false; + } + + private boolean jj_3_837() { + if (jj_scan_token(INPUT)) return true; + return false; + } + + private boolean jj_3_836() { + if (jj_scan_token(INITIALLY)) return true; + return false; + } + + private boolean jj_3_248() { + if (jj_scan_token(IN)) return true; + return false; + } + + private boolean jj_3_835() { + if (jj_scan_token(INCREMENT)) return true; + return false; + } + + private boolean jj_3_834() { + if (jj_scan_token(INCLUDING)) return true; + return false; + } + + private boolean jj_3_247() { + if (jj_scan_token(NOT)) return true; + if (jj_scan_token(IN)) return true; + return false; + } + + private boolean jj_3_833() { + if (jj_scan_token(IMPLEMENTATION)) return true; + return false; + } + + private boolean jj_3_832() { + if (jj_scan_token(IMMEDIATELY)) return true; + return false; + } + + private boolean jj_3_831() { + if (jj_scan_token(IMMEDIATE)) return true; + return false; + } + + private boolean jj_3_830() { + if (jj_scan_token(HIERARCHY)) return true; + return false; + } + + private boolean jj_3_829() { + if (jj_scan_token(GRANTED)) return true; + return false; + } + + private boolean jj_3_828() { + if (jj_scan_token(GOTO)) return true; + return false; + } + + private boolean jj_3_827() { + if (jj_scan_token(GO)) return true; + return false; + } + + private boolean jj_3_826() { + if (jj_scan_token(GEOMETRY)) return true; + return false; + } + + private boolean jj_3_265() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_247()) { + jj_scanpos = xsp; + if (jj_3_248()) { + jj_scanpos = xsp; + if (jj_3_249()) return true; + } + } + if (jj_3R_76()) return true; + return false; + } + + private boolean jj_3_825() { + if (jj_scan_token(GENERATED)) return true; + return false; + } + + private boolean jj_3_824() { + if (jj_scan_token(GENERAL)) return true; + return false; + } + + private boolean jj_3_823() { + if (jj_scan_token(G)) return true; + return false; + } + + private boolean jj_3_822() { + if (jj_scan_token(FRAC_SECOND)) return true; + return false; + } + + private boolean jj_3_821() { + if (jj_scan_token(FOUND)) return true; + return false; + } + + private boolean jj_3_820() { + if (jj_scan_token(FORTRAN)) return true; + return false; + } + + private boolean jj_3_819() { + if (jj_scan_token(FOLLOWING)) return true; + return false; + } + + private boolean jj_3_818() { + if (jj_scan_token(FIRST)) return true; + return false; + } + + private boolean jj_3_271() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_265()) { + jj_scanpos = xsp; + if (jj_3_266()) { + jj_scanpos = xsp; + if (jj_3_267()) { + jj_scanpos = xsp; + if (jj_3_268()) { + jj_scanpos = xsp; + if (jj_3_269()) { + jj_scanpos = xsp; + if (jj_3_270()) return true; + } + } + } + } + } + return false; + } + + private boolean jj_3_817() { + if (jj_scan_token(FINAL)) return true; + return false; + } + + private boolean jj_3_816() { + if (jj_scan_token(EXCLUDING)) return true; + return false; + } + + private boolean jj_3_815() { + if (jj_scan_token(EXCLUDE)) return true; + return false; + } + + private boolean jj_3_814() { + if (jj_scan_token(EXCEPTION)) return true; + return false; + } + + private boolean jj_3_813() { + if (jj_scan_token(EPOCH)) return true; + return false; + } + + private boolean jj_3_272() { + Token xsp; + if (jj_3_271()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3_271()) { jj_scanpos = xsp; break; } + } + return false; + } + + private boolean jj_3_812() { + if (jj_scan_token(DYNAMIC_FUNCTION_CODE)) return true; + return false; + } + + private boolean jj_3_811() { + if (jj_scan_token(DYNAMIC_FUNCTION)) return true; + return false; + } + + private boolean jj_3_810() { + if (jj_scan_token(DOY)) return true; + return false; + } + + private boolean jj_3_809() { + if (jj_scan_token(DOW)) return true; + return false; + } + + private boolean jj_3_808() { + if (jj_scan_token(DOMAIN)) return true; + return false; + } + + private boolean jj_3_807() { + if (jj_scan_token(DISPATCH)) return true; + return false; + } + + private boolean jj_3R_104() { + if (jj_3R_106()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3_272()) { + jj_scanpos = xsp; + if (jj_3R_182()) return true; + } + return false; + } + + private boolean jj_3_806() { + if (jj_scan_token(DIAGNOSTICS)) return true; + return false; + } + + private boolean jj_3_805() { + if (jj_scan_token(DESCRIPTOR)) return true; + return false; + } + + private boolean jj_3_804() { + if (jj_scan_token(DESCRIPTION)) return true; + return false; + } + + private boolean jj_3_803() { + if (jj_scan_token(DESC)) return true; + return false; + } + + private boolean jj_3_802() { + if (jj_scan_token(DERIVED)) return true; + return false; + } + + private boolean jj_3_801() { + if (jj_scan_token(DEPTH)) return true; + return false; + } + + private boolean jj_3_800() { + if (jj_scan_token(DEGREE)) return true; + return false; + } + + private boolean jj_3_799() { + if (jj_scan_token(DEFINER)) return true; + return false; + } + + private boolean jj_3_798() { + if (jj_scan_token(DEFINED)) return true; + return false; + } + + private boolean jj_3_797() { + if (jj_scan_token(DEFERRED)) return true; + return false; + } + + private boolean jj_3_796() { + if (jj_scan_token(DEFERRABLE)) return true; + return false; + } + + private boolean jj_3_795() { + if (jj_scan_token(DEFAULTS)) return true; + return false; + } + + private boolean jj_3_794() { + if (jj_scan_token(DECADE)) return true; + return false; + } + + private boolean jj_3_793() { + if (jj_scan_token(DATETIME_INTERVAL_PRECISION)) return true; + return false; + } + + private boolean jj_3_792() { + if (jj_scan_token(DATETIME_INTERVAL_CODE)) return true; + return false; + } + + private boolean jj_3_791() { + if (jj_scan_token(DATABASE)) return true; + return false; + } + + private boolean jj_3_790() { + if (jj_scan_token(DATA)) return true; + return false; + } + + private boolean jj_3_789() { + if (jj_scan_token(CURSOR_NAME)) return true; + return false; + } + + private boolean jj_3_788() { + if (jj_scan_token(CONTINUE)) return true; + return false; + } + + private boolean jj_3_787() { + if (jj_scan_token(CONSTRUCTOR)) return true; + return false; + } + + private boolean jj_3_786() { + if (jj_scan_token(CONSTRAINTS)) return true; + return false; + } + + private boolean jj_3_785() { + if (jj_scan_token(CONSTRAINT_SCHEMA)) return true; + return false; + } + + private boolean jj_3_784() { + if (jj_scan_token(CONSTRAINT_NAME)) return true; + return false; + } + + private boolean jj_3_783() { + if (jj_scan_token(CONSTRAINT_CATALOG)) return true; + return false; + } + + private boolean jj_3_782() { + if (jj_scan_token(CONNECTION_NAME)) return true; + return false; + } + + private boolean jj_3_781() { + if (jj_scan_token(CONNECTION)) return true; + return false; + } + + private boolean jj_3_780() { + if (jj_scan_token(CONDITION_NUMBER)) return true; + return false; + } + + private boolean jj_3_779() { + if (jj_scan_token(COMMITTED)) return true; + return false; + } + + private boolean jj_3_778() { + if (jj_scan_token(COMMAND_FUNCTION_CODE)) return true; + return false; + } + + private boolean jj_3_777() { + if (jj_scan_token(COMMAND_FUNCTION)) return true; + return false; + } + + private boolean jj_3_776() { + if (jj_scan_token(COLUMN_NAME)) return true; + return false; + } + + private boolean jj_3_243() { + if (jj_3R_101()) return true; + return false; + } + + private boolean jj_3_775() { + if (jj_scan_token(COLLATION_SCHEMA)) return true; + return false; + } + + /** Generated Token Manager. */ + public SqlParserImplTokenManager token_source; + SimpleCharStream 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; + /** Whether we are looking ahead. */ + private boolean jj_lookingAhead = false; + private boolean jj_semLA; + private int jj_gen; + final private int[] jj_la1 = new int[5]; + 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 private int[] jj_la1_8; + static private int[] jj_la1_9; + static private int[] jj_la1_10; + static private int[] jj_la1_11; + static private int[] jj_la1_12; + static private int[] jj_la1_13; + static private int[] jj_la1_14; + static private int[] jj_la1_15; + static private int[] jj_la1_16; + static private int[] jj_la1_17; + static private int[] jj_la1_18; + static private int[] jj_la1_19; + static private int[] jj_la1_20; + static private int[] jj_la1_21; + static private int[] jj_la1_22; + 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(); + jj_la1_init_8(); + jj_la1_init_9(); + jj_la1_init_10(); + jj_la1_init_11(); + jj_la1_init_12(); + jj_la1_init_13(); + jj_la1_init_14(); + jj_la1_init_15(); + jj_la1_init_16(); + jj_la1_init_17(); + jj_la1_init_18(); + jj_la1_init_19(); + jj_la1_init_20(); + jj_la1_init_21(); + jj_la1_init_22(); + } + private static void jj_la1_init_0() { + jj_la1_0 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_1() { + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_2() { + jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_3() { + jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_4() { + jj_la1_4 = new int[] {0x1,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_5() { + jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_6() { + jj_la1_6 = new int[] {0x1,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_7() { + jj_la1_7 = new int[] {0x8000000,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_8() { + jj_la1_8 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_9() { + jj_la1_9 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_10() { + jj_la1_10 = new int[] {0x200,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_11() { + jj_la1_11 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_12() { + jj_la1_12 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_13() { + jj_la1_13 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_14() { + jj_la1_14 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_15() { + jj_la1_15 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_16() { + jj_la1_16 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_17() { + jj_la1_17 = new int[] {0x1800000,0x0,0x0,0x0,0x2000000,}; + } + private static void jj_la1_init_18() { + jj_la1_18 = new int[] {0x4020000,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_19() { + jj_la1_19 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_20() { + jj_la1_20 = new int[] {0x1c3c70,0x10000,0x10000,0x10000,0x0,}; + } + private static void jj_la1_init_21() { + jj_la1_21 = new int[] {0xc0,0x0,0x0,0x0,0x0,}; + } + private static void jj_la1_init_22() { + jj_la1_22 = new int[] {0x0,0x0,0x0,0x0,0x0,}; + } + final private JJCalls[] jj_2_rtns = new JJCalls[1026]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + /** Constructor with InputStream. */ + public SqlParserImpl(java.io.InputStream stream) { + this(stream, null); + } + /** Constructor with InputStream and supplied encoding */ + public SqlParserImpl(java.io.InputStream stream, String encoding) { + try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } + token_source = new SqlParserImplTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 5; 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; + jj_gen = 0; + for (int i = 0; i < 5; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + /** Constructor. */ + public SqlParserImpl(java.io.Reader stream) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + token_source = new SqlParserImplTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 5; 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; + jj_gen = 0; + for (int i = 0; i < 5; 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 SqlParserImpl(SqlParserImplTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 5; 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(SqlParserImplTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 5; 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 = jj_lookingAhead ? jj_scanpos : 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 jj_expentries = new java.util.ArrayList(); + 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[711]; + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 5; i++) { + if (jj_la1[i] == jj_gen) { + for (int j = 0; j < 32; j++) { + if ((jj_la1_0[i] & (1< 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; + case 20: jj_3_21(); break; + case 21: jj_3_22(); break; + case 22: jj_3_23(); break; + case 23: jj_3_24(); break; + case 24: jj_3_25(); break; + case 25: jj_3_26(); break; + case 26: jj_3_27(); break; + case 27: jj_3_28(); break; + case 28: jj_3_29(); break; + case 29: jj_3_30(); break; + case 30: jj_3_31(); break; + case 31: jj_3_32(); break; + case 32: jj_3_33(); break; + case 33: jj_3_34(); break; + case 34: jj_3_35(); break; + case 35: jj_3_36(); break; + case 36: jj_3_37(); break; + case 37: jj_3_38(); break; + case 38: jj_3_39(); break; + case 39: jj_3_40(); break; + case 40: jj_3_41(); break; + case 41: jj_3_42(); break; + case 42: jj_3_43(); break; + case 43: jj_3_44(); break; + case 44: jj_3_45(); break; + case 45: jj_3_46(); break; + case 46: jj_3_47(); break; + case 47: jj_3_48(); break; + case 48: jj_3_49(); break; + case 49: jj_3_50(); break; + case 50: jj_3_51(); break; + case 51: jj_3_52(); break; + case 52: jj_3_53(); break; + case 53: jj_3_54(); break; + case 54: jj_3_55(); break; + case 55: jj_3_56(); break; + case 56: jj_3_57(); break; + case 57: jj_3_58(); break; + case 58: jj_3_59(); break; + case 59: jj_3_60(); break; + case 60: jj_3_61(); break; + case 61: jj_3_62(); break; + case 62: jj_3_63(); break; + case 63: jj_3_64(); break; + case 64: jj_3_65(); break; + case 65: jj_3_66(); break; + case 66: jj_3_67(); break; + case 67: jj_3_68(); break; + case 68: jj_3_69(); break; + case 69: jj_3_70(); break; + case 70: jj_3_71(); break; + case 71: jj_3_72(); break; + case 72: jj_3_73(); break; + case 73: jj_3_74(); break; + case 74: jj_3_75(); break; + case 75: jj_3_76(); break; + case 76: jj_3_77(); break; + case 77: jj_3_78(); break; + case 78: jj_3_79(); break; + case 79: jj_3_80(); break; + case 80: jj_3_81(); break; + case 81: jj_3_82(); break; + case 82: jj_3_83(); break; + case 83: jj_3_84(); break; + case 84: jj_3_85(); break; + case 85: jj_3_86(); break; + case 86: jj_3_87(); break; + case 87: jj_3_88(); break; + case 88: jj_3_89(); break; + case 89: jj_3_90(); break; + case 90: jj_3_91(); break; + case 91: jj_3_92(); break; + case 92: jj_3_93(); break; + case 93: jj_3_94(); break; + case 94: jj_3_95(); break; + case 95: jj_3_96(); break; + case 96: jj_3_97(); break; + case 97: jj_3_98(); break; + case 98: jj_3_99(); break; + case 99: jj_3_100(); break; + case 100: jj_3_101(); break; + case 101: jj_3_102(); break; + case 102: jj_3_103(); break; + case 103: jj_3_104(); break; + case 104: jj_3_105(); break; + case 105: jj_3_106(); break; + case 106: jj_3_107(); break; + case 107: jj_3_108(); break; + case 108: jj_3_109(); break; + case 109: jj_3_110(); break; + case 110: jj_3_111(); break; + case 111: jj_3_112(); break; + case 112: jj_3_113(); break; + case 113: jj_3_114(); break; + case 114: jj_3_115(); break; + case 115: jj_3_116(); break; + case 116: jj_3_117(); break; + case 117: jj_3_118(); break; + case 118: jj_3_119(); break; + case 119: jj_3_120(); break; + case 120: jj_3_121(); break; + case 121: jj_3_122(); break; + case 122: jj_3_123(); break; + case 123: jj_3_124(); break; + case 124: jj_3_125(); break; + case 125: jj_3_126(); break; + case 126: jj_3_127(); break; + case 127: jj_3_128(); break; + case 128: jj_3_129(); break; + case 129: jj_3_130(); break; + case 130: jj_3_131(); break; + case 131: jj_3_132(); break; + case 132: jj_3_133(); break; + case 133: jj_3_134(); break; + case 134: jj_3_135(); break; + case 135: jj_3_136(); break; + case 136: jj_3_137(); break; + case 137: jj_3_138(); break; + case 138: jj_3_139(); break; + case 139: jj_3_140(); break; + case 140: jj_3_141(); break; + case 141: jj_3_142(); break; + case 142: jj_3_143(); break; + case 143: jj_3_144(); break; + case 144: jj_3_145(); break; + case 145: jj_3_146(); break; + case 146: jj_3_147(); break; + case 147: jj_3_148(); break; + case 148: jj_3_149(); break; + case 149: jj_3_150(); break; + case 150: jj_3_151(); break; + case 151: jj_3_152(); break; + case 152: jj_3_153(); break; + case 153: jj_3_154(); break; + case 154: jj_3_155(); break; + case 155: jj_3_156(); break; + case 156: jj_3_157(); break; + case 157: jj_3_158(); break; + case 158: jj_3_159(); break; + case 159: jj_3_160(); break; + case 160: jj_3_161(); break; + case 161: jj_3_162(); break; + case 162: jj_3_163(); break; + case 163: jj_3_164(); break; + case 164: jj_3_165(); break; + case 165: jj_3_166(); break; + case 166: jj_3_167(); break; + case 167: jj_3_168(); break; + case 168: jj_3_169(); break; + case 169: jj_3_170(); break; + case 170: jj_3_171(); break; + case 171: jj_3_172(); break; + case 172: jj_3_173(); break; + case 173: jj_3_174(); break; + case 174: jj_3_175(); break; + case 175: jj_3_176(); break; + case 176: jj_3_177(); break; + case 177: jj_3_178(); break; + case 178: jj_3_179(); break; + case 179: jj_3_180(); break; + case 180: jj_3_181(); break; + case 181: jj_3_182(); break; + case 182: jj_3_183(); break; + case 183: jj_3_184(); break; + case 184: jj_3_185(); break; + case 185: jj_3_186(); break; + case 186: jj_3_187(); break; + case 187: jj_3_188(); break; + case 188: jj_3_189(); break; + case 189: jj_3_190(); break; + case 190: jj_3_191(); break; + case 191: jj_3_192(); break; + case 192: jj_3_193(); break; + case 193: jj_3_194(); break; + case 194: jj_3_195(); break; + case 195: jj_3_196(); break; + case 196: jj_3_197(); break; + case 197: jj_3_198(); break; + case 198: jj_3_199(); break; + case 199: jj_3_200(); break; + case 200: jj_3_201(); break; + case 201: jj_3_202(); break; + case 202: jj_3_203(); break; + case 203: jj_3_204(); break; + case 204: jj_3_205(); break; + case 205: jj_3_206(); break; + case 206: jj_3_207(); break; + case 207: jj_3_208(); break; + case 208: jj_3_209(); break; + case 209: jj_3_210(); break; + case 210: jj_3_211(); break; + case 211: jj_3_212(); break; + case 212: jj_3_213(); break; + case 213: jj_3_214(); break; + case 214: jj_3_215(); break; + case 215: jj_3_216(); break; + case 216: jj_3_217(); break; + case 217: jj_3_218(); break; + case 218: jj_3_219(); break; + case 219: jj_3_220(); break; + case 220: jj_3_221(); break; + case 221: jj_3_222(); break; + case 222: jj_3_223(); break; + case 223: jj_3_224(); break; + case 224: jj_3_225(); break; + case 225: jj_3_226(); break; + case 226: jj_3_227(); break; + case 227: jj_3_228(); break; + case 228: jj_3_229(); break; + case 229: jj_3_230(); break; + case 230: jj_3_231(); break; + case 231: jj_3_232(); break; + case 232: jj_3_233(); break; + case 233: jj_3_234(); break; + case 234: jj_3_235(); break; + case 235: jj_3_236(); break; + case 236: jj_3_237(); break; + case 237: jj_3_238(); break; + case 238: jj_3_239(); break; + case 239: jj_3_240(); break; + case 240: jj_3_241(); break; + case 241: jj_3_242(); break; + case 242: jj_3_243(); break; + case 243: jj_3_244(); break; + case 244: jj_3_245(); break; + case 245: jj_3_246(); break; + case 246: jj_3_247(); break; + case 247: jj_3_248(); break; + case 248: jj_3_249(); break; + case 249: jj_3_250(); break; + case 250: jj_3_251(); break; + case 251: jj_3_252(); break; + case 252: jj_3_253(); break; + case 253: jj_3_254(); break; + case 254: jj_3_255(); break; + case 255: jj_3_256(); break; + case 256: jj_3_257(); break; + case 257: jj_3_258(); break; + case 258: jj_3_259(); break; + case 259: jj_3_260(); break; + case 260: jj_3_261(); break; + case 261: jj_3_262(); break; + case 262: jj_3_263(); break; + case 263: jj_3_264(); break; + case 264: jj_3_265(); break; + case 265: jj_3_266(); break; + case 266: jj_3_267(); break; + case 267: jj_3_268(); break; + case 268: jj_3_269(); break; + case 269: jj_3_270(); break; + case 270: jj_3_271(); break; + case 271: jj_3_272(); break; + case 272: jj_3_273(); break; + case 273: jj_3_274(); break; + case 274: jj_3_275(); break; + case 275: jj_3_276(); break; + case 276: jj_3_277(); break; + case 277: jj_3_278(); break; + case 278: jj_3_279(); break; + case 279: jj_3_280(); break; + case 280: jj_3_281(); break; + case 281: jj_3_282(); break; + case 282: jj_3_283(); break; + case 283: jj_3_284(); break; + case 284: jj_3_285(); break; + case 285: jj_3_286(); break; + case 286: jj_3_287(); break; + case 287: jj_3_288(); break; + case 288: jj_3_289(); break; + case 289: jj_3_290(); break; + case 290: jj_3_291(); break; + case 291: jj_3_292(); break; + case 292: jj_3_293(); break; + case 293: jj_3_294(); break; + case 294: jj_3_295(); break; + case 295: jj_3_296(); break; + case 296: jj_3_297(); break; + case 297: jj_3_298(); break; + case 298: jj_3_299(); break; + case 299: jj_3_300(); break; + case 300: jj_3_301(); break; + case 301: jj_3_302(); break; + case 302: jj_3_303(); break; + case 303: jj_3_304(); break; + case 304: jj_3_305(); break; + case 305: jj_3_306(); break; + case 306: jj_3_307(); break; + case 307: jj_3_308(); break; + case 308: jj_3_309(); break; + case 309: jj_3_310(); break; + case 310: jj_3_311(); break; + case 311: jj_3_312(); break; + case 312: jj_3_313(); break; + case 313: jj_3_314(); break; + case 314: jj_3_315(); break; + case 315: jj_3_316(); break; + case 316: jj_3_317(); break; + case 317: jj_3_318(); break; + case 318: jj_3_319(); break; + case 319: jj_3_320(); break; + case 320: jj_3_321(); break; + case 321: jj_3_322(); break; + case 322: jj_3_323(); break; + case 323: jj_3_324(); break; + case 324: jj_3_325(); break; + case 325: jj_3_326(); break; + case 326: jj_3_327(); break; + case 327: jj_3_328(); break; + case 328: jj_3_329(); break; + case 329: jj_3_330(); break; + case 330: jj_3_331(); break; + case 331: jj_3_332(); break; + case 332: jj_3_333(); break; + case 333: jj_3_334(); break; + case 334: jj_3_335(); break; + case 335: jj_3_336(); break; + case 336: jj_3_337(); break; + case 337: jj_3_338(); break; + case 338: jj_3_339(); break; + case 339: jj_3_340(); break; + case 340: jj_3_341(); break; + case 341: jj_3_342(); break; + case 342: jj_3_343(); break; + case 343: jj_3_344(); break; + case 344: jj_3_345(); break; + case 345: jj_3_346(); break; + case 346: jj_3_347(); break; + case 347: jj_3_348(); break; + case 348: jj_3_349(); break; + case 349: jj_3_350(); break; + case 350: jj_3_351(); break; + case 351: jj_3_352(); break; + case 352: jj_3_353(); break; + case 353: jj_3_354(); break; + case 354: jj_3_355(); break; + case 355: jj_3_356(); break; + case 356: jj_3_357(); break; + case 357: jj_3_358(); break; + case 358: jj_3_359(); break; + case 359: jj_3_360(); break; + case 360: jj_3_361(); break; + case 361: jj_3_362(); break; + case 362: jj_3_363(); break; + case 363: jj_3_364(); break; + case 364: jj_3_365(); break; + case 365: jj_3_366(); break; + case 366: jj_3_367(); break; + case 367: jj_3_368(); break; + case 368: jj_3_369(); break; + case 369: jj_3_370(); break; + case 370: jj_3_371(); break; + case 371: jj_3_372(); break; + case 372: jj_3_373(); break; + case 373: jj_3_374(); break; + case 374: jj_3_375(); break; + case 375: jj_3_376(); break; + case 376: jj_3_377(); break; + case 377: jj_3_378(); break; + case 378: jj_3_379(); break; + case 379: jj_3_380(); break; + case 380: jj_3_381(); break; + case 381: jj_3_382(); break; + case 382: jj_3_383(); break; + case 383: jj_3_384(); break; + case 384: jj_3_385(); break; + case 385: jj_3_386(); break; + case 386: jj_3_387(); break; + case 387: jj_3_388(); break; + case 388: jj_3_389(); break; + case 389: jj_3_390(); break; + case 390: jj_3_391(); break; + case 391: jj_3_392(); break; + case 392: jj_3_393(); break; + case 393: jj_3_394(); break; + case 394: jj_3_395(); break; + case 395: jj_3_396(); break; + case 396: jj_3_397(); break; + case 397: jj_3_398(); break; + case 398: jj_3_399(); break; + case 399: jj_3_400(); break; + case 400: jj_3_401(); break; + case 401: jj_3_402(); break; + case 402: jj_3_403(); break; + case 403: jj_3_404(); break; + case 404: jj_3_405(); break; + case 405: jj_3_406(); break; + case 406: jj_3_407(); break; + case 407: jj_3_408(); break; + case 408: jj_3_409(); break; + case 409: jj_3_410(); break; + case 410: jj_3_411(); break; + case 411: jj_3_412(); break; + case 412: jj_3_413(); break; + case 413: jj_3_414(); break; + case 414: jj_3_415(); break; + case 415: jj_3_416(); break; + case 416: jj_3_417(); break; + case 417: jj_3_418(); break; + case 418: jj_3_419(); break; + case 419: jj_3_420(); break; + case 420: jj_3_421(); break; + case 421: jj_3_422(); break; + case 422: jj_3_423(); break; + case 423: jj_3_424(); break; + case 424: jj_3_425(); break; + case 425: jj_3_426(); break; + case 426: jj_3_427(); break; + case 427: jj_3_428(); break; + case 428: jj_3_429(); break; + case 429: jj_3_430(); break; + case 430: jj_3_431(); break; + case 431: jj_3_432(); break; + case 432: jj_3_433(); break; + case 433: jj_3_434(); break; + case 434: jj_3_435(); break; + case 435: jj_3_436(); break; + case 436: jj_3_437(); break; + case 437: jj_3_438(); break; + case 438: jj_3_439(); break; + case 439: jj_3_440(); break; + case 440: jj_3_441(); break; + case 441: jj_3_442(); break; + case 442: jj_3_443(); break; + case 443: jj_3_444(); break; + case 444: jj_3_445(); break; + case 445: jj_3_446(); break; + case 446: jj_3_447(); break; + case 447: jj_3_448(); break; + case 448: jj_3_449(); break; + case 449: jj_3_450(); break; + case 450: jj_3_451(); break; + case 451: jj_3_452(); break; + case 452: jj_3_453(); break; + case 453: jj_3_454(); break; + case 454: jj_3_455(); break; + case 455: jj_3_456(); break; + case 456: jj_3_457(); break; + case 457: jj_3_458(); break; + case 458: jj_3_459(); break; + case 459: jj_3_460(); break; + case 460: jj_3_461(); break; + case 461: jj_3_462(); break; + case 462: jj_3_463(); break; + case 463: jj_3_464(); break; + case 464: jj_3_465(); break; + case 465: jj_3_466(); break; + case 466: jj_3_467(); break; + case 467: jj_3_468(); break; + case 468: jj_3_469(); break; + case 469: jj_3_470(); break; + case 470: jj_3_471(); break; + case 471: jj_3_472(); break; + case 472: jj_3_473(); break; + case 473: jj_3_474(); break; + case 474: jj_3_475(); break; + case 475: jj_3_476(); break; + case 476: jj_3_477(); break; + case 477: jj_3_478(); break; + case 478: jj_3_479(); break; + case 479: jj_3_480(); break; + case 480: jj_3_481(); break; + case 481: jj_3_482(); break; + case 482: jj_3_483(); break; + case 483: jj_3_484(); break; + case 484: jj_3_485(); break; + case 485: jj_3_486(); break; + case 486: jj_3_487(); break; + case 487: jj_3_488(); break; + case 488: jj_3_489(); break; + case 489: jj_3_490(); break; + case 490: jj_3_491(); break; + case 491: jj_3_492(); break; + case 492: jj_3_493(); break; + case 493: jj_3_494(); break; + case 494: jj_3_495(); break; + case 495: jj_3_496(); break; + case 496: jj_3_497(); break; + case 497: jj_3_498(); break; + case 498: jj_3_499(); break; + case 499: jj_3_500(); break; + case 500: jj_3_501(); break; + case 501: jj_3_502(); break; + case 502: jj_3_503(); break; + case 503: jj_3_504(); break; + case 504: jj_3_505(); break; + case 505: jj_3_506(); break; + case 506: jj_3_507(); break; + case 507: jj_3_508(); break; + case 508: jj_3_509(); break; + case 509: jj_3_510(); break; + case 510: jj_3_511(); break; + case 511: jj_3_512(); break; + case 512: jj_3_513(); break; + case 513: jj_3_514(); break; + case 514: jj_3_515(); break; + case 515: jj_3_516(); break; + case 516: jj_3_517(); break; + case 517: jj_3_518(); break; + case 518: jj_3_519(); break; + case 519: jj_3_520(); break; + case 520: jj_3_521(); break; + case 521: jj_3_522(); break; + case 522: jj_3_523(); break; + case 523: jj_3_524(); break; + case 524: jj_3_525(); break; + case 525: jj_3_526(); break; + case 526: jj_3_527(); break; + case 527: jj_3_528(); break; + case 528: jj_3_529(); break; + case 529: jj_3_530(); break; + case 530: jj_3_531(); break; + case 531: jj_3_532(); break; + case 532: jj_3_533(); break; + case 533: jj_3_534(); break; + case 534: jj_3_535(); break; + case 535: jj_3_536(); break; + case 536: jj_3_537(); break; + case 537: jj_3_538(); break; + case 538: jj_3_539(); break; + case 539: jj_3_540(); break; + case 540: jj_3_541(); break; + case 541: jj_3_542(); break; + case 542: jj_3_543(); break; + case 543: jj_3_544(); break; + case 544: jj_3_545(); break; + case 545: jj_3_546(); break; + case 546: jj_3_547(); break; + case 547: jj_3_548(); break; + case 548: jj_3_549(); break; + case 549: jj_3_550(); break; + case 550: jj_3_551(); break; + case 551: jj_3_552(); break; + case 552: jj_3_553(); break; + case 553: jj_3_554(); break; + case 554: jj_3_555(); break; + case 555: jj_3_556(); break; + case 556: jj_3_557(); break; + case 557: jj_3_558(); break; + case 558: jj_3_559(); break; + case 559: jj_3_560(); break; + case 560: jj_3_561(); break; + case 561: jj_3_562(); break; + case 562: jj_3_563(); break; + case 563: jj_3_564(); break; + case 564: jj_3_565(); break; + case 565: jj_3_566(); break; + case 566: jj_3_567(); break; + case 567: jj_3_568(); break; + case 568: jj_3_569(); break; + case 569: jj_3_570(); break; + case 570: jj_3_571(); break; + case 571: jj_3_572(); break; + case 572: jj_3_573(); break; + case 573: jj_3_574(); break; + case 574: jj_3_575(); break; + case 575: jj_3_576(); break; + case 576: jj_3_577(); break; + case 577: jj_3_578(); break; + case 578: jj_3_579(); break; + case 579: jj_3_580(); break; + case 580: jj_3_581(); break; + case 581: jj_3_582(); break; + case 582: jj_3_583(); break; + case 583: jj_3_584(); break; + case 584: jj_3_585(); break; + case 585: jj_3_586(); break; + case 586: jj_3_587(); break; + case 587: jj_3_588(); break; + case 588: jj_3_589(); break; + case 589: jj_3_590(); break; + case 590: jj_3_591(); break; + case 591: jj_3_592(); break; + case 592: jj_3_593(); break; + case 593: jj_3_594(); break; + case 594: jj_3_595(); break; + case 595: jj_3_596(); break; + case 596: jj_3_597(); break; + case 597: jj_3_598(); break; + case 598: jj_3_599(); break; + case 599: jj_3_600(); break; + case 600: jj_3_601(); break; + case 601: jj_3_602(); break; + case 602: jj_3_603(); break; + case 603: jj_3_604(); break; + case 604: jj_3_605(); break; + case 605: jj_3_606(); break; + case 606: jj_3_607(); break; + case 607: jj_3_608(); break; + case 608: jj_3_609(); break; + case 609: jj_3_610(); break; + case 610: jj_3_611(); break; + case 611: jj_3_612(); break; + case 612: jj_3_613(); break; + case 613: jj_3_614(); break; + case 614: jj_3_615(); break; + case 615: jj_3_616(); break; + case 616: jj_3_617(); break; + case 617: jj_3_618(); break; + case 618: jj_3_619(); break; + case 619: jj_3_620(); break; + case 620: jj_3_621(); break; + case 621: jj_3_622(); break; + case 622: jj_3_623(); break; + case 623: jj_3_624(); break; + case 624: jj_3_625(); break; + case 625: jj_3_626(); break; + case 626: jj_3_627(); break; + case 627: jj_3_628(); break; + case 628: jj_3_629(); break; + case 629: jj_3_630(); break; + case 630: jj_3_631(); break; + case 631: jj_3_632(); break; + case 632: jj_3_633(); break; + case 633: jj_3_634(); break; + case 634: jj_3_635(); break; + case 635: jj_3_636(); break; + case 636: jj_3_637(); break; + case 637: jj_3_638(); break; + case 638: jj_3_639(); break; + case 639: jj_3_640(); break; + case 640: jj_3_641(); break; + case 641: jj_3_642(); break; + case 642: jj_3_643(); break; + case 643: jj_3_644(); break; + case 644: jj_3_645(); break; + case 645: jj_3_646(); break; + case 646: jj_3_647(); break; + case 647: jj_3_648(); break; + case 648: jj_3_649(); break; + case 649: jj_3_650(); break; + case 650: jj_3_651(); break; + case 651: jj_3_652(); break; + case 652: jj_3_653(); break; + case 653: jj_3_654(); break; + case 654: jj_3_655(); break; + case 655: jj_3_656(); break; + case 656: jj_3_657(); break; + case 657: jj_3_658(); break; + case 658: jj_3_659(); break; + case 659: jj_3_660(); break; + case 660: jj_3_661(); break; + case 661: jj_3_662(); break; + case 662: jj_3_663(); break; + case 663: jj_3_664(); break; + case 664: jj_3_665(); break; + case 665: jj_3_666(); break; + case 666: jj_3_667(); break; + case 667: jj_3_668(); break; + case 668: jj_3_669(); break; + case 669: jj_3_670(); break; + case 670: jj_3_671(); break; + case 671: jj_3_672(); break; + case 672: jj_3_673(); break; + case 673: jj_3_674(); break; + case 674: jj_3_675(); break; + case 675: jj_3_676(); break; + case 676: jj_3_677(); break; + case 677: jj_3_678(); break; + case 678: jj_3_679(); break; + case 679: jj_3_680(); break; + case 680: jj_3_681(); break; + case 681: jj_3_682(); break; + case 682: jj_3_683(); break; + case 683: jj_3_684(); break; + case 684: jj_3_685(); break; + case 685: jj_3_686(); break; + case 686: jj_3_687(); break; + case 687: jj_3_688(); break; + case 688: jj_3_689(); break; + case 689: jj_3_690(); break; + case 690: jj_3_691(); break; + case 691: jj_3_692(); break; + case 692: jj_3_693(); break; + case 693: jj_3_694(); break; + case 694: jj_3_695(); break; + case 695: jj_3_696(); break; + case 696: jj_3_697(); break; + case 697: jj_3_698(); break; + case 698: jj_3_699(); break; + case 699: jj_3_700(); break; + case 700: jj_3_701(); break; + case 701: jj_3_702(); break; + case 702: jj_3_703(); break; + case 703: jj_3_704(); break; + case 704: jj_3_705(); break; + case 705: jj_3_706(); break; + case 706: jj_3_707(); break; + case 707: jj_3_708(); break; + case 708: jj_3_709(); break; + case 709: jj_3_710(); break; + case 710: jj_3_711(); break; + case 711: jj_3_712(); break; + case 712: jj_3_713(); break; + case 713: jj_3_714(); break; + case 714: jj_3_715(); break; + case 715: jj_3_716(); break; + case 716: jj_3_717(); break; + case 717: jj_3_718(); break; + case 718: jj_3_719(); break; + case 719: jj_3_720(); break; + case 720: jj_3_721(); break; + case 721: jj_3_722(); break; + case 722: jj_3_723(); break; + case 723: jj_3_724(); break; + case 724: jj_3_725(); break; + case 725: jj_3_726(); break; + case 726: jj_3_727(); break; + case 727: jj_3_728(); break; + case 728: jj_3_729(); break; + case 729: jj_3_730(); break; + case 730: jj_3_731(); break; + case 731: jj_3_732(); break; + case 732: jj_3_733(); break; + case 733: jj_3_734(); break; + case 734: jj_3_735(); break; + case 735: jj_3_736(); break; + case 736: jj_3_737(); break; + case 737: jj_3_738(); break; + case 738: jj_3_739(); break; + case 739: jj_3_740(); break; + case 740: jj_3_741(); break; + case 741: jj_3_742(); break; + case 742: jj_3_743(); break; + case 743: jj_3_744(); break; + case 744: jj_3_745(); break; + case 745: jj_3_746(); break; + case 746: jj_3_747(); break; + case 747: jj_3_748(); break; + case 748: jj_3_749(); break; + case 749: jj_3_750(); break; + case 750: jj_3_751(); break; + case 751: jj_3_752(); break; + case 752: jj_3_753(); break; + case 753: jj_3_754(); break; + case 754: jj_3_755(); break; + case 755: jj_3_756(); break; + case 756: jj_3_757(); break; + case 757: jj_3_758(); break; + case 758: jj_3_759(); break; + case 759: jj_3_760(); break; + case 760: jj_3_761(); break; + case 761: jj_3_762(); break; + case 762: jj_3_763(); break; + case 763: jj_3_764(); break; + case 764: jj_3_765(); break; + case 765: jj_3_766(); break; + case 766: jj_3_767(); break; + case 767: jj_3_768(); break; + case 768: jj_3_769(); break; + case 769: jj_3_770(); break; + case 770: jj_3_771(); break; + case 771: jj_3_772(); break; + case 772: jj_3_773(); break; + case 773: jj_3_774(); break; + case 774: jj_3_775(); break; + case 775: jj_3_776(); break; + case 776: jj_3_777(); break; + case 777: jj_3_778(); break; + case 778: jj_3_779(); break; + case 779: jj_3_780(); break; + case 780: jj_3_781(); break; + case 781: jj_3_782(); break; + case 782: jj_3_783(); break; + case 783: jj_3_784(); break; + case 784: jj_3_785(); break; + case 785: jj_3_786(); break; + case 786: jj_3_787(); break; + case 787: jj_3_788(); break; + case 788: jj_3_789(); break; + case 789: jj_3_790(); break; + case 790: jj_3_791(); break; + case 791: jj_3_792(); break; + case 792: jj_3_793(); break; + case 793: jj_3_794(); break; + case 794: jj_3_795(); break; + case 795: jj_3_796(); break; + case 796: jj_3_797(); break; + case 797: jj_3_798(); break; + case 798: jj_3_799(); break; + case 799: jj_3_800(); break; + case 800: jj_3_801(); break; + case 801: jj_3_802(); break; + case 802: jj_3_803(); break; + case 803: jj_3_804(); break; + case 804: jj_3_805(); break; + case 805: jj_3_806(); break; + case 806: jj_3_807(); break; + case 807: jj_3_808(); break; + case 808: jj_3_809(); break; + case 809: jj_3_810(); break; + case 810: jj_3_811(); break; + case 811: jj_3_812(); break; + case 812: jj_3_813(); break; + case 813: jj_3_814(); break; + case 814: jj_3_815(); break; + case 815: jj_3_816(); break; + case 816: jj_3_817(); break; + case 817: jj_3_818(); break; + case 818: jj_3_819(); break; + case 819: jj_3_820(); break; + case 820: jj_3_821(); break; + case 821: jj_3_822(); break; + case 822: jj_3_823(); break; + case 823: jj_3_824(); break; + case 824: jj_3_825(); break; + case 825: jj_3_826(); break; + case 826: jj_3_827(); break; + case 827: jj_3_828(); break; + case 828: jj_3_829(); break; + case 829: jj_3_830(); break; + case 830: jj_3_831(); break; + case 831: jj_3_832(); break; + case 832: jj_3_833(); break; + case 833: jj_3_834(); break; + case 834: jj_3_835(); break; + case 835: jj_3_836(); break; + case 836: jj_3_837(); break; + case 837: jj_3_838(); break; + case 838: jj_3_839(); break; + case 839: jj_3_840(); break; + case 840: jj_3_841(); break; + case 841: jj_3_842(); break; + case 842: jj_3_843(); break; + case 843: jj_3_844(); break; + case 844: jj_3_845(); break; + case 845: jj_3_846(); break; + case 846: jj_3_847(); break; + case 847: jj_3_848(); break; + case 848: jj_3_849(); break; + case 849: jj_3_850(); break; + case 850: jj_3_851(); break; + case 851: jj_3_852(); break; + case 852: jj_3_853(); break; + case 853: jj_3_854(); break; + case 854: jj_3_855(); break; + case 855: jj_3_856(); break; + case 856: jj_3_857(); break; + case 857: jj_3_858(); break; + case 858: jj_3_859(); break; + case 859: jj_3_860(); break; + case 860: jj_3_861(); break; + case 861: jj_3_862(); break; + case 862: jj_3_863(); break; + case 863: jj_3_864(); break; + case 864: jj_3_865(); break; + case 865: jj_3_866(); break; + case 866: jj_3_867(); break; + case 867: jj_3_868(); break; + case 868: jj_3_869(); break; + case 869: jj_3_870(); break; + case 870: jj_3_871(); break; + case 871: jj_3_872(); break; + case 872: jj_3_873(); break; + case 873: jj_3_874(); break; + case 874: jj_3_875(); break; + case 875: jj_3_876(); break; + case 876: jj_3_877(); break; + case 877: jj_3_878(); break; + case 878: jj_3_879(); break; + case 879: jj_3_880(); break; + case 880: jj_3_881(); break; + case 881: jj_3_882(); break; + case 882: jj_3_883(); break; + case 883: jj_3_884(); break; + case 884: jj_3_885(); break; + case 885: jj_3_886(); break; + case 886: jj_3_887(); break; + case 887: jj_3_888(); break; + case 888: jj_3_889(); break; + case 889: jj_3_890(); break; + case 890: jj_3_891(); break; + case 891: jj_3_892(); break; + case 892: jj_3_893(); break; + case 893: jj_3_894(); break; + case 894: jj_3_895(); break; + case 895: jj_3_896(); break; + case 896: jj_3_897(); break; + case 897: jj_3_898(); break; + case 898: jj_3_899(); break; + case 899: jj_3_900(); break; + case 900: jj_3_901(); break; + case 901: jj_3_902(); break; + case 902: jj_3_903(); break; + case 903: jj_3_904(); break; + case 904: jj_3_905(); break; + case 905: jj_3_906(); break; + case 906: jj_3_907(); break; + case 907: jj_3_908(); break; + case 908: jj_3_909(); break; + case 909: jj_3_910(); break; + case 910: jj_3_911(); break; + case 911: jj_3_912(); break; + case 912: jj_3_913(); break; + case 913: jj_3_914(); break; + case 914: jj_3_915(); break; + case 915: jj_3_916(); break; + case 916: jj_3_917(); break; + case 917: jj_3_918(); break; + case 918: jj_3_919(); break; + case 919: jj_3_920(); break; + case 920: jj_3_921(); break; + case 921: jj_3_922(); break; + case 922: jj_3_923(); break; + case 923: jj_3_924(); break; + case 924: jj_3_925(); break; + case 925: jj_3_926(); break; + case 926: jj_3_927(); break; + case 927: jj_3_928(); break; + case 928: jj_3_929(); break; + case 929: jj_3_930(); break; + case 930: jj_3_931(); break; + case 931: jj_3_932(); break; + case 932: jj_3_933(); break; + case 933: jj_3_934(); break; + case 934: jj_3_935(); break; + case 935: jj_3_936(); break; + case 936: jj_3_937(); break; + case 937: jj_3_938(); break; + case 938: jj_3_939(); break; + case 939: jj_3_940(); break; + case 940: jj_3_941(); break; + case 941: jj_3_942(); break; + case 942: jj_3_943(); break; + case 943: jj_3_944(); break; + case 944: jj_3_945(); break; + case 945: jj_3_946(); break; + case 946: jj_3_947(); break; + case 947: jj_3_948(); break; + case 948: jj_3_949(); break; + case 949: jj_3_950(); break; + case 950: jj_3_951(); break; + case 951: jj_3_952(); break; + case 952: jj_3_953(); break; + case 953: jj_3_954(); break; + case 954: jj_3_955(); break; + case 955: jj_3_956(); break; + case 956: jj_3_957(); break; + case 957: jj_3_958(); break; + case 958: jj_3_959(); break; + case 959: jj_3_960(); break; + case 960: jj_3_961(); break; + case 961: jj_3_962(); break; + case 962: jj_3_963(); break; + case 963: jj_3_964(); break; + case 964: jj_3_965(); break; + case 965: jj_3_966(); break; + case 966: jj_3_967(); break; + case 967: jj_3_968(); break; + case 968: jj_3_969(); break; + case 969: jj_3_970(); break; + case 970: jj_3_971(); break; + case 971: jj_3_972(); break; + case 972: jj_3_973(); break; + case 973: jj_3_974(); break; + case 974: jj_3_975(); break; + case 975: jj_3_976(); break; + case 976: jj_3_977(); break; + case 977: jj_3_978(); break; + case 978: jj_3_979(); break; + case 979: jj_3_980(); break; + case 980: jj_3_981(); break; + case 981: jj_3_982(); break; + case 982: jj_3_983(); break; + case 983: jj_3_984(); break; + case 984: jj_3_985(); break; + case 985: jj_3_986(); break; + case 986: jj_3_987(); break; + case 987: jj_3_988(); break; + case 988: jj_3_989(); break; + case 989: jj_3_990(); break; + case 990: jj_3_991(); break; + case 991: jj_3_992(); break; + case 992: jj_3_993(); break; + case 993: jj_3_994(); break; + case 994: jj_3_995(); break; + case 995: jj_3_996(); break; + case 996: jj_3_997(); break; + case 997: jj_3_998(); break; + case 998: jj_3_999(); break; + case 999: jj_3_1000(); break; + case 1000: jj_3_1001(); break; + case 1001: jj_3_1002(); break; + case 1002: jj_3_1003(); break; + case 1003: jj_3_1004(); break; + case 1004: jj_3_1005(); break; + case 1005: jj_3_1006(); break; + case 1006: jj_3_1007(); break; + case 1007: jj_3_1008(); break; + case 1008: jj_3_1009(); break; + case 1009: jj_3_1010(); break; + case 1010: jj_3_1011(); break; + case 1011: jj_3_1012(); break; + case 1012: jj_3_1013(); break; + case 1013: jj_3_1014(); break; + case 1014: jj_3_1015(); break; + case 1015: jj_3_1016(); break; + case 1016: jj_3_1017(); break; + case 1017: jj_3_1018(); break; + case 1018: jj_3_1019(); break; + case 1019: jj_3_1020(); break; + case 1020: jj_3_1021(); break; + case 1021: jj_3_1022(); break; + case 1022: jj_3_1023(); break; + case 1023: jj_3_1024(); break; + case 1024: jj_3_1025(); break; + case 1025: jj_3_1026(); 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; + } + +} \ No newline at end of file From a233ad2fdc4f83d1ace001c89d01a7d80956203f Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 31 Jul 2018 09:53:37 +0800 Subject: [PATCH 02/31] upgrade --- README.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4738213..18d3d57 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,44 @@ -在阿里工作的时候是使用Blink进行流数据处理和计算,通过编写sql实现Blink的计算job,开发简单高效,产品易用。目前想尝试实现Flink产品化,类似Blink这种产品。 +**在阿里工作的时候是使用Blink进行流数据处理和计算,通过编写sql实现Blink的计算job,开发简单高效,产品易用。目前想尝试实现Flink产品化,类似Blink这种产品。 + + 1.使用SQL为统一开发规范,SQL语言的好处是:声明式,易理解,稳定可靠,自动优化。如果采用API开发的话,最大的问题是对于job调优依赖程序员经验,比较困难,同时API开发方式侵入性太强(数据安全,集群安装等)。而sql可以自动调优,避免这两个问题的产生。 + + 2.目前实现思路: -用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和source + + + 用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和source + + -> dml的insert into对应将对应数据加载到 sink + + -> query数据处理和计算 + + --> 封装为api对应Flink的Job:env.sqlQuery/env.sqlUpdate;table.writeToSink; + + --> Job提交执行 streamGraph.getJobGraph; ClusterClient client = descriptor.deploy();client.runDetached(job, null); + 二.开发过程 + + 1.SqlConvert是将用户sql语句解析为不同类型,安装ddl,source和sink等返回; + + 2.ddl类型的sql语句,实现Flink的Source和Sink; + + 三.代码关注 + + apache calcite 的sql引擎源码解读 + + apache Flink sql实现 + + apache hive \ No newline at end of file From f04767e22bb55cc246711437eca7cbe7cdc5d74b Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 31 Jul 2018 10:05:26 +0800 Subject: [PATCH 03/31] upgrade --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18d3d57..08f3023 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -**在阿里工作的时候是使用Blink进行流数据处理和计算,通过编写sql实现Blink的计算job,开发简单高效,产品易用。目前想尝试实现Flink产品化,类似Blink这种产品。 +在阿里工作的时候是使用Blink进行流数据处理和计算,通过编写sql实现Blink的计算job,开发简单高效,产品易用。目前想尝试实现Flink产品化,类似Blink这种产品。 1.使用SQL为统一开发规范,SQL语言的好处是:声明式,易理解,稳定可靠,自动优化。如果采用API开发的话,最大的问题是对于job调优依赖程序员经验,比较困难,同时API开发方式侵入性太强(数据安全,集群安装等)。而sql可以自动调优,避免这两个问题的产生。 From 47077c50016fa47a4fc2c31131c09ae69c47a10e Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 31 Jul 2018 19:32:47 +0800 Subject: [PATCH 04/31] upgrade --- "sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" | 2 -- 1 file changed, 2 deletions(-) diff --git "a/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" "b/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" index 8a88ea9..670892b 100644 --- "a/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" +++ "b/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" @@ -1,5 +1,4 @@ -import com.meitu.mlink.sqlengine.api.sql.SqlConvert; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -10,7 +9,6 @@ import java.util.List; import java.util.Map; -import static com.meitu.mlink.sqlengine.api.sql.SqlConstant.*; /** * @author wpl From 1e78f0878d182e6e2a396e8b45fbc9691123c911 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 20 Aug 2018 19:15:51 +0800 Subject: [PATCH 05/31] =?UTF-8?q?sql=E5=86=85=E5=AE=B9=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E4=B8=BAsource,sink,view,dml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .../SqlConstant.java" | 21 - "sql\350\247\243\346\236\220/SqlConvert.java" | 16 - .../impl.SqlConvertImpl.java" | 127 - .../parser/ReplaceTableColum.java" | 56 - .../parser/SqlCreateFunction.java" | 62 - .../parser/SqlParserImpl.java" | 24129 ---------------- 9 files changed, 20 insertions(+), 24411 deletions(-) create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml delete mode 100644 "sql\350\247\243\346\236\220/SqlConstant.java" delete mode 100644 "sql\350\247\243\346\236\220/SqlConvert.java" delete mode 100644 "sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" delete mode 100644 "sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" delete mode 100644 "sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" delete mode 100644 "sql\350\247\243\346\236\220/parser/SqlParserImpl.java" diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8ed5f34 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2c3bb68 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/SqlConstant.java" "b/sql\350\247\243\346\236\220/SqlConstant.java" deleted file mode 100644 index cae1e27..0000000 --- "a/sql\350\247\243\346\236\220/SqlConstant.java" +++ /dev/null @@ -1,21 +0,0 @@ - -/** - * @author wpl - */ -public interface SqlConstant { - String COMM_AND_QUERY="COMM_AND_QUERY"; - String CREATE="CREATE"; - String FUNCTION="FUNCTION"; - String TABLESOURCE="TABLESOURCE"; - String TABLESINK="TABLESINK"; - String SQL_END_FLAG=";"; - - String FLAG="|"; - String SQL_START_FLAG=" "; - String COMMON="COMM"; - String DDL="DDL"; - String DML="DML"; - String QUERY="QUERY"; - String SET="SET"; - String SELECT="SELECT"; -} \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/SqlConvert.java" "b/sql\350\247\243\346\236\220/SqlConvert.java" deleted file mode 100644 index 0eb8853..0000000 --- "a/sql\350\247\243\346\236\220/SqlConvert.java" +++ /dev/null @@ -1,16 +0,0 @@ - -import java.util.List; -import java.util.Map; - -/** - * @author wpl - */ -public interface SqlConvert { - - /** - * @param sqlContext sql语句集合 - * @return sql语句分类对应的集合 - * @throws Exception - */ - Map> transfromSqlClassify(String sqlContext) throws Exception; -} diff --git "a/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" "b/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" deleted file mode 100644 index 670892b..0000000 --- "a/sql\350\247\243\346\236\220/impl.SqlConvertImpl.java" +++ /dev/null @@ -1,127 +0,0 @@ - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - - -/** - * @author wpl - */ -public class SqlConvertImpl implements SqlConvert { - private static final Logger logger = LoggerFactory.getLogger(SqlConvertImpl.class); - - public SqlConvertImpl() { - - } - - @Override - public Map> transfromSqlClassify(String sqlContext) throws Exception { - if (StringUtils.isBlank(sqlContext)){ - logger.warn("sql is null"); - throw new Exception("sql not null"); - } - - logger.warn("user input sql is : "+sqlContext); - - List sqls = splitSemiColon(sqlContext); - if (CollectionUtils.isEmpty(sqls)){ - logger.warn("sqls is null"); - throw new Exception("sqls not null"); - } - - Map> result = new HashMap<>(); - List commList = new ArrayList<>(); - List sourceList = new ArrayList<>(); - List sinkList = new ArrayList<>(); - - for (String sql: sqls) { - if (StringUtils.isNotBlank(sql)){ - //替换多余的空格 - String newSql = sql.trim().replaceAll(" +", " ").replaceAll("\\s+", " "); - - if (newSql.toUpperCase().startsWith(CREATE)){ - if (newSql.toUpperCase().contains(TABLESOURCE)){ - sourceList.add(newSql+SQL_END_FLAG); - } - - if (newSql.toUpperCase().contains(TABLESINK)){ - sinkList.add(newSql+SQL_END_FLAG); - } - - if (newSql.toUpperCase().contains(FUNCTION)){ - commList.add(newSql+SQL_END_FLAG); - } - }else { - commList.add(newSql+SQL_END_FLAG); - } - - } - } - - if (CollectionUtils.isNotEmpty(commList)){ - result.put(COMM_AND_QUERY,commList); - } - if (CollectionUtils.isNotEmpty(sourceList)){ - result.put(TABLESOURCE,sourceList); - } - if (CollectionUtils.isNotEmpty(sinkList)){ - result.put(TABLESINK,sinkList); - } - - return result; - } - - private List splitSemiColon(String sqlContext) { - boolean inQuotes = false; - boolean escape = false; - - List ret = new ArrayList<>(); - - char quoteChar = '"'; - int beginIndex = 0; - for (int index = 0; index < sqlContext.length(); index++) { - char c = sqlContext.charAt(index); - switch (c) { - case ';': - if (!inQuotes) { - ret.add(sqlContext.substring(beginIndex, index)); - beginIndex = index + 1; - } - break; - case '"': - case '\'': - if (!escape) { - if (!inQuotes) { - quoteChar = c; - inQuotes = !inQuotes; - } else { - if (c == quoteChar) { - inQuotes = !inQuotes; - } - } - } - break; - default: - break; - } - - if (escape) { - escape = false; - } else if (c == '\\') { - escape = true; - } - } - - if (beginIndex < sqlContext.length()) { - ret.add(sqlContext.substring(beginIndex)); - } - - return ret; - } -} \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" "b/sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" deleted file mode 100644 index ccbf9f9..0000000 --- "a/sql\350\247\243\346\236\220/parser/ReplaceTableColum.java" +++ /dev/null @@ -1,56 +0,0 @@ -/** - 替换用户输入的表名,列名中存在随意书写的问题,将这些关键字段统一为大写或者小写 - 主要使用是先将用户输入的sql传入到calcite parser进行解析,解析后对应是SqlNode,变为String后表名,列名自动添加``处理,我们只要拿到``字段处理就可以了。 - **/ -public class ReplaceTableColumn { - /** - * 解析sql获取SqlNode - * @param sql - * @return - */ - public SqlNodeList getSqlNodeList(String sql) { - if (StringUtils.isBlank(sql)){ - return null; - } - - StringReader in = new StringReader(sql); - SqlParserImpl impl = new SqlParserImpl(in); - - // back tick as the quote - impl.switchTo("BTID"); - impl.setTabSize(1); - impl.setQuotedCasing(Lex.JAVA.quotedCasing); - impl.setUnquotedCasing(Lex.JAVA.unquotedCasing); - impl.setIdentifierMaxLength(DEFAULT_IDENTIFIER_MAX_LENGTH); - - try { - return impl.SqlStmtsEof(); - } catch (ParseException e) { - logger.error("input sql parse error : ",e); - } - - return null; - } - - /** - * 替换sql中的列,表名称 - * @param sql - * @return 替换成功的sql - */ - public String replaceInputTableColumn(String sql){ - String regEx = "`(.*?)`"; - Pattern pattern = Pattern.compile(regEx); - Matcher matcher = pattern.matcher(sql); - - String replaceAll = sql; - while(matcher.find()){ - String group = matcher.group(); - //替换为大写 - replaceAll = replaceAll.replace(group, group.toUpperCase()); - } - - return replaceAll; - } - -} -} \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" "b/sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" deleted file mode 100644 index 4072007..0000000 --- "a/sql\350\247\243\346\236\220/parser/SqlCreateFunction.java" +++ /dev/null @@ -1,62 +0,0 @@ - -import org.apache.calcite.sql.*; -import org.apache.calcite.sql.parser.SqlParserPos; - -import java.util.Arrays; -import java.util.List; - -public class SqlCreateFunction extends SqlCall { - private static final SqlSpecialOperator OPERATOR = new SqlSpecialOperator("UDF", SqlKind.OTHER_DDL); - private final SqlIdentifier dbName; - private final SqlIdentifier funcName; - private final SqlNode className; - private final SqlNodeList jarList; - - public SqlCreateFunction(SqlParserPos pos, SqlIdentifier dbName, - SqlIdentifier funcName, SqlNode className, SqlNodeList jarList) { - super(pos); - this.dbName = dbName; - this.funcName = funcName; - this.className = className; - this.jarList = jarList; - } - - @Override - public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { - UnparseUtil u = new UnparseUtil(writer, leftPrec, rightPrec); - u.keyword("CREATE", "FUNCTION"); - if (dbName != null) { - u.node(dbName).keyword("."); - } - u.node(funcName).keyword("AS").node(className); - if (jarList != null) { - u.keyword("USING").nodeList(jarList); - } - } - - @Override - public SqlOperator getOperator() { - return OPERATOR; - } - - @Override - public List getOperandList() { - return Arrays.asList(dbName, funcName, className, jarList); - } - - public SqlIdentifier dbName() { - return dbName; - } - - public SqlIdentifier funcName() { - return funcName; - } - - public SqlNode className() { - return className; - } - - public SqlNodeList jarList() { - return jarList; - } -} \ No newline at end of file diff --git "a/sql\350\247\243\346\236\220/parser/SqlParserImpl.java" "b/sql\350\247\243\346\236\220/parser/SqlParserImpl.java" deleted file mode 100644 index 4ccf90a..0000000 --- "a/sql\350\247\243\346\236\220/parser/SqlParserImpl.java" +++ /dev/null @@ -1,24129 +0,0 @@ -import java.util.*; - - - -import org.apache.calcite.avatica.util.Casing; -import org.apache.calcite.avatica.util.DateTimeUtils; -import org.apache.calcite.avatica.util.TimeUnit; -import org.apache.calcite.rel.type.RelDataType; -import org.apache.calcite.runtime.CalciteContextException; -import org.apache.calcite.sql.JoinConditionType; -import org.apache.calcite.sql.JoinType; -import org.apache.calcite.sql.SqlAlter; -import org.apache.calcite.sql.SqlBinaryOperator; -import org.apache.calcite.sql.SqlCall; -import org.apache.calcite.sql.SqlCharStringLiteral; -import org.apache.calcite.sql.SqlCollation; -import org.apache.calcite.sql.SqlDataTypeSpec; -import org.apache.calcite.sql.SqlDateLiteral; -import org.apache.calcite.sql.SqlDelete; -import org.apache.calcite.sql.SqlDescribeSchema; -import org.apache.calcite.sql.SqlDescribeTable; -import org.apache.calcite.sql.SqlDynamicParam; -import org.apache.calcite.sql.SqlExplain; -import org.apache.calcite.sql.SqlExplainFormat; -import org.apache.calcite.sql.SqlExplainLevel; -import org.apache.calcite.sql.SqlFunction; -import org.apache.calcite.sql.SqlFunctionCategory; -import org.apache.calcite.sql.SqlIdentifier; -import org.apache.calcite.sql.SqlInsert; -import org.apache.calcite.sql.SqlInsertKeyword; -import org.apache.calcite.sql.SqlIntervalLiteral; -import org.apache.calcite.sql.SqlIntervalQualifier; -import org.apache.calcite.sql.SqlJdbcDataTypeName; -import org.apache.calcite.sql.SqlJdbcFunctionCall; -import org.apache.calcite.sql.SqlJoin; -import org.apache.calcite.sql.SqlKind; -import org.apache.calcite.sql.SqlLiteral; -import org.apache.calcite.sql.SqlMatchRecognize; -import org.apache.calcite.sql.SqlMerge; -import org.apache.calcite.sql.SqlNode; -import org.apache.calcite.sql.SqlNodeList; -import org.apache.calcite.sql.SqlNumericLiteral; -import org.apache.calcite.sql.SqlOperator; -import org.apache.calcite.sql.SqlOrderBy; -import org.apache.calcite.sql.SqlPostfixOperator; -import org.apache.calcite.sql.SqlPrefixOperator; -import org.apache.calcite.sql.SqlSampleSpec; -import org.apache.calcite.sql.SqlSelect; -import org.apache.calcite.sql.SqlSelectKeyword; -import org.apache.calcite.sql.SqlSetOption; -import org.apache.calcite.sql.SqlTimeLiteral; -import org.apache.calcite.sql.SqlTimestampLiteral; -import org.apache.calcite.sql.SqlUnnestOperator; -import org.apache.calcite.sql.SqlUpdate; -import org.apache.calcite.sql.SqlUtil; -import org.apache.calcite.sql.SqlWindow; -import org.apache.calcite.sql.SqlWith; -import org.apache.calcite.sql.SqlWithItem; -import org.apache.calcite.sql.fun.SqlCase; -import org.apache.calcite.sql.fun.OracleSqlOperatorTable; -import org.apache.calcite.sql.fun.SqlStdOperatorTable; -import org.apache.calcite.sql.fun.SqlTrimFunction; -import org.apache.calcite.sql.parser.Span; -import org.apache.calcite.sql.parser.SqlAbstractParserImpl; -import org.apache.calcite.sql.parser.SqlParseException; -import org.apache.calcite.sql.parser.SqlParser; -import org.apache.calcite.sql.parser.SqlParserImplFactory; -import org.apache.calcite.sql.parser.SqlParserPos; -import org.apache.calcite.sql.parser.SqlParserUtil; -import org.apache.calcite.sql.type.SqlTypeName; -import org.apache.calcite.sql.validate.SqlConformance; -import org.apache.calcite.util.Glossary; -import org.apache.calcite.util.NlsString; -import org.apache.calcite.util.Pair; -import org.apache.calcite.util.Util; -import org.apache.calcite.util.trace.CalciteTrace; - -import com.google.common.collect.Lists; - -import org.slf4j.Logger; - -import java.io.Reader; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Collections; -import java.util.List; -import java.util.Locale; - -import static org.apache.calcite.util.Static.RESOURCE; - -/** - * SQL parser, generated from Parser.jj by JavaCC. - * - *

The public wrapper for this parser is {@link SqlParser}. - */ -public class SqlParserImpl extends SqlAbstractParserImpl implements SqlParserImplConstants { - private static final Logger LOGGER = CalciteTrace.getParserTracer(); - - // Can't use quoted literal because of a bug in how JavaCC translates - // backslash-backslash. - private static final char BACKSLASH = 0x5c; - private static final char DOUBLE_QUOTE = 0x22; - private static final String DQ = DOUBLE_QUOTE + ""; - private static final String DQDQ = DQ + DQ; - - private static Metadata metadata; - - private Casing unquotedCasing; - private Casing quotedCasing; - private int identifierMaxLength; - private SqlConformance conformance; - - /** - * {@link SqlParserImplFactory} implementation for creating parser. - */ - public static final SqlParserImplFactory FACTORY = new SqlParserImplFactory() { - public SqlAbstractParserImpl getParser(Reader stream) { - return new SqlParserImpl(stream); - } - }; - - public SqlParseException normalizeException(Throwable ex) - { - try { - if (ex instanceof ParseException) { - ex = cleanupParseException((ParseException) ex); - } - return convertException(ex); - } catch (ParseException e) { - throw new AssertionError(e); - } - } - - public Metadata getMetadata() - { - synchronized (SqlParserImpl.class) { - if (metadata == null) { - metadata = new MetadataImpl( - new SqlParserImpl(new java.io.StringReader(""))); - } - return metadata; - } - } - - public void setTabSize(int tabSize) - { - jj_input_stream.setTabSize(tabSize); - } - - public void switchTo(String stateName) - { - int state = Arrays.asList(SqlParserImplTokenManager.lexStateNames) - .indexOf(stateName); - token_source.SwitchTo(state); - } - - public void setQuotedCasing(Casing quotedCasing) - { - this.quotedCasing = quotedCasing; - } - - public void setUnquotedCasing(Casing unquotedCasing) - { - this.unquotedCasing = unquotedCasing; - } - - public void setIdentifierMaxLength(int identifierMaxLength) - { - this.identifierMaxLength = identifierMaxLength; - } - - public void setConformance(SqlConformance conformance) - { - this.conformance = conformance; - } - - public SqlNode parseSqlExpressionEof() throws Exception - { - return SqlExpressionEof(); - } - - public SqlNode parseSqlStmtEof() throws Exception - { - return SqlStmtEof(); - } - - private SqlNode extend(SqlNode table, SqlNodeList extendList) { - return SqlStdOperatorTable.EXTEND.createCall( - Span.of(table, extendList).pos(), table, extendList); - } - - void debug_message1() throws ParseException { - LOGGER.info("{} , {}", getToken(0).image, getToken(1).image); - } - - String unquotedIdentifier() throws ParseException { - return SqlParserUtil.strip(getToken(0).image, null, null, null, - unquotedCasing); - } - - final public String NonReservedKeyWord() throws ParseException { - String kw; - kw = CommonNonReservedKeyWord(); - {if (true) return kw;} - throw new Error("Missing return statement in function"); - } - -/** - * Allows parser to be extended with new types of table references. The - * default implementation of this production is empty. - */ - final public SqlNode ExtendedTableRef() throws ParseException { - UnusedExtension(); - {if (true) return null;} - throw new Error("Missing return statement in function"); - } - -/** - * Allows an OVER clause following a table expression as an extension to - * standard SQL syntax. The default implementation of this production is empty. - */ - final public SqlNode TableOverOpt() throws ParseException { - {if (true) return null;} - throw new Error("Missing return statement in function"); - } - -/* - * Parses dialect-specific keywords immediately following the SELECT keyword. - */ - final public void SqlSelectKeywords(List keywords) throws ParseException { - E(); - } - -/* - * Parses dialect-specific keywords immediately following the INSERT keyword. - */ - final public void SqlInsertKeywords(List keywords) throws ParseException { - E(); - } - - final public SqlNode ExtendedBuiltinFunctionCall() throws ParseException { - UnusedExtension(); - {if (true) return null;} - throw new Error("Missing return statement in function"); - } - -/* -* Parse Floor/Ceil function parameters -*/ - final public SqlNode FloorCeilOptions(Span s, boolean floorFlag) throws ParseException { - SqlNode node; - node = StandardFloorCeilOptions(s, floorFlag); - {if (true) return node;} - throw new Error("Missing return statement in function"); - } - - void E() throws ParseException { - } - - List startList(Object o) throws ParseException { - List list = new ArrayList(); - list.add(o); - return list; - } - - protected SqlParserPos getPos() throws ParseException { - return new SqlParserPos( - token.beginLine, - token.beginColumn, - token.endLine, - token.endColumn); - } - - Span span() throws ParseException { - return Span.of(getPos()); - } - - void checkQueryExpression(ExprContext exprContext) throws ParseException { - switch (exprContext) { - case ACCEPT_NON_QUERY: - case ACCEPT_SUB_QUERY: - case ACCEPT_CURSOR: - throw SqlUtil.newContextException(getPos(), - RESOURCE.illegalQueryExpression()); - } - } - - void checkNonQueryExpression(ExprContext exprContext) throws ParseException { - switch (exprContext) { - case ACCEPT_QUERY: - throw SqlUtil.newContextException(getPos(), - RESOURCE.illegalNonQueryExpression()); - } - } - - SqlParseException convertException(Throwable ex) throws ParseException { - if (ex instanceof SqlParseException) { - return (SqlParseException) ex; - } - SqlParserPos pos = null; - int[][] expectedTokenSequences = null; - String[] tokenImage = null; - if (ex instanceof ParseException) { - ParseException pex = (ParseException) ex; - expectedTokenSequences = pex.expectedTokenSequences; - tokenImage = pex.tokenImage; - if (pex.currentToken != null) { - final Token token = pex.currentToken.next; - pos = new SqlParserPos( - token.beginLine, - token.beginColumn, - token.endLine, - token.endColumn); - } - } else if (ex instanceof TokenMgrError) { - TokenMgrError tme = (TokenMgrError) ex; - expectedTokenSequences = null; - tokenImage = null; - // Example: - // Lexical error at line 3, column 24. Encountered "#" after "a". - final java.util.regex.Pattern pattern = java.util.regex.Pattern.compile( - "(?s)Lexical error at line ([0-9]+), column ([0-9]+).*"); - java.util.regex.Matcher matcher = pattern.matcher(ex.getMessage()); - if (matcher.matches()) { - int line = Integer.parseInt(matcher.group(1)); - int column = Integer.parseInt(matcher.group(2)); - pos = new SqlParserPos(line, column, line, column); - } - } else if (ex instanceof CalciteContextException) { - // CalciteContextException is the standard wrapper for exceptions - // produced by the validator, but in the parser, the standard is - // SqlParseException; so, strip it away. In case you were wondering, - // the CalciteContextException appears because the parser - // occasionally calls into validator-style code such as - // SqlSpecialOperator.reduceExpr. - CalciteContextException ece = - (CalciteContextException) ex; - pos = new SqlParserPos( - ece.getPosLine(), - ece.getPosColumn(), - ece.getEndPosLine(), - ece.getEndPosColumn()); - ex = ece.getCause(); - } - - return new SqlParseException( - ex.getMessage(), pos, expectedTokenSequences, tokenImage, ex); - } - - ParseException cleanupParseException(ParseException ex) throws ParseException { - if (ex.expectedTokenSequences == null) { - return ex; - } - int iIdentifier = Arrays.asList(ex.tokenImage).indexOf(""); - - // Find all sequences in the error which contain identifier. For - // example, - // {} - // {A} - // {B, C} - // {D, } - // {D, A} - // {D, B} - // - // would yield - // {} - // {D} - boolean id = false; - final List prefixList = new ArrayList(); - for (int i = 0; i < ex.expectedTokenSequences.length; ++i) { - int[] seq = ex.expectedTokenSequences[i]; - int j = seq.length - 1; - int i1 = seq[j]; - if (i1 == iIdentifier) { - int[] prefix = new int[j]; - System.arraycopy(seq, 0, prefix, 0, j); - prefixList.add(prefix); - } - } - - if (prefixList.isEmpty()) { - return ex; - } - - int[][] prefixes = (int[][]) - prefixList.toArray(new int[prefixList.size()][]); - - // Since was one of the possible productions, - // we know that the parser will also have included all - // of the non-reserved keywords (which are treated as - // identifiers in non-keyword contexts). So, now we need - // to clean those out, since they're totally irrelevant. - - final List list = new ArrayList(); - Metadata metadata = getMetadata(); - for (int i = 0; i < ex.expectedTokenSequences.length; ++i) { - int [] seq = ex.expectedTokenSequences[i]; - String tokenImage = ex.tokenImage[seq[seq.length - 1]]; - String token = SqlParserUtil.getTokenVal(tokenImage); - if (token == null || !metadata.isNonReservedKeyword(token)) { - list.add(seq); - continue; - } - boolean match = matchesPrefix(seq, prefixes); - if (!match) { - list.add(seq); - } - } - - ex.expectedTokenSequences = - (int [][]) list.toArray(new int [list.size()][]); - return ex; - } - - boolean matchesPrefix(int[] seq, int[][] prefixes) throws ParseException { - nextPrefix: - for (int[] prefix : prefixes) { - if (seq.length == prefix.length + 1) { - for (int k = 0; k < prefix.length; k++) { - if (prefix[k] != seq[k]) { - continue nextPrefix; - } - } - return true; - } - } - return false; - } - -/***************************************** - * Syntactical Descriptions * - *****************************************/ - -/** - * Parses either a row expression or a query expression with an optional - * ORDER BY. - * - *

Postgres syntax for limit: - * - *

- *    [ LIMIT { count | ALL } ]
- *    [ OFFSET start ]
- *
- * - *

MySQL syntax for limit: - * - *

- *    [ LIMIT { count | start, count } ]
- *
- * - *

SQL:2008 syntax for limit: - * - *

- *    [ OFFSET start { ROW | ROWS } ]
- *    [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
- *
- */ - final public SqlNode OrderedQueryOrExpr(ExprContext exprContext) throws ParseException { - SqlNode e; - SqlNodeList orderBy = null; - SqlNode start = null; - SqlNode count = null; - e = QueryOrExpr(exprContext); - if (jj_2_1(2)) { - // use the syntactic type of the expression we just parsed - // to decide whether ORDER BY makes sense - orderBy = OrderBy(e.isA(SqlKind.QUERY)); - } else { - ; - } - if (jj_2_5(2)) { - jj_consume_token(LIMIT); - if (jj_2_2(2)) { - // MySQL-style syntax. "LIMIT start, count" - start = UnsignedNumericLiteralOrParam(); - jj_consume_token(COMMA); - count = UnsignedNumericLiteralOrParam(); - if (!this.conformance.isLimitStartCountAllowed()) { - {if (true) throw new ParseException(RESOURCE.limitStartCountNotAllowed().str());} - } - } else if (jj_2_3(2)) { - count = UnsignedNumericLiteralOrParam(); - } else if (jj_2_4(2)) { - jj_consume_token(ALL); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - if (jj_2_9(2)) { - jj_consume_token(OFFSET); - start = UnsignedNumericLiteralOrParam(); - if (jj_2_8(2)) { - if (jj_2_6(2)) { - jj_consume_token(ROW); - } else if (jj_2_7(2)) { - jj_consume_token(ROWS); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - } else { - ; - } - if (jj_2_14(2)) { - jj_consume_token(FETCH); - if (jj_2_10(2)) { - jj_consume_token(FIRST); - } else if (jj_2_11(2)) { - jj_consume_token(NEXT); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - count = UnsignedNumericLiteralOrParam(); - if (jj_2_12(2)) { - jj_consume_token(ROW); - } else if (jj_2_13(2)) { - jj_consume_token(ROWS); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(ONLY); - } else { - ; - } - if (orderBy != null || start != null || count != null) { - if (orderBy == null) { - orderBy = SqlNodeList.EMPTY; - } - e = new SqlOrderBy(getPos(), e, orderBy, start, count); - - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a leaf in a query expression (SELECT, VALUES or TABLE). - */ - final public SqlNode LeafQuery(ExprContext exprContext) throws ParseException { - SqlNode e; - if (jj_2_15(2)) { - // ensure a query is legal in this context - checkQueryExpression(exprContext); - e = SqlSelect(); - {if (true) return e;} - } else if (jj_2_16(2)) { - e = TableConstructor(); - {if (true) return e;} - } else if (jj_2_17(2)) { - e = ExplicitTable(getPos()); - {if (true) return e;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a parenthesized query or single row expression. - */ - final public SqlNode ParenthesizedExpression(ExprContext exprContext) throws ParseException { - SqlNode e; - jj_consume_token(LPAREN); - // we've now seen left paren, so queries inside should - // be allowed as sub-queries - switch (exprContext) { - case ACCEPT_SUB_QUERY: - exprContext = ExprContext.ACCEPT_NONCURSOR; - break; - case ACCEPT_CURSOR: - exprContext = ExprContext.ACCEPT_ALL; - break; - } - e = OrderedQueryOrExpr(exprContext); - jj_consume_token(RPAREN); - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a parenthesized query or comma-list of row expressions. - * - *

REVIEW jvs 8-Feb-2004: There's a small hole in this production. It can be - * used to construct something like - * - *

- * WHERE x IN (select count(*) from t where c=d,5)
- *
- * - *

which should be illegal. The above is interpreted as equivalent to - * - *

- * WHERE x IN ((select count(*) from t where c=d),5)
- *
- * - *

which is a legal use of a sub-query. The only way to fix the hole is to - * be able to remember whether a subexpression was parenthesized or not, which - * means preserving parentheses in the SqlNode tree. This is probably - * desirable anyway for use in purely syntactic parsing applications (e.g. SQL - * pretty-printer). However, if this is done, it's important to also make - * isA() on the paren node call down to its operand so that we can - * always correctly discriminate a query from a row expression. - */ - final public SqlNodeList ParenthesizedQueryOrCommaList(ExprContext exprContext) throws ParseException { - SqlNode e; - List list; - ExprContext firstExprContext = exprContext; - final Span s; - jj_consume_token(LPAREN); - // we've now seen left paren, so a query by itself should - // be interpreted as a sub-query - s = span(); - switch (exprContext) { - case ACCEPT_SUB_QUERY: - firstExprContext = ExprContext.ACCEPT_NONCURSOR; - break; - case ACCEPT_CURSOR: - firstExprContext = ExprContext.ACCEPT_ALL; - break; - } - e = OrderedQueryOrExpr(firstExprContext); - list = startList(e); - label_1: - while (true) { - if (jj_2_18(2)) { - ; - } else { - break label_1; - } - jj_consume_token(COMMA); - // a comma-list can't appear where only a query is expected - checkNonQueryExpression(exprContext); - e = Expression(exprContext); - list.add(e); - } - jj_consume_token(RPAREN); - {if (true) return new SqlNodeList(list, s.end(this));} - throw new Error("Missing return statement in function"); - } - -/** As ParenthesizedQueryOrCommaList, but allows DEFAULT - * in place of any of the expressions. For example, - * {@code (x, DEFAULT, null, DEFAULT)}. */ - final public SqlNodeList ParenthesizedQueryOrCommaListWithDefault(ExprContext exprContext) throws ParseException { - SqlNode e; - List list; - ExprContext firstExprContext = exprContext; - final Span s; - jj_consume_token(LPAREN); - // we've now seen left paren, so a query by itself should - // be interpreted as a sub-query - s = span(); - switch (exprContext) { - case ACCEPT_SUB_QUERY: - firstExprContext = ExprContext.ACCEPT_NONCURSOR; - break; - case ACCEPT_CURSOR: - firstExprContext = ExprContext.ACCEPT_ALL; - break; - } - if (jj_2_19(2)) { - e = OrderedQueryOrExpr(firstExprContext); - } else if (jj_2_20(2)) { - e = Default(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - list = startList(e); - label_2: - while (true) { - if (jj_2_21(2)) { - ; - } else { - break label_2; - } - jj_consume_token(COMMA); - // a comma-list can't appear where only a query is expected - checkNonQueryExpression(exprContext); - if (jj_2_22(2)) { - e = Expression(exprContext); - } else if (jj_2_23(2)) { - e = Default(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - list.add(e); - } - jj_consume_token(RPAREN); - {if (true) return new SqlNodeList(list, s.end(this));} - throw new Error("Missing return statement in function"); - } - -/** - * Parses function parameter lists including DISTINCT keyword recognition, - * DEFAULT, and named argument assignment. - */ - final public List FunctionParameterList(ExprContext exprContext) throws ParseException { - SqlNode e = null; - List list = new ArrayList(); - jj_consume_token(LPAREN); - if (jj_2_26(2)) { - if (jj_2_24(2)) { - jj_consume_token(DISTINCT); - e = SqlSelectKeyword.DISTINCT.symbol(getPos()); - } else if (jj_2_25(2)) { - jj_consume_token(ALL); - e = SqlSelectKeyword.ALL.symbol(getPos()); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - list.add(e); - Arg0(list, exprContext); - label_3: - while (true) { - if (jj_2_27(2)) { - ; - } else { - break label_3; - } - jj_consume_token(COMMA); - // a comma-list can't appear where only a query is expected - checkNonQueryExpression(exprContext); - Arg(list, exprContext); - } - jj_consume_token(RPAREN); - {if (true) return list;} - throw new Error("Missing return statement in function"); - } - - final public void Arg0(List list, ExprContext exprContext) throws ParseException { - SqlIdentifier name = null; - SqlNode e = null; - final ExprContext firstExprContext; - { - // we've now seen left paren, so queries inside should - // be allowed as sub-queries - switch (exprContext) { - case ACCEPT_SUB_QUERY: - firstExprContext = ExprContext.ACCEPT_NONCURSOR; - break; - case ACCEPT_CURSOR: - firstExprContext = ExprContext.ACCEPT_ALL; - break; - default: - firstExprContext = exprContext; - break; - } - } - if (jj_2_28(2)) { - name = SimpleIdentifier(); - jj_consume_token(NAMED_ARGUMENT_ASSIGNMENT); - } else { - ; - } - if (jj_2_29(2)) { - e = Default(); - } else if (jj_2_30(2)) { - e = OrderedQueryOrExpr(firstExprContext); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (e != null) { - if (name != null) { - e = SqlStdOperatorTable.ARGUMENT_ASSIGNMENT.createCall( - Span.of(name, e).pos(), e, name); - } - list.add(e); - } - } - - final public void Arg(List list, ExprContext exprContext) throws ParseException { - SqlIdentifier name = null; - SqlNode e = null; - if (jj_2_31(2)) { - name = SimpleIdentifier(); - jj_consume_token(NAMED_ARGUMENT_ASSIGNMENT); - } else { - ; - } - if (jj_2_32(2)) { - e = Default(); - } else if (jj_2_33(2)) { - e = Expression(exprContext); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (e != null) { - if (name != null) { - e = SqlStdOperatorTable.ARGUMENT_ASSIGNMENT.createCall( - Span.of(name, e).pos(), e, name); - } - list.add(e); - } - } - - final public SqlNode Default() throws ParseException { - jj_consume_token(DEFAULT_); - {if (true) return SqlStdOperatorTable.DEFAULT.createCall(getPos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a query (SELECT, UNION, INTERSECT, EXCEPT, VALUES, TABLE) followed by - * the end-of-file symbol. - */ - final public SqlNode SqlQueryEof() throws ParseException { - SqlNode query; - query = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); - jj_consume_token(0); - {if (true) return query;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses an SQL statement. - */ - final public SqlNode SqlStmt() throws ParseException { - SqlNode stmt; - if (jj_2_34(2)) { - stmt = SqlCreateFunction(); - } else if (jj_2_35(2)) { - stmt = SqlSetOption(Span.of(), null); - } else if (jj_2_36(2)) { - stmt = SqlAlter(); - } else if (jj_2_37(2)) { - stmt = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); - } else if (jj_2_38(2)) { - stmt = SqlExplain(); - } else if (jj_2_39(2)) { - stmt = SqlDescribe(); - } else if (jj_2_40(2)) { - stmt = SqlInsert(); - } else if (jj_2_41(2)) { - stmt = SqlDelete(); - } else if (jj_2_42(2)) { - stmt = SqlUpdate(); - } else if (jj_2_43(2)) { - stmt = SqlMerge(); - } else if (jj_2_44(2)) { - stmt = SqlProcedureCall(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return stmt;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses an SQL statement followed by the end-of-file symbol. - */ - final public SqlNode SqlStmtEof() throws ParseException { - SqlNode stmt; - stmt = SqlStmt(); - jj_consume_token(0); - {if (true) return stmt;} - throw new Error("Missing return statement in function"); - } - - final private void FunctionJarDef(List list) throws ParseException { - SqlParserPos pos; - SqlNode uri; - if (jj_2_45(2)) { - jj_consume_token(JAR); - } else if (jj_2_46(2)) { - jj_consume_token(FILE); - } else if (jj_2_47(2)) { - jj_consume_token(ARCHIVE); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - pos = getPos(); - list.add(StringLiteral()); - } - - final public SqlNodeList FunctionJarDefList() throws ParseException { - SqlParserPos pos; - List list = Lists.newArrayList(); - jj_consume_token(USING); - pos = getPos(); - pos = getPos(); - FunctionJarDef(list); - label_4: - while (true) { - if (jj_2_48(2)) { - ; - } else { - break label_4; - } - jj_consume_token(COMMA); - FunctionJarDef(list); - } - {if (true) return new SqlNodeList(list, pos.plus(getPos()));} - throw new Error("Missing return statement in function"); - } - -/** - * CREATE FUNCTION [db_name.]function_name AS class_name - * [USING JAR|FILE|ARCHIVE 'file_uri' [, JAR|FILE|ARCHIVE 'file_uri'] - */ - final public SqlCreateFunction SqlCreateFunction() throws ParseException { - SqlParserPos pos; - SqlIdentifier dbName = null; - SqlIdentifier funcName; - SqlNode className; - SqlNodeList jarList = null; - jj_consume_token(CREATE); - pos = getPos(); - jj_consume_token(FUNCTION); - if (jj_2_49(2)) { - dbName = SimpleIdentifier(); - jj_consume_token(DOT); - } else { - ; - } - funcName = SimpleIdentifier(); - jj_consume_token(AS); - className = StringLiteral(); - if (jj_2_50(2)) { - jarList = FunctionJarDefList(); - } else { - ; - } - {if (true) return new SqlCreateFunction(pos, dbName, funcName, className, jarList);} - throw new Error("Missing return statement in function"); - } - - final private void SqlStmtList(SqlNodeList list) throws ParseException { - list.add(SqlStmt()); - } - - final public SqlNodeList SqlStmtsEof() throws ParseException { - SqlParserPos pos; - SqlNodeList stmts; - pos = getPos(); - stmts = new SqlNodeList(pos); - stmts.add(SqlStmt()); - label_5: - while (true) { - if (jj_2_51(2)) { - ; - } else { - break label_5; - } - jj_consume_token(SEMICOLON); - SqlStmtList(stmts); - } - if (jj_2_52(2)) { - jj_consume_token(SEMICOLON); - } else { - ; - } - jj_consume_token(0); - {if (true) return stmts;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a leaf SELECT expression without ORDER BY. - */ - final public SqlSelect SqlSelect() throws ParseException { - final List keywords = Lists.newArrayList(); - final SqlNodeList keywordList; - List selectList; - final SqlNode fromClause; - final SqlNode where; - final SqlNodeList groupBy; - final SqlNode having; - final SqlNodeList windowDecls; - final Span s; - jj_consume_token(SELECT); - s = span(); - SqlSelectKeywords(keywords); - if (jj_2_53(2)) { - jj_consume_token(STREAM); - keywords.add(SqlSelectKeyword.STREAM.symbol(getPos())); - } else { - ; - } - if (jj_2_56(2)) { - if (jj_2_54(2)) { - jj_consume_token(DISTINCT); - keywords.add(SqlSelectKeyword.DISTINCT.symbol(getPos())); - } else if (jj_2_55(2)) { - jj_consume_token(ALL); - keywords.add(SqlSelectKeyword.ALL.symbol(getPos())); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - keywordList = new SqlNodeList(keywords, s.addAll(keywords).pos()); - selectList = SelectList(); - if (jj_2_57(2)) { - jj_consume_token(FROM); - fromClause = FromClause(); - where = WhereOpt(); - groupBy = GroupByOpt(); - having = HavingOpt(); - windowDecls = WindowOpt(); - } else { - E(); - fromClause = null; - where = null; - groupBy = null; - having = null; - windowDecls = null; - } - {if (true) return new SqlSelect(s.end(this), keywordList, - new SqlNodeList(selectList, Span.of(selectList).pos()), - fromClause, where, groupBy, having, windowDecls, null, null, null);} - throw new Error("Missing return statement in function"); - } - -/* - * Abstract production: - * - * void SqlSelectKeywords(List keywords) - * - * Parses dialect-specific keywords immediately following the SELECT keyword. - */ - -/** - * Parses an EXPLAIN PLAN statement. - */ - final public SqlNode SqlExplain() throws ParseException { - SqlNode stmt; - SqlExplainLevel detailLevel = SqlExplainLevel.EXPPLAN_ATTRIBUTES; - SqlExplain.Depth depth; - final SqlExplainFormat format; - jj_consume_token(EXPLAIN); - jj_consume_token(PLAN); - if (jj_2_58(2)) { - detailLevel = ExplainDetailLevel(); - } else { - ; - } - depth = ExplainDepth(); - if (jj_2_59(2)) { - jj_consume_token(AS); - jj_consume_token(XML); - format = SqlExplainFormat.XML; - } else if (jj_2_60(2)) { - jj_consume_token(AS); - jj_consume_token(JSON); - format = SqlExplainFormat.JSON; - } else { - format = SqlExplainFormat.TEXT; - } - jj_consume_token(FOR); - stmt = SqlQueryOrDml(); - {if (true) return new SqlExplain(getPos(), - stmt, - detailLevel.symbol(SqlParserPos.ZERO), - depth.symbol(SqlParserPos.ZERO), - format.symbol(SqlParserPos.ZERO), - nDynamicParams);} - throw new Error("Missing return statement in function"); - } - -/** Parses a query (SELECT or VALUES) - * or DML statement (INSERT, UPDATE, DELETE, MERGE). */ - final public SqlNode SqlQueryOrDml() throws ParseException { - SqlNode stmt; - if (jj_2_61(2)) { - stmt = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); - } else if (jj_2_62(2)) { - stmt = SqlInsert(); - } else if (jj_2_63(2)) { - stmt = SqlDelete(); - } else if (jj_2_64(2)) { - stmt = SqlUpdate(); - } else if (jj_2_65(2)) { - stmt = SqlMerge(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return stmt;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses WITH TYPE | WITH IMPLEMENTATION | WITHOUT IMPLEMENTATION modifier for - * EXPLAIN PLAN. - */ - final public SqlExplain.Depth ExplainDepth() throws ParseException { - if (jj_2_66(2)) { - jj_consume_token(WITH); - jj_consume_token(TYPE); - {if (true) return SqlExplain.Depth.TYPE;} - } else if (jj_2_67(2)) { - jj_consume_token(WITH); - jj_consume_token(IMPLEMENTATION); - {if (true) return SqlExplain.Depth.PHYSICAL;} - } else if (jj_2_68(2)) { - jj_consume_token(WITHOUT); - jj_consume_token(IMPLEMENTATION); - {if (true) return SqlExplain.Depth.LOGICAL;} - } else { - {if (true) return SqlExplain.Depth.PHYSICAL;} - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses INCLUDING ALL ATTRIBUTES modifier for EXPLAIN PLAN. - */ - final public SqlExplainLevel ExplainDetailLevel() throws ParseException { - SqlExplainLevel level = SqlExplainLevel.EXPPLAN_ATTRIBUTES; - if (jj_2_70(2)) { - jj_consume_token(EXCLUDING); - jj_consume_token(ATTRIBUTES); - level = SqlExplainLevel.NO_ATTRIBUTES; - } else if (jj_2_71(2)) { - jj_consume_token(INCLUDING); - if (jj_2_69(2)) { - jj_consume_token(ALL); - level = SqlExplainLevel.ALL_ATTRIBUTES; - } else { - ; - } - jj_consume_token(ATTRIBUTES); - - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return level;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a DESCRIBE statement. - */ - final public SqlNode SqlDescribe() throws ParseException { - final Span s; - final SqlIdentifier table; - final SqlIdentifier column; - final SqlIdentifier id; - final SqlNode stmt; - jj_consume_token(DESCRIBE); - s = span(); - if (jj_2_78(2)) { - if (jj_2_72(2)) { - jj_consume_token(DATABASE); - } else if (jj_2_73(2)) { - jj_consume_token(CATALOG); - } else if (jj_2_74(2)) { - jj_consume_token(SCHEMA); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - id = CompoundIdentifier(); - // DESCRIBE DATABASE and DESCRIBE CATALOG currently do the same as - // DESCRIBE SCHEMA but should be different. See - // [CALCITE-1221] Implement DESCRIBE DATABASE, CATALOG, STATEMENT - {if (true) return new SqlDescribeSchema(s.end(id), id);} - } else if (jj_2_79(2147483647)) { - if (jj_2_75(2)) { - jj_consume_token(TABLE); - } else { - ; - } - table = CompoundIdentifier(); - if (jj_2_76(2)) { - column = SimpleIdentifier(); - } else { - E(); - column = null; - } - {if (true) return new SqlDescribeTable(s.add(table).addIf(column).pos(), - table, column);} - } else if (jj_2_80(2)) { - if (jj_2_77(2)) { - jj_consume_token(STATEMENT); - } else { - ; - } - stmt = SqlQueryOrDml(); - // DESCRIBE STATEMENT currently does the same as EXPLAIN. See - // [CALCITE-1221] Implement DESCRIBE DATABASE, CATALOG, STATEMENT - final SqlExplainLevel detailLevel = SqlExplainLevel.EXPPLAN_ATTRIBUTES; - final SqlExplain.Depth depth = SqlExplain.Depth.PHYSICAL; - final SqlExplainFormat format = SqlExplainFormat.TEXT; - {if (true) return new SqlExplain(s.end(stmt), - stmt, - detailLevel.symbol(SqlParserPos.ZERO), - depth.symbol(SqlParserPos.ZERO), - format.symbol(SqlParserPos.ZERO), - nDynamicParams);} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a CALL statement. - */ - final public SqlNode SqlProcedureCall() throws ParseException { - final Span s; - SqlNode routineCall; - jj_consume_token(CALL); - s = span(); - routineCall = NamedRoutineCall(SqlFunctionCategory.USER_DEFINED_PROCEDURE, - ExprContext.ACCEPT_SUB_QUERY); - {if (true) return SqlStdOperatorTable.PROCEDURE_CALL.createCall( - s.end(routineCall), routineCall);} - throw new Error("Missing return statement in function"); - } - - final public SqlNode NamedRoutineCall(SqlFunctionCategory routineType, - ExprContext exprContext) throws ParseException { - SqlIdentifier name; - final List list = Lists.newArrayList(); - final Span s; - name = CompoundIdentifier(); - s = span(); - jj_consume_token(LPAREN); - if (jj_2_82(2)) { - Arg0(list, exprContext); - label_6: - while (true) { - if (jj_2_81(2)) { - ; - } else { - break label_6; - } - jj_consume_token(COMMA); - // a comma-list can't appear where only a query is expected - checkNonQueryExpression(exprContext); - Arg(list, exprContext); - } - } else { - ; - } - jj_consume_token(RPAREN); - {if (true) return createCall(name, s.end(this), routineType, null, list);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses an INSERT statement. - */ - final public SqlNode SqlInsert() throws ParseException { - final List keywords = Lists.newArrayList(); - final SqlNodeList keywordList; - SqlNode table; - SqlNodeList extendList = null; - SqlNode source; - SqlNodeList columnList = null; - final Span s; - if (jj_2_83(2)) { - jj_consume_token(INSERT); - } else if (jj_2_84(2)) { - jj_consume_token(UPSERT); - keywords.add(SqlInsertKeyword.UPSERT.symbol(getPos())); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s = span(); - SqlInsertKeywords(keywords); - keywordList = new SqlNodeList(keywords, s.addAll(keywords).pos()); - jj_consume_token(INTO); - table = CompoundIdentifier(); - if (jj_2_86(5)) { - if (jj_2_85(2)) { - jj_consume_token(EXTEND); - } else { - ; - } - extendList = ExtendList(); - table = extend(table, extendList); - } else { - ; - } - if (jj_2_87(2)) { - final Pair p; - p = ParenthesizedCompoundIdentifierList(); - if (p.right.size() > 0) { - table = extend(table, p.right); - } - if (p.left.size() > 0) { - columnList = p.left; - } - } else { - ; - } - source = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY); - {if (true) return new SqlInsert(s.end(source), keywordList, table, source, - columnList);} - throw new Error("Missing return statement in function"); - } - -/* - * Abstract production: - * - * void SqlInsertKeywords(List keywords) - * - * Parses dialect-specific keywords immediately following the INSERT keyword. - */ - -/** - * Parses a DELETE statement. - */ - final public SqlNode SqlDelete() throws ParseException { - SqlNode table; - SqlNodeList extendList = null; - SqlIdentifier alias = null; - final SqlNode condition; - final Span s; - jj_consume_token(DELETE); - s = span(); - jj_consume_token(FROM); - table = CompoundIdentifier(); - if (jj_2_89(2)) { - if (jj_2_88(2)) { - jj_consume_token(EXTEND); - } else { - ; - } - extendList = ExtendList(); - table = extend(table, extendList); - } else { - ; - } - if (jj_2_91(2)) { - if (jj_2_90(2)) { - jj_consume_token(AS); - } else { - ; - } - alias = SimpleIdentifier(); - } else { - ; - } - condition = WhereOpt(); - {if (true) return new SqlDelete(s.add(table).addIf(extendList).addIf(alias) - .addIf(condition).pos(), table, condition, null, alias);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses an UPDATE statement. - */ - final public SqlNode SqlUpdate() throws ParseException { - SqlNode table; - SqlNodeList extendList = null; - SqlIdentifier alias = null; - SqlNode condition; - SqlNodeList sourceExpressionList; - SqlNodeList targetColumnList; - SqlIdentifier id; - SqlNode exp; - final Span s; - jj_consume_token(UPDATE); - s = span(); - table = CompoundIdentifier(); - targetColumnList = new SqlNodeList(s.pos()); - sourceExpressionList = new SqlNodeList(s.pos()); - if (jj_2_93(2)) { - if (jj_2_92(2)) { - jj_consume_token(EXTEND); - } else { - ; - } - extendList = ExtendList(); - table = extend(table, extendList); - } else { - ; - } - if (jj_2_95(2)) { - if (jj_2_94(2)) { - jj_consume_token(AS); - } else { - ; - } - alias = SimpleIdentifier(); - } else { - ; - } - jj_consume_token(SET); - id = SimpleIdentifier(); - targetColumnList.add(id); - jj_consume_token(EQ); - exp = Expression(ExprContext.ACCEPT_SUB_QUERY); - // TODO: support DEFAULT also - sourceExpressionList.add(exp); - label_7: - while (true) { - if (jj_2_96(2)) { - ; - } else { - break label_7; - } - jj_consume_token(COMMA); - id = SimpleIdentifier(); - targetColumnList.add(id); - jj_consume_token(EQ); - exp = Expression(ExprContext.ACCEPT_SUB_QUERY); - sourceExpressionList.add(exp); - } - condition = WhereOpt(); - {if (true) return new SqlUpdate(s.addAll(targetColumnList) - .addAll(sourceExpressionList).addIf(condition).pos(), table, - targetColumnList, sourceExpressionList, condition, null, alias);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a MERGE statement. - */ - final public SqlNode SqlMerge() throws ParseException { - SqlNode table; - SqlNodeList extendList = null; - SqlIdentifier alias = null; - SqlNode sourceTableRef; - SqlNode condition; - SqlUpdate updateCall = null; - SqlInsert insertCall = null; - final Span s; - jj_consume_token(MERGE); - s = span(); - jj_consume_token(INTO); - table = CompoundIdentifier(); - if (jj_2_98(2)) { - if (jj_2_97(2)) { - jj_consume_token(EXTEND); - } else { - ; - } - extendList = ExtendList(); - table = extend(table, extendList); - } else { - ; - } - if (jj_2_100(2)) { - if (jj_2_99(2)) { - jj_consume_token(AS); - } else { - ; - } - alias = SimpleIdentifier(); - } else { - ; - } - jj_consume_token(USING); - sourceTableRef = TableRef(); - jj_consume_token(ON); - condition = Expression(ExprContext.ACCEPT_SUB_QUERY); - if (jj_2_102(2)) { - updateCall = WhenMatchedClause(table, alias); - if (jj_2_101(2)) { - insertCall = WhenNotMatchedClause(table); - } else { - ; - } - } else if (jj_2_103(2)) { - insertCall = WhenNotMatchedClause(table); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new SqlMerge(s.addIf(updateCall).addIf(insertCall).pos(), table, - condition, sourceTableRef, updateCall, insertCall, null, alias);} - throw new Error("Missing return statement in function"); - } - - final public SqlUpdate WhenMatchedClause(SqlNode table, SqlIdentifier alias) throws ParseException { - SqlIdentifier id; - final Span s; - final SqlNodeList updateColumnList = new SqlNodeList(SqlParserPos.ZERO); - SqlNode exp; - final SqlNodeList updateExprList = new SqlNodeList(SqlParserPos.ZERO); - jj_consume_token(WHEN); - s = span(); - jj_consume_token(MATCHED); - jj_consume_token(THEN); - jj_consume_token(UPDATE); - jj_consume_token(SET); - id = SimpleIdentifier(); - updateColumnList.add(id); - jj_consume_token(EQ); - exp = Expression(ExprContext.ACCEPT_SUB_QUERY); - updateExprList.add(exp); - label_8: - while (true) { - if (jj_2_104(2)) { - ; - } else { - break label_8; - } - jj_consume_token(COMMA); - id = SimpleIdentifier(); - updateColumnList.add(id); - jj_consume_token(EQ); - exp = Expression(ExprContext.ACCEPT_SUB_QUERY); - updateExprList.add(exp); - } - {if (true) return new SqlUpdate(s.addAll(updateExprList).pos(), table, - updateColumnList, updateExprList, null, null, alias);} - throw new Error("Missing return statement in function"); - } - - final public SqlInsert WhenNotMatchedClause(SqlNode table) throws ParseException { - final Span insertSpan, valuesSpan; - final List keywords = Lists.newArrayList(); - final SqlNodeList keywordList; - SqlNodeList insertColumnList = null; - SqlNode rowConstructor; - SqlNode insertValues; - jj_consume_token(WHEN); - jj_consume_token(NOT); - jj_consume_token(MATCHED); - jj_consume_token(THEN); - jj_consume_token(INSERT); - insertSpan = span(); - SqlInsertKeywords(keywords); - keywordList = new SqlNodeList(keywords, insertSpan.end(this)); - if (jj_2_105(2)) { - insertColumnList = ParenthesizedSimpleIdentifierList(); - } else { - ; - } - if (jj_2_106(2)) { - jj_consume_token(LPAREN); - } else { - ; - } - jj_consume_token(VALUES); - valuesSpan = span(); - rowConstructor = RowConstructor(); - if (jj_2_107(2)) { - jj_consume_token(RPAREN); - } else { - ; - } - // TODO zfong 5/26/06: note that extra parentheses are accepted above - // around the VALUES clause as a hack for unparse, but this is - // actually invalid SQL; should fix unparse - insertValues = SqlStdOperatorTable.VALUES.createCall( - valuesSpan.end(this), rowConstructor); - {if (true) return new SqlInsert(insertSpan.end(this), keywordList, - table, insertValues, insertColumnList);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses the select list of a SELECT statement. - */ - final public List SelectList() throws ParseException { - final List list = new ArrayList(); - SqlNode item; - item = SelectItem(); - list.add(item); - label_9: - while (true) { - if (jj_2_108(2)) { - ; - } else { - break label_9; - } - jj_consume_token(COMMA); - item = SelectItem(); - list.add(item); - } - {if (true) return list;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses one item in a select list. - */ - final public SqlNode SelectItem() throws ParseException { - SqlNode e; - SqlIdentifier id; - e = SelectExpression(); - if (jj_2_110(2)) { - if (jj_2_109(2)) { - jj_consume_token(AS); - } else { - ; - } - id = SimpleIdentifier(); - e = SqlStdOperatorTable.AS.createCall(span().end(e), e, id); - } else { - ; - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses one unaliased expression in a select list. - */ - final public SqlNode SelectExpression() throws ParseException { - SqlNode e; - if (jj_2_111(2)) { - jj_consume_token(STAR); - {if (true) return SqlIdentifier.star(getPos());} - } else if (jj_2_112(2)) { - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - {if (true) return e;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - final public SqlLiteral Natural() throws ParseException { - if (jj_2_113(2)) { - jj_consume_token(NATURAL); - {if (true) return SqlLiteral.createBoolean(true, getPos());} - } else { - {if (true) return SqlLiteral.createBoolean(false, getPos());} - } - throw new Error("Missing return statement in function"); - } - - final public SqlLiteral JoinType() throws ParseException { - JoinType joinType; - if (jj_2_117(2)) { - jj_consume_token(JOIN); - joinType = JoinType.INNER; - } else if (jj_2_118(2)) { - jj_consume_token(INNER); - jj_consume_token(JOIN); - joinType = JoinType.INNER; - } else if (jj_2_119(2)) { - jj_consume_token(LEFT); - if (jj_2_114(2)) { - jj_consume_token(OUTER); - } else { - ; - } - jj_consume_token(JOIN); - joinType = JoinType.LEFT; - } else if (jj_2_120(2)) { - jj_consume_token(RIGHT); - if (jj_2_115(2)) { - jj_consume_token(OUTER); - } else { - ; - } - jj_consume_token(JOIN); - joinType = JoinType.RIGHT; - } else if (jj_2_121(2)) { - jj_consume_token(FULL); - if (jj_2_116(2)) { - jj_consume_token(OUTER); - } else { - ; - } - jj_consume_token(JOIN); - joinType = JoinType.FULL; - } else if (jj_2_122(2)) { - jj_consume_token(CROSS); - jj_consume_token(JOIN); - joinType = JoinType.CROSS; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return joinType.symbol(getPos());} - throw new Error("Missing return statement in function"); - } - -/** Matches "LEFT JOIN t ON ...", "RIGHT JOIN t USING ...", "JOIN t". */ - final public SqlNode JoinTable(SqlNode e) throws ParseException { - SqlNode e2, condition; - final SqlLiteral natural, joinType, on, using; - SqlNodeList list; - natural = Natural(); - joinType = JoinType(); - e2 = TableRef(); - if (jj_2_123(2)) { - jj_consume_token(ON); - on = JoinConditionType.ON.symbol(getPos()); - condition = Expression(ExprContext.ACCEPT_SUB_QUERY); - {if (true) return new SqlJoin(joinType.getParserPosition(), - e, - natural, - joinType, - e2, - on, - condition);} - } else if (jj_2_124(2)) { - jj_consume_token(USING); - using = JoinConditionType.USING.symbol(getPos()); - list = ParenthesizedSimpleIdentifierList(); - {if (true) return new SqlJoin(joinType.getParserPosition(), - e, - natural, - joinType, - e2, - using, - new SqlNodeList(list.getList(), Span.of(using).end(this)));} - } else { - {if (true) return new SqlJoin(joinType.getParserPosition(), - e, - natural, - joinType, - e2, - JoinConditionType.NONE.symbol(joinType.getParserPosition()), - null);} - } - throw new Error("Missing return statement in function"); - } - -// TODO jvs 15-Nov-2003: SQL standard allows parentheses in the FROM list for -// building up non-linear join trees (e.g. OUTER JOIN two tables, and then INNER -// JOIN the result). Also note that aliases on parenthesized FROM expressions -// "hide" all table names inside the parentheses (without aliases, they're -// visible). -// -// We allow CROSS JOIN to have a join condition, even though that is not valid -// SQL; the validator will catch it. -/** - * Parses the FROM clause for a SELECT. - * - *

FROM is mandatory in standard SQL, optional in dialects such as MySQL, - * PostgreSQL. The parser allows SELECT without FROM, but the validator fails - * if conformance is, say, STRICT_2003. - */ - final public SqlNode FromClause() throws ParseException { - SqlNode e, e2, condition; - SqlLiteral natural, joinType, joinConditionType; - SqlNodeList list; - SqlParserPos pos; - e = TableRef(); - label_10: - while (true) { - if (jj_2_125(2)) { - ; - } else { - break label_10; - } - if (jj_2_128(2)) { - natural = Natural(); - joinType = JoinType(); - e2 = TableRef(); - if (jj_2_126(2)) { - jj_consume_token(ON); - joinConditionType = JoinConditionType.ON.symbol(getPos()); - condition = Expression(ExprContext.ACCEPT_SUB_QUERY); - e = new SqlJoin(joinType.getParserPosition(), - e, - natural, - joinType, - e2, - joinConditionType, - condition); - } else if (jj_2_127(2)) { - jj_consume_token(USING); - joinConditionType = JoinConditionType.USING.symbol(getPos()); - list = ParenthesizedSimpleIdentifierList(); - e = new SqlJoin(joinType.getParserPosition(), - e, - natural, - joinType, - e2, - joinConditionType, - new SqlNodeList(list.getList(), Span.of(joinConditionType).end(this))); - } else { - e = new SqlJoin(joinType.getParserPosition(), - e, - natural, - joinType, - e2, - JoinConditionType.NONE.symbol(joinType.getParserPosition()), - null); - } - } else if (jj_2_129(2)) { - jj_consume_token(COMMA); - joinType = JoinType.COMMA.symbol(getPos()); - e2 = TableRef(); - e = new SqlJoin(joinType.getParserPosition(), - e, - SqlLiteral.createBoolean(false, joinType.getParserPosition()), - joinType, - e2, - JoinConditionType.NONE.symbol(SqlParserPos.ZERO), - null); - } else if (jj_2_130(2)) { - jj_consume_token(CROSS); - joinType = JoinType.CROSS.symbol(getPos()); - jj_consume_token(APPLY); - e2 = TableRef2(true); - if (!this.conformance.isApplyAllowed()) { - {if (true) throw new ParseException(RESOURCE.applyNotAllowed().str());} - } - e = new SqlJoin(joinType.getParserPosition(), - e, - SqlLiteral.createBoolean(false, joinType.getParserPosition()), - joinType, - e2, - JoinConditionType.NONE.symbol(SqlParserPos.ZERO), - null); - } else if (jj_2_131(2)) { - jj_consume_token(OUTER); - joinType = JoinType.LEFT.symbol(getPos()); - jj_consume_token(APPLY); - e2 = TableRef2(true); - if (!this.conformance.isApplyAllowed()) { - {if (true) throw new ParseException(RESOURCE.applyNotAllowed().str());} - } - e = new SqlJoin(joinType.getParserPosition(), - e, - SqlLiteral.createBoolean(false, joinType.getParserPosition()), - joinType, - e2, - JoinConditionType.ON.symbol(SqlParserPos.ZERO), - SqlLiteral.createBoolean(true, joinType.getParserPosition())); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a table reference in a FROM clause, not lateral unless LATERAL - * is explicitly specified. - */ - final public SqlNode TableRef() throws ParseException { - final SqlNode e; - e = TableRef2(false); - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a table reference in a FROM clause. - */ - final public SqlNode TableRef2(boolean lateral) throws ParseException { - SqlNode tableRef; - SqlNode over; - SqlNodeList extendList = null; - String alias; - final SqlIdentifier id; - final Span s, s2; - SqlNodeList args; - SqlNode sample; - boolean isBernoulli; - SqlNumericLiteral samplePercentage; - boolean isRepeatable = false; - int repeatableSeed = 0; - SqlNodeList columnAliasList = null; - SqlUnnestOperator unnestOp = SqlStdOperatorTable.UNNEST; - if (jj_2_139(2)) { - tableRef = CompoundIdentifier(); - if (jj_2_133(2)) { - if (jj_2_132(2)) { - jj_consume_token(EXTEND); - } else { - ; - } - extendList = ExtendList(); - tableRef = extend(tableRef, extendList); - } else { - ; - } - over = TableOverOpt(); - if (over != null) { - tableRef = SqlStdOperatorTable.OVER.createCall( - getPos(), tableRef, over); - } - if (jj_2_134(2)) { - over = MatchRecognizeOpt(tableRef); - if (over != null) { - tableRef = over; - } - } else { - ; - } - } else if (jj_2_140(2)) { - if (jj_2_135(2)) { - jj_consume_token(LATERAL); - lateral = true; - } else { - ; - } - tableRef = ParenthesizedExpression(ExprContext.ACCEPT_QUERY); - over = TableOverOpt(); - if (over != null) { - tableRef = SqlStdOperatorTable.OVER.createCall( - getPos(), tableRef, over); - } - if (lateral) { - tableRef = SqlStdOperatorTable.LATERAL.createCall( - getPos(), tableRef); - } - if (jj_2_136(2)) { - over = MatchRecognizeOpt(tableRef); - } else { - ; - } - if (over != null) { - tableRef = over; - } - } else if (jj_2_141(2)) { - jj_consume_token(UNNEST); - s = span(); - args = ParenthesizedQueryOrCommaList(ExprContext.ACCEPT_SUB_QUERY); - if (jj_2_137(2)) { - jj_consume_token(WITH); - jj_consume_token(ORDINALITY); - unnestOp = SqlStdOperatorTable.UNNEST_WITH_ORDINALITY; - } else { - ; - } - tableRef = unnestOp.createCall(s.end(this), args.toArray()); - } else if (jj_2_142(2)) { - if (jj_2_138(2)) { - jj_consume_token(LATERAL); - lateral = true; - } else { - ; - } - jj_consume_token(TABLE); - s = span(); - jj_consume_token(LPAREN); - tableRef = TableFunctionCall(s.pos()); - jj_consume_token(RPAREN); - if (lateral) { - tableRef = SqlStdOperatorTable.LATERAL.createCall( - s.end(this), tableRef); - } - } else if (jj_2_143(2)) { - tableRef = ExtendedTableRef(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (jj_2_146(2)) { - if (jj_2_144(2)) { - jj_consume_token(AS); - } else { - ; - } - alias = Identifier(); - id = new SqlIdentifier(alias, getPos()); - if (jj_2_145(2)) { - columnAliasList = ParenthesizedSimpleIdentifierList(); - } else { - ; - } - if (columnAliasList == null) { - tableRef = SqlStdOperatorTable.AS.createCall( - Span.of(tableRef).end(this), tableRef, id); - } else { - List idList = new ArrayList(); - idList.add(tableRef); - idList.add(id); - idList.addAll(columnAliasList.getList()); - tableRef = SqlStdOperatorTable.AS.createCall( - Span.of(tableRef).end(this), idList); - } - } else { - ; - } - if (jj_2_152(2)) { - jj_consume_token(TABLESAMPLE); - s2 = span(); - if (jj_2_150(2)) { - jj_consume_token(SUBSTITUTE); - jj_consume_token(LPAREN); - sample = StringLiteral(); - jj_consume_token(RPAREN); - String sampleName = - SqlLiteral.unchain(sample).getValueAs(String.class); - SqlSampleSpec sampleSpec = SqlSampleSpec.createNamed(sampleName); - final SqlLiteral sampleLiteral = - SqlLiteral.createSample(sampleSpec, s2.end(this)); - tableRef = SqlStdOperatorTable.TABLESAMPLE.createCall( - s2.add(tableRef).end(this), tableRef, sampleLiteral); - } else if (jj_2_151(2)) { - if (jj_2_147(2)) { - jj_consume_token(BERNOULLI); - isBernoulli = true; - } else if (jj_2_148(2)) { - jj_consume_token(SYSTEM); - isBernoulli = false; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(LPAREN); - samplePercentage = UnsignedNumericLiteral(); - jj_consume_token(RPAREN); - if (jj_2_149(2)) { - jj_consume_token(REPEATABLE); - jj_consume_token(LPAREN); - repeatableSeed = IntLiteral(); - jj_consume_token(RPAREN); - isRepeatable = true; - } else { - ; - } - final BigDecimal ONE_HUNDRED = BigDecimal.valueOf(100L); - BigDecimal rate = samplePercentage.bigDecimalValue(); - if (rate.compareTo(BigDecimal.ZERO) < 0 - || rate.compareTo(ONE_HUNDRED) > 0) - { - {if (true) throw new ParseException(RESOURCE.invalidSampleSize().str());} - } - - // Treat TABLESAMPLE(0) and TABLESAMPLE(100) as no table - // sampling at all. Not strictly correct: TABLESAMPLE(0) - // should produce no output, but it simplifies implementation - // to know that some amount of sampling will occur. - // In practice values less than ~1E-43% are treated as 0.0 and - // values greater than ~99.999997% are treated as 1.0 - float fRate = rate.divide(ONE_HUNDRED).floatValue(); - if (fRate > 0.0f && fRate < 1.0f) { - SqlSampleSpec tableSampleSpec = - isRepeatable - ? SqlSampleSpec.createTableSample( - isBernoulli, fRate, repeatableSeed) - : SqlSampleSpec.createTableSample(isBernoulli, fRate); - - SqlLiteral tableSampleLiteral = - SqlLiteral.createSample(tableSampleSpec, s2.end(this)); - tableRef = SqlStdOperatorTable.TABLESAMPLE.createCall( - s2.end(this), tableRef, tableSampleLiteral); - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - {if (true) return tableRef;} - throw new Error("Missing return statement in function"); - } - - final public SqlNodeList ExtendList() throws ParseException { - final Span s; - List list = Lists.newArrayList(); - jj_consume_token(LPAREN); - s = span(); - ColumnType(list); - label_11: - while (true) { - if (jj_2_153(2)) { - ; - } else { - break label_11; - } - jj_consume_token(COMMA); - ColumnType(list); - } - jj_consume_token(RPAREN); - {if (true) return new SqlNodeList(list, s.end(this));} - throw new Error("Missing return statement in function"); - } - - final public void ColumnType(List list) throws ParseException { - SqlIdentifier name; - SqlDataTypeSpec type; - boolean nullable = true; - name = CompoundIdentifier(); - type = DataType(); - if (jj_2_154(2)) { - jj_consume_token(NOT); - jj_consume_token(NULL); - nullable = false; - } else { - ; - } - list.add(name); - list.add(type.withNullable(nullable)); - } - -/** - * Parses a compound identifier with optional type. - */ - final public void CompoundIdentifierType(List list, List extendList) throws ParseException { - final SqlIdentifier name; - SqlDataTypeSpec type = null; - boolean nullable = true; - name = CompoundIdentifier(); - if (jj_2_156(2)) { - type = DataType(); - if (!this.conformance.allowExtend()) { - {if (true) throw new ParseException(RESOURCE.extendNotAllowed().str());} - } - if (jj_2_155(2)) { - jj_consume_token(NOT); - jj_consume_token(NULL); - nullable = false; - } else { - ; - } - } else { - ; - } - if (type != null) { - extendList.add(name); - extendList.add(type.withNullable(nullable)); - } - list.add(name); - } - - final public SqlNode TableFunctionCall(SqlParserPos pos) throws ParseException { - SqlNode call; - SqlFunctionCategory funcType = SqlFunctionCategory.USER_DEFINED_TABLE_FUNCTION; - if (jj_2_157(2)) { - jj_consume_token(SPECIFIC); - funcType = SqlFunctionCategory.USER_DEFINED_TABLE_SPECIFIC_FUNCTION; - } else { - ; - } - call = NamedRoutineCall(funcType, ExprContext.ACCEPT_CURSOR); - {if (true) return SqlStdOperatorTable.COLLECTION_TABLE.createCall(pos, call);} - throw new Error("Missing return statement in function"); - } - -/** - * Abstract production: - * SqlNode ExtendedTableRef() - * - *

Allows parser to be extended with new types of table references. The - * default implementation of this production is empty. - */ - -/* - * Abstract production: - * - * SqlNode TableOverOpt() - * - * Allows an OVER clause following a table expression as an extension to - * standard SQL syntax. The default implementation of this production is empty. - */ - -/** - * Parses an explicit TABLE t reference. - */ - final public SqlNode ExplicitTable(SqlParserPos pos) throws ParseException { - SqlNode tableRef; - jj_consume_token(TABLE); - tableRef = CompoundIdentifier(); - {if (true) return SqlStdOperatorTable.EXPLICIT_TABLE.createCall(pos, tableRef);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a VALUES leaf query expression. - */ - final public SqlNode TableConstructor() throws ParseException { - SqlNodeList rowConstructorList; - final Span s; - jj_consume_token(VALUES); - s = span(); - rowConstructorList = RowConstructorList(s); - {if (true) return SqlStdOperatorTable.VALUES.createCall( - s.end(this), rowConstructorList.toArray());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses one or more rows in a VALUES expression. - */ - final public SqlNodeList RowConstructorList(Span s) throws ParseException { - List list = new ArrayList(); - SqlNode rowConstructor; - rowConstructor = RowConstructor(); - list.add(rowConstructor); - label_12: - while (true) { - if (jj_2_158(2)) { - ; - } else { - break label_12; - } - jj_consume_token(COMMA); - rowConstructor = RowConstructor(); - list.add(rowConstructor); - } - {if (true) return new SqlNodeList(list, s.end(this));} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a row constructor in the context of a VALUES expression. - */ - final public SqlNode RowConstructor() throws ParseException { - SqlNodeList valueList; - SqlNode value; - final Span s; - if (jj_2_160(3)) { - jj_consume_token(LPAREN); - s = span(); - jj_consume_token(ROW); - valueList = ParenthesizedQueryOrCommaListWithDefault(ExprContext.ACCEPT_NONCURSOR); - jj_consume_token(RPAREN); - s.add(this); - } else if (jj_2_161(3)) { - if (jj_2_159(2)) { - jj_consume_token(ROW); - s = span(); - } else { - s = Span.of(); - } - valueList = ParenthesizedQueryOrCommaListWithDefault(ExprContext.ACCEPT_NONCURSOR); - } else if (jj_2_162(2)) { - value = Expression(ExprContext.ACCEPT_NONCURSOR); - // NOTE: A bare value here is standard SQL syntax, believe it or - // not. Taken together with multi-row table constructors, it leads - // to very easy mistakes if you forget the parentheses on a - // single-row constructor. This is also the reason for the - // LOOKAHEAD in RowConstructorList(). It would be so much more - // reasonable to require parentheses. Sigh. - s = Span.of(value); - valueList = new SqlNodeList(Collections.singletonList(value), - value.getParserPosition()); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - // REVIEW jvs 8-Feb-2004: Should we discriminate between scalar - // sub-queries inside of ROW and row sub-queries? The standard does, - // but the distinction seems to be purely syntactic. - {if (true) return SqlStdOperatorTable.ROW.createCall(s.end(valueList), - valueList.toArray());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses the optional WHERE clause for SELECT, DELETE, and UPDATE. - */ - final public SqlNode WhereOpt() throws ParseException { - SqlNode condition; - if (jj_2_163(2)) { - jj_consume_token(WHERE); - condition = Expression(ExprContext.ACCEPT_SUB_QUERY); - {if (true) return condition;} - } else { - {if (true) return null;} - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses the optional GROUP BY clause for SELECT. - */ - final public SqlNodeList GroupByOpt() throws ParseException { - List list = Lists.newArrayList(); - final Span s; - if (jj_2_164(2)) { - jj_consume_token(GROUP); - s = span(); - jj_consume_token(BY); - list = GroupingElementList(); - {if (true) return new SqlNodeList(list, s.addAll(list).pos());} - } else { - {if (true) return null;} - } - throw new Error("Missing return statement in function"); - } - - final public List GroupingElementList() throws ParseException { - List list = Lists.newArrayList(); - SqlNode e; - e = GroupingElement(); - list.add(e); - label_13: - while (true) { - if (jj_2_165(2)) { - ; - } else { - break label_13; - } - jj_consume_token(COMMA); - e = GroupingElement(); - list.add(e); - } - {if (true) return list;} - throw new Error("Missing return statement in function"); - } - - final public SqlNode GroupingElement() throws ParseException { - List list; - final SqlNodeList nodes; - final SqlNode e; - final Span s; - if (jj_2_166(2)) { - jj_consume_token(GROUPING); - s = span(); - jj_consume_token(SETS); - jj_consume_token(LPAREN); - list = GroupingElementList(); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.GROUPING_SETS.createCall(s.end(this), list);} - } else if (jj_2_167(2)) { - jj_consume_token(ROLLUP); - s = span(); - jj_consume_token(LPAREN); - nodes = ExpressionCommaList(s, ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.ROLLUP.createCall(s.end(this), - nodes.getList());} - } else if (jj_2_168(2)) { - jj_consume_token(CUBE); - s = span(); - jj_consume_token(LPAREN); - nodes = ExpressionCommaList(s, ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.CUBE.createCall(s.end(this), - nodes.getList());} - } else if (jj_2_169(3)) { - jj_consume_token(LPAREN); - jj_consume_token(RPAREN); - {if (true) return new SqlNodeList(getPos());} - } else if (jj_2_170(2)) { - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - {if (true) return e;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a list of expressions separated by commas. - */ - final public SqlNodeList ExpressionCommaList(final Span s, - ExprContext exprContext) throws ParseException { - List list; - SqlNode e; - e = Expression(exprContext); - list = startList(e); - label_14: - while (true) { - if (jj_2_171(2)) { - ; - } else { - break label_14; - } - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - list.add(e); - } - {if (true) return new SqlNodeList(list, s.addAll(list).pos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses the optional HAVING clause for SELECT. - */ - final public SqlNode HavingOpt() throws ParseException { - SqlNode e; - if (jj_2_172(2)) { - jj_consume_token(HAVING); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - {if (true) return e;} - } else { - {if (true) return null;} - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses the optional WINDOW clause for SELECT - */ - final public SqlNodeList WindowOpt() throws ParseException { - SqlIdentifier id; - SqlWindow e; - List list; - final Span s; - if (jj_2_174(2)) { - jj_consume_token(WINDOW); - s = span(); - id = SimpleIdentifier(); - jj_consume_token(AS); - e = WindowSpecification(); - e.setDeclName(id); - list = startList(e); - label_15: - while (true) { - if (jj_2_173(2)) { - ; - } else { - break label_15; - } - jj_consume_token(COMMA); - id = SimpleIdentifier(); - jj_consume_token(AS); - e = WindowSpecification(); - e.setDeclName(id); - list.add(e); - } - {if (true) return new SqlNodeList(list, s.addAll(list).pos());} - } else { - {if (true) return null;} - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a window specification. - */ - final public SqlWindow WindowSpecification() throws ParseException { - SqlIdentifier id; - List list; - SqlNodeList partitionList; - SqlNodeList orderList; - SqlLiteral isRows = SqlLiteral.createBoolean(false, SqlParserPos.ZERO); - SqlNode lowerBound = null, upperBound = null; - SqlParserPos startPos; - final Span s, s1, s2; - SqlLiteral allowPartial = null; - jj_consume_token(LPAREN); - s = span(); - if (jj_2_175(2)) { - id = SimpleIdentifier(); - } else { - id = null; - } - if (jj_2_176(2)) { - jj_consume_token(PARTITION); - s1 = span(); - jj_consume_token(BY); - partitionList = ExpressionCommaList(s1, ExprContext.ACCEPT_NON_QUERY); - } else { - partitionList = SqlNodeList.EMPTY; - } - if (jj_2_177(2)) { - orderList = OrderBy(true); - } else { - orderList = SqlNodeList.EMPTY; - } - if (jj_2_182(2)) { - if (jj_2_178(2)) { - jj_consume_token(ROWS); - isRows = SqlLiteral.createBoolean(true, getPos()); - } else if (jj_2_179(2)) { - jj_consume_token(RANGE); - isRows = SqlLiteral.createBoolean(false, getPos()); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (jj_2_180(2)) { - jj_consume_token(BETWEEN); - lowerBound = WindowRange(); - jj_consume_token(AND); - upperBound = WindowRange(); - } else if (jj_2_181(2)) { - lowerBound = WindowRange(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - if (jj_2_185(2)) { - if (jj_2_183(2)) { - jj_consume_token(ALLOW); - s2 = span(); - jj_consume_token(PARTIAL); - allowPartial = SqlLiteral.createBoolean(true, s2.end(this)); - } else if (jj_2_184(2)) { - jj_consume_token(DISALLOW); - s2 = span(); - jj_consume_token(PARTIAL); - allowPartial = SqlLiteral.createBoolean(false, s2.end(this)); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - jj_consume_token(RPAREN); - {if (true) return SqlWindow.create( - null, id, partitionList, orderList, - isRows, lowerBound, upperBound, allowPartial, s.end(this));} - throw new Error("Missing return statement in function"); - } - - final public SqlNode WindowRange() throws ParseException { - final SqlNode e; - final Span s; - if (jj_2_190(2)) { - jj_consume_token(CURRENT); - s = span(); - jj_consume_token(ROW); - {if (true) return SqlWindow.createCurrentRow(s.end(this));} - } else if (jj_2_191(2)) { - jj_consume_token(UNBOUNDED); - s = span(); - if (jj_2_186(2)) { - jj_consume_token(PRECEDING); - {if (true) return SqlWindow.createUnboundedPreceding(s.end(this));} - } else if (jj_2_187(2)) { - jj_consume_token(FOLLOWING); - {if (true) return SqlWindow.createUnboundedFollowing(s.end(this));} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else if (jj_2_192(2)) { - e = Expression(ExprContext.ACCEPT_NON_QUERY); - if (jj_2_188(2)) { - jj_consume_token(PRECEDING); - {if (true) return SqlWindow.createPreceding(e, getPos());} - } else if (jj_2_189(2)) { - jj_consume_token(FOLLOWING); - {if (true) return SqlWindow.createFollowing(e, getPos());} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses an ORDER BY clause. - */ - final public SqlNodeList OrderBy(boolean accept) throws ParseException { - List list; - SqlNode e; - final Span s; - jj_consume_token(ORDER); - s = span(); - if (!accept) { - // Someone told us ORDER BY wasn't allowed here. So why - // did they bother calling us? To get the correct - // parser position for error reporting. - {if (true) throw SqlUtil.newContextException(s.pos(), RESOURCE.illegalOrderBy());} - } - jj_consume_token(BY); - e = OrderItem(); - list = startList(e); - label_16: - while (true) { - if (jj_2_193(2)) { - ; - } else { - break label_16; - } - jj_consume_token(COMMA); - e = OrderItem(); - list.add(e); - } - {if (true) return new SqlNodeList(list, s.addAll(list).pos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses one list item in an ORDER BY clause. - */ - final public SqlNode OrderItem() throws ParseException { - SqlNode e; - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - if (jj_2_196(2)) { - if (jj_2_194(2)) { - jj_consume_token(ASC); - } else if (jj_2_195(2)) { - jj_consume_token(DESC); - e = SqlStdOperatorTable.DESC.createCall(getPos(), e); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - if (jj_2_199(2)) { - if (jj_2_197(2)) { - jj_consume_token(NULLS); - jj_consume_token(FIRST); - e = SqlStdOperatorTable.NULLS_FIRST.createCall(getPos(), e); - } else if (jj_2_198(2)) { - jj_consume_token(NULLS); - jj_consume_token(LAST); - e = SqlStdOperatorTable.NULLS_LAST.createCall(getPos(), e); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a MATCH_RECOGNIZE clause following a table expression. - */ - final public SqlMatchRecognize MatchRecognizeOpt(SqlNode tableRef) throws ParseException { - final Span s, s0, s1, s2; - SqlNodeList measureList = SqlNodeList.EMPTY; - SqlNodeList partitionList = SqlNodeList.EMPTY; - SqlNodeList orderList = SqlNodeList.EMPTY; - SqlNode pattern; - SqlLiteral interval; - SqlNodeList patternDefList; - final SqlNode after; - SqlParserPos pos; - final SqlNode var; - final SqlLiteral rowsPerMatch; - SqlNodeList subsetList = SqlNodeList.EMPTY; - SqlLiteral isStrictStarts = SqlLiteral.createBoolean(false, getPos()); - SqlLiteral isStrictEnds = SqlLiteral.createBoolean(false, getPos()); - jj_consume_token(MATCH_RECOGNIZE); - s = span(); - jj_consume_token(LPAREN); - if (jj_2_200(2)) { - jj_consume_token(PARTITION); - s2 = span(); - jj_consume_token(BY); - partitionList = ExpressionCommaList(s2, ExprContext.ACCEPT_NON_QUERY); - } else { - ; - } - if (jj_2_201(2)) { - orderList = OrderBy(true); - } else { - ; - } - if (jj_2_202(2)) { - jj_consume_token(MEASURES); - measureList = MeasureColumnCommaList(span()); - } else { - ; - } - if (jj_2_203(2)) { - jj_consume_token(ONE); - s0 = span(); - jj_consume_token(ROW); - jj_consume_token(PER); - jj_consume_token(MATCH); - rowsPerMatch = SqlMatchRecognize.RowsPerMatchOption.ONE_ROW.symbol(s0.end(this)); - } else if (jj_2_204(2)) { - jj_consume_token(ALL); - s0 = span(); - jj_consume_token(ROWS); - jj_consume_token(PER); - jj_consume_token(MATCH); - rowsPerMatch = SqlMatchRecognize.RowsPerMatchOption.ALL_ROWS.symbol(s0.end(this)); - } else { - rowsPerMatch = null; - } - if (jj_2_211(2)) { - jj_consume_token(AFTER); - s1 = span(); - jj_consume_token(MATCH); - jj_consume_token(SKIP_); - if (jj_2_209(2)) { - jj_consume_token(TO); - if (jj_2_206(2)) { - jj_consume_token(NEXT); - jj_consume_token(ROW); - after = SqlMatchRecognize.AfterOption.SKIP_TO_NEXT_ROW - .symbol(s1.end(this)); - } else if (jj_2_207(2)) { - jj_consume_token(FIRST); - var = SimpleIdentifier(); - after = SqlMatchRecognize.SKIP_TO_FIRST.createCall( - s1.end(var), var); - } else if (jj_2_208(2)) { - if (jj_2_205(2)) { - jj_consume_token(LAST); - } else { - ; - } - var = SimpleIdentifier(); - after = SqlMatchRecognize.SKIP_TO_LAST.createCall( - s1.end(var), var); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else if (jj_2_210(2)) { - jj_consume_token(PAST); - jj_consume_token(LAST); - jj_consume_token(ROW); - after = SqlMatchRecognize.AfterOption.SKIP_PAST_LAST_ROW - .symbol(s1.end(this)); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - after = null; - } - jj_consume_token(PATTERN); - jj_consume_token(LPAREN); - if (jj_2_212(2)) { - jj_consume_token(CARET); - isStrictStarts = SqlLiteral.createBoolean(true, getPos()); - } else { - isStrictStarts = SqlLiteral.createBoolean(false, getPos()); - } - pattern = PatternExpression(); - if (jj_2_213(2)) { - jj_consume_token(DOLLAR); - isStrictEnds = SqlLiteral.createBoolean(true, getPos()); - } else { - isStrictEnds = SqlLiteral.createBoolean(false, getPos()); - } - jj_consume_token(RPAREN); - if (jj_2_214(2)) { - jj_consume_token(WITHIN); - interval = IntervalLiteral(); - } else { - interval = null; - } - if (jj_2_215(2)) { - jj_consume_token(SUBSET); - subsetList = SubsetDefinitionCommaList(span()); - } else { - ; - } - jj_consume_token(DEFINE); - patternDefList = PatternDefinitionCommaList(span()); - jj_consume_token(RPAREN); - {if (true) return new SqlMatchRecognize(s.end(this), tableRef, - pattern, isStrictStarts, isStrictEnds, patternDefList, measureList, - after, subsetList, rowsPerMatch, partitionList, orderList, interval);} - throw new Error("Missing return statement in function"); - } - - final public SqlNodeList MeasureColumnCommaList(Span s) throws ParseException { - SqlNode e; - final List eList = new ArrayList(); - e = MeasureColumn(); - eList.add(e); - label_17: - while (true) { - if (jj_2_216(2)) { - ; - } else { - break label_17; - } - jj_consume_token(COMMA); - e = MeasureColumn(); - eList.add(e); - } - {if (true) return new SqlNodeList(eList, s.addAll(eList).pos());} - throw new Error("Missing return statement in function"); - } - - final public SqlNode MeasureColumn() throws ParseException { - SqlNode e; - SqlIdentifier alias; - e = Expression(ExprContext.ACCEPT_NON_QUERY); - jj_consume_token(AS); - alias = SimpleIdentifier(); - {if (true) return SqlStdOperatorTable.AS.createCall(Span.of(e).end(this), e, alias);} - throw new Error("Missing return statement in function"); - } - - final public SqlNode PatternExpression() throws ParseException { - SqlNode left; - SqlNode right; - left = PatternTerm(); - label_18: - while (true) { - if (jj_2_217(2)) { - ; - } else { - break label_18; - } - jj_consume_token(VERTICAL_BAR); - right = PatternTerm(); - left = SqlStdOperatorTable.PATTERN_ALTER.createCall( - Span.of(left).end(right), left, right); - } - {if (true) return left;} - throw new Error("Missing return statement in function"); - } - - final public SqlNode PatternTerm() throws ParseException { - SqlNode left; - SqlNode right; - left = PatternFactor(); - label_19: - while (true) { - if (jj_2_218(2)) { - ; - } else { - break label_19; - } - right = PatternFactor(); - left = SqlStdOperatorTable.PATTERN_CONCAT.createCall( - Span.of(left).end(right), left, right); - } - {if (true) return left;} - throw new Error("Missing return statement in function"); - } - - final public SqlNode PatternFactor() throws ParseException { - SqlNode e; - SqlNode extra; - SqlLiteral startNum = null; - SqlLiteral endNum = null; - SqlLiteral reluctant = SqlLiteral.createBoolean(false, SqlParserPos.ZERO); - e = PatternPrimary(); - if (jj_2_229(2)) { - if (jj_2_224(2)) { - jj_consume_token(STAR); - startNum = SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO); - endNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); - } else if (jj_2_225(2)) { - jj_consume_token(PLUS); - startNum = SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO); - endNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); - } else if (jj_2_226(2)) { - jj_consume_token(HOOK); - startNum = SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO); - endNum = SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO); - } else if (jj_2_227(2)) { - jj_consume_token(LBRACE); - if (jj_2_221(2)) { - startNum = UnsignedNumericLiteral(); - endNum = startNum; - if (jj_2_220(2)) { - jj_consume_token(COMMA); - endNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); - if (jj_2_219(2)) { - endNum = UnsignedNumericLiteral(); - } else { - ; - } - } else { - ; - } - jj_consume_token(RBRACE); - } else if (jj_2_222(2)) { - startNum = SqlLiteral.createExactNumeric("-1", SqlParserPos.ZERO); - jj_consume_token(COMMA); - endNum = UnsignedNumericLiteral(); - jj_consume_token(RBRACE); - } else if (jj_2_223(2)) { - jj_consume_token(MINUS); - extra = PatternExpression(); - jj_consume_token(MINUS); - jj_consume_token(RBRACE); - extra = SqlStdOperatorTable.PATTERN_EXCLUDE.createCall( - Span.of(extra).end(this), extra); - e = SqlStdOperatorTable.PATTERN_CONCAT.createCall( - Span.of(e).end(this), e, extra); - {if (true) return e;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (jj_2_228(2)) { - jj_consume_token(HOOK); - if (startNum.intValue(true) != endNum.intValue(true)) { - reluctant = SqlLiteral.createBoolean(true, SqlParserPos.ZERO); - } - } else { - ; - } - } else { - ; - } - if (startNum == null) { - {if (true) return e;} - } else { - {if (true) return SqlStdOperatorTable.PATTERN_QUANTIFIER.createCall( - span().end(e), e, startNum, endNum, reluctant);} - } - throw new Error("Missing return statement in function"); - } - - final public SqlNode PatternPrimary() throws ParseException { - final Span s; - SqlNode e; - List eList; - if (jj_2_231(2)) { - e = SimpleIdentifier(); - } else if (jj_2_232(2)) { - jj_consume_token(LPAREN); - e = PatternExpression(); - jj_consume_token(RPAREN); - } else if (jj_2_233(2)) { - jj_consume_token(LBRACE); - s = span(); - jj_consume_token(MINUS); - e = PatternExpression(); - jj_consume_token(MINUS); - jj_consume_token(RBRACE); - e = SqlStdOperatorTable.PATTERN_EXCLUDE.createCall(s.end(this), e); - } else if (jj_2_234(2)) { - jj_consume_token(PERMUTE); - s = span(); - jj_consume_token(LPAREN); - e = PatternExpression(); - eList = new ArrayList(); - eList.add(e); - label_20: - while (true) { - if (jj_2_230(2)) { - ; - } else { - break label_20; - } - jj_consume_token(COMMA); - e = PatternExpression(); - eList.add(e); - } - jj_consume_token(RPAREN); - e = SqlStdOperatorTable.PATTERN_PERMUTE.createCall( - s.end(this), eList); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - - final public SqlNodeList SubsetDefinitionCommaList(Span s) throws ParseException { - SqlNode e; - final List eList = new ArrayList(); - e = SubsetDefinition(); - eList.add(e); - label_21: - while (true) { - if (jj_2_235(2)) { - ; - } else { - break label_21; - } - jj_consume_token(COMMA); - e = SubsetDefinition(); - eList.add(e); - } - {if (true) return new SqlNodeList(eList, s.addAll(eList).pos());} - throw new Error("Missing return statement in function"); - } - - final public SqlNode SubsetDefinition() throws ParseException { - final SqlNode var; - final SqlNodeList varList; - var = SimpleIdentifier(); - jj_consume_token(EQ); - jj_consume_token(LPAREN); - varList = ExpressionCommaList(span(), ExprContext.ACCEPT_NON_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.EQUALS.createCall(span().end(var), var, - varList);} - throw new Error("Missing return statement in function"); - } - - final public SqlNodeList PatternDefinitionCommaList(Span s) throws ParseException { - SqlNode e; - final List eList = new ArrayList(); - e = PatternDefinition(); - eList.add(e); - label_22: - while (true) { - if (jj_2_236(2)) { - ; - } else { - break label_22; - } - jj_consume_token(COMMA); - e = PatternDefinition(); - eList.add(e); - } - {if (true) return new SqlNodeList(eList, s.addAll(eList).pos());} - throw new Error("Missing return statement in function"); - } - - final public SqlNode PatternDefinition() throws ParseException { - final SqlNode var; - final SqlNode e; - var = SimpleIdentifier(); - jj_consume_token(AS); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - {if (true) return SqlStdOperatorTable.AS.createCall(Span.of(var, e).pos(), e, var);} - throw new Error("Missing return statement in function"); - } - -// ---------------------------------------------------------------------------- -// Expressions - -/** - * Parses a SQL expression (such as might occur in a WHERE clause) followed by - * the end-of-file symbol. - */ - final public SqlNode SqlExpressionEof() throws ParseException { - SqlNode e; - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(0); - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses either a row expression or a query expression without ORDER BY. - */ - final public SqlNode QueryOrExpr(ExprContext exprContext) throws ParseException { - SqlNodeList withList = null; - SqlNode e; - SqlOperator op; - SqlParserPos pos; - SqlParserPos withPos; - List list; - if (jj_2_237(2)) { - withList = WithList(); - } else { - ; - } - e = LeafQueryOrExpr(exprContext); - list = startList(e); - label_23: - while (true) { - if (jj_2_238(2)) { - ; - } else { - break label_23; - } - if (!e.isA(SqlKind.QUERY)) { - // whoops, expression we just parsed wasn't a query, - // but we're about to see something like UNION, so - // force an exception retroactively - checkNonQueryExpression(ExprContext.ACCEPT_QUERY); - } - op = BinaryQueryOperator(); - // ensure a query is legal in this context - pos = getPos(); - checkQueryExpression(exprContext); - e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); - list.add(new SqlParserUtil.ToTreeListItem(op, pos)); - list.add(e); - } - e = SqlParserUtil.toTree(list); - if (withList != null) { - e = new SqlWith(withList.getParserPosition(), withList, e); - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - - final public SqlNodeList WithList() throws ParseException { - SqlWithItem withItem; - SqlParserPos pos; - SqlNodeList list; - jj_consume_token(WITH); - list = new SqlNodeList(getPos()); - withItem = WithItem(); - list.add(withItem); - label_24: - while (true) { - if (jj_2_239(2)) { - ; - } else { - break label_24; - } - jj_consume_token(COMMA); - withItem = WithItem(); - list.add(withItem); - } - {if (true) return list;} - throw new Error("Missing return statement in function"); - } - - final public SqlWithItem WithItem() throws ParseException { - SqlIdentifier id; - SqlNodeList columnList = null; - SqlNode definition; - id = SimpleIdentifier(); - if (jj_2_240(2)) { - columnList = ParenthesizedSimpleIdentifierList(); - } else { - ; - } - jj_consume_token(AS); - definition = ParenthesizedExpression(ExprContext.ACCEPT_QUERY); - {if (true) return new SqlWithItem(id.getParserPosition(), id, columnList, - definition);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses either a row expression, a leaf query expression, or - * a parenthesized expression of any kind. - */ - final public SqlNode LeafQueryOrExpr(ExprContext exprContext) throws ParseException { - SqlNode e; - if (jj_2_241(2)) { - e = Expression(exprContext); - {if (true) return e;} - } else if (jj_2_242(2)) { - e = LeafQuery(exprContext); - {if (true) return e;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a row expression or a parenthesized expression of any kind. - */ - final public SqlNode Expression(ExprContext exprContext) throws ParseException { - List list; - SqlNode e; - list = Expression2(exprContext); - e = SqlParserUtil.toTree(list); - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -// TODO jvs 15-Nov-2003: ANY/ALL - final public void Expression2b(ExprContext exprContext, List list) throws ParseException { - SqlNode e; - SqlOperator op; - label_25: - while (true) { - if (jj_2_243(2)) { - ; - } else { - break label_25; - } - op = PrefixRowOperator(); - checkNonQueryExpression(exprContext); - list.add(new SqlParserUtil.ToTreeListItem(op, getPos())); - } - e = Expression3(exprContext); - list.add(e); - } - -/** - * Parses a binary row expression, or a parenthesized expression of any - * kind. - * - *

The result is as a flat list of operators and operands. The top-level - * call to get an expression should call {@link #Expression}, but lower-level - * calls should call this, to give the parser the opportunity to associate - * operator calls. - * - *

For example 'a = b like c = d' should come out '((a = b) like c) = d' - * because LIKE and '=' have the same precedence, but tends to come out as '(a - * = b) like (c = d)' because (a = b) and (c = d) are parsed as separate - * expressions. - */ - final public List Expression2(ExprContext exprContext) throws ParseException { - final List list = new ArrayList(); - List list2; - SqlNodeList nodeList; - SqlNode e; - SqlOperator op; - String p; - final Span s = span(); - Expression2b(exprContext, list); - if (jj_2_272(2)) { - label_26: - while (true) { - if (jj_2_265(2)) { - checkNonQueryExpression(exprContext); - if (jj_2_247(2)) { - jj_consume_token(NOT); - jj_consume_token(IN); - op = SqlStdOperatorTable.NOT_IN; - } else if (jj_2_248(2)) { - jj_consume_token(IN); - op = SqlStdOperatorTable.IN; - } else if (jj_2_249(2)) { - final SqlKind k; - k = comp(); - if (jj_2_244(2)) { - jj_consume_token(SOME); - op = SqlStdOperatorTable.some(k); - } else if (jj_2_245(2)) { - jj_consume_token(ANY); - op = SqlStdOperatorTable.some(k); - } else if (jj_2_246(2)) { - jj_consume_token(ALL); - op = SqlStdOperatorTable.all(k); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s.clear().add(this); - nodeList = ParenthesizedQueryOrCommaList(ExprContext.ACCEPT_NONCURSOR); - list.add(new SqlParserUtil.ToTreeListItem(op, s.pos())); - s.add(nodeList); - // special case for stuff like IN (s1 UNION s2) - if (nodeList.size() == 1) { - SqlNode item = nodeList.get(0); - if (item.isA(SqlKind.QUERY)) { - list.add(item); - } else { - list.add(nodeList); - } - } else { - list.add(nodeList); - } - } else if (jj_2_266(2)) { - checkNonQueryExpression(exprContext); - if (jj_2_256(2)) { - jj_consume_token(NOT); - jj_consume_token(BETWEEN); - op = SqlStdOperatorTable.NOT_BETWEEN; - s.clear().add(this); - if (jj_2_252(2)) { - if (jj_2_250(2)) { - jj_consume_token(SYMMETRIC); - op = SqlStdOperatorTable.SYMMETRIC_NOT_BETWEEN; - } else if (jj_2_251(2)) { - jj_consume_token(ASYMMETRIC); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - } else if (jj_2_257(2)) { - jj_consume_token(BETWEEN); - op = SqlStdOperatorTable.BETWEEN; - s.clear().add(this); - if (jj_2_255(2)) { - if (jj_2_253(2)) { - jj_consume_token(SYMMETRIC); - op = SqlStdOperatorTable.SYMMETRIC_BETWEEN; - } else if (jj_2_254(2)) { - jj_consume_token(ASYMMETRIC); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - e = Expression3(ExprContext.ACCEPT_SUB_QUERY); - list.add(new SqlParserUtil.ToTreeListItem(op, s.pos())); - list.add(e); - } else if (jj_2_267(2)) { - checkNonQueryExpression(exprContext); - s.clear().add(this); - if (jj_2_260(2)) { - jj_consume_token(NOT); - if (jj_2_258(2)) { - jj_consume_token(LIKE); - op = SqlStdOperatorTable.NOT_LIKE; - } else if (jj_2_259(2)) { - jj_consume_token(SIMILAR); - jj_consume_token(TO); - op = SqlStdOperatorTable.NOT_SIMILAR_TO; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else if (jj_2_261(2)) { - jj_consume_token(LIKE); - op = SqlStdOperatorTable.LIKE; - } else if (jj_2_262(2)) { - jj_consume_token(SIMILAR); - jj_consume_token(TO); - op = SqlStdOperatorTable.SIMILAR_TO; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - list2 = Expression2(ExprContext.ACCEPT_SUB_QUERY); - list.add(new SqlParserUtil.ToTreeListItem(op, s.pos())); - list.addAll(list2); - if (jj_2_263(2)) { - jj_consume_token(ESCAPE); - e = Expression3(ExprContext.ACCEPT_SUB_QUERY); - s.clear().add(this); - list.add( - new SqlParserUtil.ToTreeListItem( - SqlStdOperatorTable.ESCAPE, s.pos())); - list.add(e); - } else { - ; - } - } else if (jj_2_268(3)) { - op = BinaryRowOperator(); - checkNonQueryExpression(exprContext); - list.add(new SqlParserUtil.ToTreeListItem(op, getPos())); - Expression2b(ExprContext.ACCEPT_SUB_QUERY, list); - } else if (jj_2_269(2)) { - jj_consume_token(LBRACKET); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(RBRACKET); - list.add( - new SqlParserUtil.ToTreeListItem( - SqlStdOperatorTable.ITEM, getPos())); - list.add(e); - label_27: - while (true) { - if (jj_2_264(2)) { - ; - } else { - break label_27; - } - jj_consume_token(DOT); - p = Identifier(); - list.add( - new SqlParserUtil.ToTreeListItem( - SqlStdOperatorTable.DOT, getPos())); - list.add(new SqlIdentifier(p, getPos())); - } - } else if (jj_2_270(2)) { - checkNonQueryExpression(exprContext); - op = PostfixRowOperator(); - list.add(new SqlParserUtil.ToTreeListItem(op, getPos())); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (jj_2_271(2)) { - ; - } else { - break label_26; - } - } - {if (true) return list;} - } else { - {if (true) return list;} - } - throw new Error("Missing return statement in function"); - } - -/** Parses a comparison operator inside a SOME / ALL predicate. */ - final public SqlKind comp() throws ParseException { - if (jj_2_273(2)) { - jj_consume_token(LT); - {if (true) return SqlKind.LESS_THAN;} - } else if (jj_2_274(2)) { - jj_consume_token(LE); - {if (true) return SqlKind.LESS_THAN_OR_EQUAL;} - } else if (jj_2_275(2)) { - jj_consume_token(GT); - {if (true) return SqlKind.GREATER_THAN;} - } else if (jj_2_276(2)) { - jj_consume_token(GE); - {if (true) return SqlKind.GREATER_THAN_OR_EQUAL;} - } else if (jj_2_277(2)) { - jj_consume_token(EQ); - {if (true) return SqlKind.EQUALS;} - } else if (jj_2_278(2)) { - jj_consume_token(NE); - {if (true) return SqlKind.NOT_EQUALS;} - } else if (jj_2_279(2)) { - jj_consume_token(NE2); - if (!this.conformance.isBangEqualAllowed()) { - {if (true) throw new ParseException(RESOURCE.bangEqualNotAllowed().str());} - } - {if (true) return SqlKind.NOT_EQUALS;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a unary row expression, or a parenthesized expression of any - * kind. - */ - final public SqlNode Expression3(ExprContext exprContext) throws ParseException { - final SqlNode e; - final SqlNodeList list; - final SqlNodeList list1; - final SqlNodeList list2; - final SqlOperator op; - final Span s; - Span rowSpan = null; - if (jj_2_282(2)) { - e = AtomicRowExpression(); - checkNonQueryExpression(exprContext); - {if (true) return e;} - } else if (jj_2_283(2)) { - e = CursorExpression(exprContext); - {if (true) return e;} - } else if (jj_2_284(3)) { - jj_consume_token(ROW); - s = span(); - list = ParenthesizedSimpleIdentifierList(); - if (exprContext != ExprContext.ACCEPT_ALL - && exprContext != ExprContext.ACCEPT_CURSOR) - { - {if (true) throw SqlUtil.newContextException(s.end(list), - RESOURCE.illegalRowExpression());} - } - {if (true) return SqlStdOperatorTable.ROW.createCall(list);} - } else if (jj_2_285(2)) { - if (jj_2_280(2)) { - jj_consume_token(ROW); - rowSpan = span(); - } else { - ; - } - list1 = ParenthesizedQueryOrCommaList(exprContext); - if (rowSpan != null) { - // interpret as row constructor - {if (true) return SqlStdOperatorTable.ROW.createCall(rowSpan.end(list1), - list1.toArray());} - } - if (jj_2_281(2)) { - e = IntervalQualifier(); - if ((list1.size() == 1) - && list1.get(0) instanceof SqlCall) - { - final SqlCall call = (SqlCall) list1.get(0); - if (call.getKind() == SqlKind.MINUS - && call.operandCount() == 2) { - List list3 = startList(call.operand(0)); - list3.add(call.operand(1)); - list3.add(e); - {if (true) return SqlStdOperatorTable.MINUS_DATE.createCall( - Span.of(list1).end(this), list3);} - } - } - {if (true) throw SqlUtil.newContextException(span().end(list1), - RESOURCE.illegalMinusDate());} - } else { - ; - } - if (list1.size() == 1) { - // interpret as single value or query - {if (true) return list1.get(0);} - } else { - // interpret as row constructor - {if (true) return SqlStdOperatorTable.ROW.createCall(span().end(list1), - list1.toArray());} - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - final public SqlOperator periodOperator() throws ParseException { - if (jj_2_286(2)) { - jj_consume_token(OVERLAPS); - {if (true) return SqlStdOperatorTable.OVERLAPS;} - } else if (jj_2_287(2)) { - jj_consume_token(IMMEDIATELY); - jj_consume_token(PRECEDES); - {if (true) return SqlStdOperatorTable.IMMEDIATELY_PRECEDES;} - } else if (jj_2_288(2)) { - jj_consume_token(PRECEDES); - {if (true) return SqlStdOperatorTable.PRECEDES;} - } else if (jj_2_289(2)) { - jj_consume_token(IMMEDIATELY); - jj_consume_token(SUCCEEDS); - {if (true) return SqlStdOperatorTable.IMMEDIATELY_SUCCEEDS;} - } else if (jj_2_290(2)) { - jj_consume_token(SUCCEEDS); - {if (true) return SqlStdOperatorTable.SUCCEEDS;} - } else if (jj_2_291(2)) { - jj_consume_token(EQUALS); - {if (true) return SqlStdOperatorTable.PERIOD_EQUALS;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a COLLATE clause - */ - final public SqlCollation CollateClause() throws ParseException { - jj_consume_token(COLLATE); - jj_consume_token(COLLATION_ID); - {if (true) return new SqlCollation( - getToken(0).image, SqlCollation.Coercibility.EXPLICIT);} - throw new Error("Missing return statement in function"); - } - -/** - * Numeric literal or parameter; used in LIMIT, OFFSET and FETCH clauses. - */ - final public SqlNode UnsignedNumericLiteralOrParam() throws ParseException { - final SqlNode e; - if (jj_2_292(2)) { - e = UnsignedNumericLiteral(); - } else if (jj_2_293(2)) { - e = DynamicParam(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses an atomic row expression. - */ - final public SqlNode AtomicRowExpression() throws ParseException { - final SqlNode e; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DATE: - case FALSE: - case INTERVAL: - case NULL: - case TIME: - case TIMESTAMP: - case TRUE: - case UNKNOWN: - case UNSIGNED_INTEGER_LITERAL: - case APPROX_NUMERIC_LITERAL: - case DECIMAL_NUMERIC_LITERAL: - case BINARY_STRING_LITERAL: - case QUOTED_STRING: - case PREFIXED_STRING_LITERAL: - case UNICODE_STRING_LITERAL: - case LBRACE_D: - case LBRACE_T: - case LBRACE_TS: - case PLUS: - case MINUS: - e = Literal(); - break; - default: - jj_la1[0] = jj_gen; - if (jj_2_294(2)) { - e = DynamicParam(); - } else if (jj_2_295(2)) { - e = BuiltinFunctionCall(); - } else if (jj_2_296(2)) { - e = JdbcFunctionCall(); - } else if (jj_2_297(2)) { - e = MultisetConstructor(); - } else if (jj_2_298(2)) { - e = ArrayConstructor(); - } else if (jj_2_299(2)) { - e = MapConstructor(); - } else if (jj_2_300(2)) { - e = PeriodConstructor(); - } else if (jj_2_301(2147483647)) { - e = NamedFunctionCall(); - } else if (jj_2_302(2)) { - e = ContextVariable(); - } else if (jj_2_303(2)) { - e = CompoundIdentifier(); - } else if (jj_2_304(2)) { - e = NewSpecification(); - } else if (jj_2_305(2)) { - e = CaseExpression(); - } else if (jj_2_306(2)) { - e = SequenceExpression(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - - final public SqlNode CaseExpression() throws ParseException { - final Span whenSpan = Span.of(); - final Span thenSpan = Span.of(); - final Span s; - SqlNode e; - SqlNode caseIdentifier = null; - SqlNode elseClause = null; - List whenList = new ArrayList(); - List thenList = new ArrayList(); - jj_consume_token(CASE); - s = span(); - if (jj_2_307(2)) { - caseIdentifier = Expression(ExprContext.ACCEPT_SUB_QUERY); - } else { - ; - } - label_28: - while (true) { - jj_consume_token(WHEN); - whenSpan.add(this); - e = ExpressionCommaList(s, ExprContext.ACCEPT_SUB_QUERY); - if (((SqlNodeList) e).size() == 1) { - e = ((SqlNodeList) e).get(0); - } - whenList.add(e); - jj_consume_token(THEN); - thenSpan.add(this); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - thenList.add(e); - if (jj_2_308(2)) { - ; - } else { - break label_28; - } - } - if (jj_2_309(2)) { - jj_consume_token(ELSE); - elseClause = Expression(ExprContext.ACCEPT_SUB_QUERY); - } else { - ; - } - jj_consume_token(END); - {if (true) return SqlCase.createSwitched(s.end(this), caseIdentifier, - new SqlNodeList(whenList, whenSpan.addAll(whenList).pos()), - new SqlNodeList(thenList, thenSpan.addAll(thenList).pos()), - elseClause);} - throw new Error("Missing return statement in function"); - } - - final public SqlCall SequenceExpression() throws ParseException { - final Span s; - final SqlOperator f; - final SqlNode sequenceRef; - if (jj_2_310(2)) { - jj_consume_token(NEXT); - f = SqlStdOperatorTable.NEXT_VALUE; s = span(); - } else if (jj_2_311(2)) { - jj_consume_token(CURRENT); - f = SqlStdOperatorTable.CURRENT_VALUE; s = span(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(VALUE); - jj_consume_token(FOR); - sequenceRef = CompoundIdentifier(); - {if (true) return f.createCall(s.end(sequenceRef), sequenceRef);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses "SET <NAME> = VALUE" or "RESET <NAME>", without a leading - * "ALTER <SCOPE>". - */ - final public SqlSetOption SqlSetOption(Span s, String scope) throws ParseException { - SqlIdentifier name; - final SqlNode val; - if (jj_2_317(2)) { - jj_consume_token(SET); - s.add(this); - name = CompoundIdentifier(); - jj_consume_token(EQ); - if (jj_2_312(2)) { - val = Literal(); - } else if (jj_2_313(2)) { - val = SimpleIdentifier(); - } else if (jj_2_314(2)) { - jj_consume_token(ON); - // OFF is handled by SimpleIdentifier, ON handled here. - val = new SqlIdentifier(token.image.toUpperCase(Locale.ROOT), - getPos()); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new SqlSetOption(s.end(val), scope, name, val);} - } else if (jj_2_318(2)) { - jj_consume_token(RESET); - s.add(this); - if (jj_2_315(2)) { - name = CompoundIdentifier(); - } else if (jj_2_316(2)) { - jj_consume_token(ALL); - name = new SqlIdentifier(token.image.toUpperCase(Locale.ROOT), - getPos()); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new SqlSetOption(s.end(name), scope, name, null);} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses an expression for setting or resetting an option in SQL, such as QUOTED_IDENTIFIERS, - * or explain plan level (physical/logical). - */ - final public SqlAlter SqlAlter() throws ParseException { - final Span s; - final String scope; - final SqlAlter alterNode; - jj_consume_token(ALTER); - s = span(); - scope = Scope(); - alterNode = SqlSetOption(s, scope); - {if (true) return alterNode;} - throw new Error("Missing return statement in function"); - } - - final public String Scope() throws ParseException { - if (jj_2_319(2)) { - jj_consume_token(SYSTEM); - } else if (jj_2_320(2)) { - jj_consume_token(SESSION); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return token.image.toUpperCase(Locale.ROOT);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a literal expression, allowing continued string literals. - * Usually returns an SqlLiteral, but a continued string literal - * is an SqlCall expression, which concatenates 2 or more string - * literals; the validator reduces this. - */ - final public SqlNode Literal() throws ParseException { - SqlNode e; - if (jj_2_321(2)) { - e = NumericLiteral(); - } else if (jj_2_322(2)) { - e = StringLiteral(); - } else if (jj_2_323(2)) { - e = SpecialLiteral(); - } else if (jj_2_324(2)) { - e = DateTimeLiteral(); - } else if (jj_2_325(2)) { - e = IntervalLiteral(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return e;} - throw new Error("Missing return statement in function"); - } - -/** Parses a unsigned numeric literal */ - final public SqlNumericLiteral UnsignedNumericLiteral() throws ParseException { - if (jj_2_326(2)) { - jj_consume_token(UNSIGNED_INTEGER_LITERAL); - {if (true) return SqlLiteral.createExactNumeric(token.image, getPos());} - } else if (jj_2_327(2)) { - jj_consume_token(DECIMAL_NUMERIC_LITERAL); - {if (true) return SqlLiteral.createExactNumeric(token.image, getPos());} - } else if (jj_2_328(2)) { - jj_consume_token(APPROX_NUMERIC_LITERAL); - {if (true) return SqlLiteral.createApproxNumeric(token.image, getPos());} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** Parses a numeric literal (can be signed) */ - final public SqlLiteral NumericLiteral() throws ParseException { - final SqlNumericLiteral num; - final Span s; - if (jj_2_329(2)) { - jj_consume_token(PLUS); - num = UnsignedNumericLiteral(); - {if (true) return num;} - } else if (jj_2_330(2)) { - jj_consume_token(MINUS); - s = span(); - num = UnsignedNumericLiteral(); - {if (true) return SqlLiteral.createNegative(num, s.end(this));} - } else if (jj_2_331(2)) { - num = UnsignedNumericLiteral(); - {if (true) return num;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** Parse a special literal keyword */ - final public SqlLiteral SpecialLiteral() throws ParseException { - if (jj_2_332(2)) { - jj_consume_token(TRUE); - {if (true) return SqlLiteral.createBoolean(true, getPos());} - } else if (jj_2_333(2)) { - jj_consume_token(FALSE); - {if (true) return SqlLiteral.createBoolean(false, getPos());} - } else if (jj_2_334(2)) { - jj_consume_token(UNKNOWN); - {if (true) return SqlLiteral.createUnknown(getPos());} - } else if (jj_2_335(2)) { - jj_consume_token(NULL); - {if (true) return SqlLiteral.createNull(getPos());} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a string literal. The literal may be continued onto several - * lines. For a simple literal, the result is an SqlLiteral. For a continued - * literal, the result is an SqlCall expression, which concatenates 2 or more - * string literals; the validator reduces this. - * - * @see SqlLiteral#unchain(SqlNode) - * @see SqlLiteral#stringValue(SqlNode) - * - * @return a literal expression - */ - final public SqlNode StringLiteral() throws ParseException { - String p; - int nfrags = 0; - List frags = null; - char unicodeEscapeChar = 0; - if (jj_2_342(2)) { - jj_consume_token(BINARY_STRING_LITERAL); - try { - p = SqlParserUtil.trim(token.image, "xX'"); - frags = startList(SqlLiteral.createBinaryString(p, getPos())); - nfrags++; - } catch (NumberFormatException ex) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.illegalBinaryString(token.image));} - } - label_29: - while (true) { - if (jj_2_336(2)) { - ; - } else { - break label_29; - } - jj_consume_token(QUOTED_STRING); - try { - p = SqlParserUtil.trim(token.image, "'"); // no embedded quotes - frags.add(SqlLiteral.createBinaryString(p, getPos())); - nfrags++; - } catch (NumberFormatException ex) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.illegalBinaryString(token.image));} - } - } - assert (nfrags > 0); - if (nfrags == 1) { - {if (true) return frags.get(0);} // just the head fragment - } else { - SqlParserPos pos2 = SqlParserPos.sum(frags); - {if (true) return SqlStdOperatorTable.LITERAL_CHAIN.createCall(pos2, frags);} - } - } else if (jj_2_343(2)) { - String charSet = null; - if (jj_2_337(2)) { - jj_consume_token(PREFIXED_STRING_LITERAL); - charSet = SqlParserUtil.getCharacterSet(token.image); - } else if (jj_2_338(2)) { - jj_consume_token(QUOTED_STRING); - } else if (jj_2_339(2)) { - jj_consume_token(UNICODE_STRING_LITERAL); - // TODO jvs 2-Feb-2009: support the explicit specification of - // a character set for Unicode string literals, per SQL:2003 - unicodeEscapeChar = BACKSLASH; - charSet = "UTF16"; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - p = SqlParserUtil.parseString(token.image); - SqlCharStringLiteral literal; - try { - literal = SqlLiteral.createCharString(p, charSet, getPos()); - } catch (java.nio.charset.UnsupportedCharsetException e) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.unknownCharacterSet(charSet));} - } - frags = startList(literal); - nfrags++; - label_30: - while (true) { - if (jj_2_340(2)) { - ; - } else { - break label_30; - } - jj_consume_token(QUOTED_STRING); - p = SqlParserUtil.parseString(token.image); - try { - literal = SqlLiteral.createCharString(p, charSet, getPos()); - } catch (java.nio.charset.UnsupportedCharsetException e) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.unknownCharacterSet(charSet));} - } - frags.add(literal); - nfrags++; - } - if (jj_2_341(2)) { - jj_consume_token(UESCAPE); - jj_consume_token(QUOTED_STRING); - if (unicodeEscapeChar == 0) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.unicodeEscapeUnexpected());} - } - String s = SqlParserUtil.parseString(token.image); - unicodeEscapeChar = SqlParserUtil.checkUnicodeEscapeChar(s); - } else { - ; - } - assert nfrags > 0; - if (nfrags == 1) { - // just the head fragment - SqlLiteral lit = (SqlLiteral) frags.get(0); - {if (true) return lit.unescapeUnicode(unicodeEscapeChar);} - } else { - SqlNode[] rands = (SqlNode[]) frags.toArray(new SqlNode[nfrags]); - for (int i = 0; i < rands.length; ++i) { - rands[i] = ((SqlLiteral) rands[i]).unescapeUnicode( - unicodeEscapeChar); - } - SqlParserPos pos2 = SqlParserPos.sum(rands); - {if (true) return SqlStdOperatorTable.LITERAL_CHAIN.createCall(pos2, rands);} - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a date/time literal. - */ - final public SqlLiteral DateTimeLiteral() throws ParseException { - final String p; - final Span s; - if (jj_2_344(2)) { - jj_consume_token(LBRACE_D); - jj_consume_token(QUOTED_STRING); - p = token.image; - jj_consume_token(RBRACE); - {if (true) return SqlParserUtil.parseDateLiteral(p, getPos());} - } else if (jj_2_345(2)) { - jj_consume_token(LBRACE_T); - jj_consume_token(QUOTED_STRING); - p = token.image; - jj_consume_token(RBRACE); - {if (true) return SqlParserUtil.parseTimeLiteral(p, getPos());} - } else if (jj_2_346(2)) { - jj_consume_token(LBRACE_TS); - s = span(); - jj_consume_token(QUOTED_STRING); - p = token.image; - jj_consume_token(RBRACE); - {if (true) return SqlParserUtil.parseTimestampLiteral(p, s.end(this));} - } else if (jj_2_347(2)) { - jj_consume_token(DATE); - s = span(); - jj_consume_token(QUOTED_STRING); - {if (true) return SqlParserUtil.parseDateLiteral(token.image, s.end(this));} - } else if (jj_2_348(2)) { - jj_consume_token(TIME); - s = span(); - jj_consume_token(QUOTED_STRING); - {if (true) return SqlParserUtil.parseTimeLiteral(token.image, s.end(this));} - } else if (jj_2_349(2)) { - jj_consume_token(TIMESTAMP); - s = span(); - jj_consume_token(QUOTED_STRING); - {if (true) return SqlParserUtil.parseTimestampLiteral(token.image, s.end(this));} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** Parses a MULTISET constructor */ - final public SqlNode MultisetConstructor() throws ParseException { - List args; - SqlNode e; - final Span s; - jj_consume_token(MULTISET); - s = span(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - jj_consume_token(LPAREN); - // by sub query "MULTISET(SELECT * FROM T)" - e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.MULTISET_QUERY.createCall( - s.end(this), e);} - break; - default: - jj_la1[1] = jj_gen; - if (jj_2_351(2)) { - jj_consume_token(LBRACKET); - // TODO: do trigraph as well ??( ??) - e = Expression(ExprContext.ACCEPT_NON_QUERY); - args = startList(e); - label_31: - while (true) { - if (jj_2_350(2)) { - ; - } else { - break label_31; - } - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_NON_QUERY); - args.add(e); - } - jj_consume_token(RBRACKET); - {if (true) return SqlStdOperatorTable.MULTISET_VALUE.createCall( - s.end(this), args);} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } - throw new Error("Missing return statement in function"); - } - -/** Parses an ARRAY constructor */ - final public SqlNode ArrayConstructor() throws ParseException { - SqlNodeList args; - SqlNode e; - final Span s; - jj_consume_token(ARRAY); - s = span(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - jj_consume_token(LPAREN); - // by sub query "MULTISET(SELECT * FROM T)" - e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.ARRAY_QUERY.createCall( - s.end(this), e);} - break; - default: - jj_la1[2] = jj_gen; - if (jj_2_353(2)) { - jj_consume_token(LBRACKET); - if (jj_2_352(2)) { - args = ExpressionCommaList(s, ExprContext.ACCEPT_NON_QUERY); - } else { - args = SqlNodeList.EMPTY; - } - jj_consume_token(RBRACKET); - {if (true) return SqlStdOperatorTable.ARRAY_VALUE_CONSTRUCTOR.createCall( - s.end(this), args.getList());} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } - throw new Error("Missing return statement in function"); - } - -/** Parses a MAP constructor */ - final public SqlNode MapConstructor() throws ParseException { - SqlNodeList args; - SqlNode e; - final Span s; - jj_consume_token(MAP); - s = span(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - jj_consume_token(LPAREN); - // by sub query "MAP (SELECT empno, deptno FROM emp)" - e = LeafQueryOrExpr(ExprContext.ACCEPT_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.MAP_QUERY.createCall( - s.end(this), e);} - break; - default: - jj_la1[3] = jj_gen; - if (jj_2_355(2)) { - jj_consume_token(LBRACKET); - if (jj_2_354(2)) { - args = ExpressionCommaList(s, ExprContext.ACCEPT_NON_QUERY); - } else { - args = SqlNodeList.EMPTY; - } - jj_consume_token(RBRACKET); - {if (true) return SqlStdOperatorTable.MAP_VALUE_CONSTRUCTOR.createCall( - s.end(this), args.getList());} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } - throw new Error("Missing return statement in function"); - } - -/** Parses a PERIOD constructor */ - final public SqlNode PeriodConstructor() throws ParseException { - final SqlNode e0, e1; - final Span s; - jj_consume_token(PERIOD); - s = span(); - jj_consume_token(LPAREN); - e0 = Expression(ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(COMMA); - e1 = Expression(ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.ROW.createCall(s.end(this), e0, e1);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses an interval literal. - */ - final public SqlLiteral IntervalLiteral() throws ParseException { - final String p; - final SqlIntervalQualifier intervalQualifier; - int sign = 1; - final Span s; - jj_consume_token(INTERVAL); - s = span(); - if (jj_2_358(2)) { - if (jj_2_356(2)) { - jj_consume_token(MINUS); - sign = -1; - } else if (jj_2_357(2)) { - jj_consume_token(PLUS); - sign = 1; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - jj_consume_token(QUOTED_STRING); - p = token.image; - intervalQualifier = IntervalQualifier(); - {if (true) return SqlParserUtil.parseIntervalLiteral(s.end(intervalQualifier), - sign, p, intervalQualifier);} - throw new Error("Missing return statement in function"); - } - - final public SqlIntervalQualifier IntervalQualifier() throws ParseException { - TimeUnit start; - TimeUnit end = null; - int startPrec = RelDataType.PRECISION_NOT_SPECIFIED; - int secondFracPrec = RelDataType.PRECISION_NOT_SPECIFIED; - if (jj_2_378(2)) { - jj_consume_token(YEAR); - if (jj_2_359(2)) { - jj_consume_token(LPAREN); - startPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - if (jj_2_360(2)) { - jj_consume_token(TO); - jj_consume_token(MONTH); - end = TimeUnit.MONTH; - } else { - ; - } - start = TimeUnit.YEAR; - } else if (jj_2_379(2)) { - jj_consume_token(MONTH); - if (jj_2_361(2)) { - jj_consume_token(LPAREN); - startPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - start = TimeUnit.MONTH; - } else if (jj_2_380(2)) { - jj_consume_token(DAY); - if (jj_2_362(2)) { - jj_consume_token(LPAREN); - startPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - if (jj_2_367(2)) { - jj_consume_token(TO); - if (jj_2_364(2)) { - jj_consume_token(HOUR); - end = TimeUnit.HOUR; - } else if (jj_2_365(2)) { - jj_consume_token(MINUTE); - end = TimeUnit.MINUTE; - } else if (jj_2_366(2)) { - jj_consume_token(SECOND); - end = TimeUnit.SECOND; - if (jj_2_363(2)) { - jj_consume_token(LPAREN); - secondFracPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - start = TimeUnit.DAY; - } else if (jj_2_381(2)) { - jj_consume_token(HOUR); - if (jj_2_368(2)) { - jj_consume_token(LPAREN); - startPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - if (jj_2_372(2)) { - jj_consume_token(TO); - if (jj_2_370(2)) { - jj_consume_token(MINUTE); - end = TimeUnit.MINUTE; - } else if (jj_2_371(2)) { - jj_consume_token(SECOND); - end = TimeUnit.SECOND; - if (jj_2_369(2)) { - jj_consume_token(LPAREN); - secondFracPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - start = TimeUnit.HOUR; - } else if (jj_2_382(2)) { - jj_consume_token(MINUTE); - if (jj_2_373(2)) { - jj_consume_token(LPAREN); - startPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - if (jj_2_375(2)) { - jj_consume_token(TO); - jj_consume_token(SECOND); - end = TimeUnit.SECOND; - if (jj_2_374(2)) { - jj_consume_token(LPAREN); - secondFracPrec = UnsignedIntLiteral(); - jj_consume_token(RPAREN); - } else { - ; - } - } else { - ; - } - start = TimeUnit.MINUTE; - } else if (jj_2_383(2)) { - jj_consume_token(SECOND); - if (jj_2_377(2)) { - jj_consume_token(LPAREN); - startPrec = UnsignedIntLiteral(); - if (jj_2_376(2)) { - jj_consume_token(COMMA); - secondFracPrec = UnsignedIntLiteral(); - } else { - ; - } - jj_consume_token(RPAREN); - } else { - ; - } - start = TimeUnit.SECOND; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new SqlIntervalQualifier(start, - startPrec, - end, - secondFracPrec, - getPos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses time unit for EXTRACT, CEIL and FLOOR functions. - */ - final public TimeUnit TimeUnit() throws ParseException { - if (jj_2_384(2)) { - jj_consume_token(SECOND); - {if (true) return TimeUnit.SECOND;} - } else if (jj_2_385(2)) { - jj_consume_token(MINUTE); - {if (true) return TimeUnit.MINUTE;} - } else if (jj_2_386(2)) { - jj_consume_token(HOUR); - {if (true) return TimeUnit.HOUR;} - } else if (jj_2_387(2)) { - jj_consume_token(DAY); - {if (true) return TimeUnit.DAY;} - } else if (jj_2_388(2)) { - jj_consume_token(DOW); - {if (true) return TimeUnit.DOW;} - } else if (jj_2_389(2)) { - jj_consume_token(DOY); - {if (true) return TimeUnit.DOY;} - } else if (jj_2_390(2)) { - jj_consume_token(WEEK); - {if (true) return TimeUnit.WEEK;} - } else if (jj_2_391(2)) { - jj_consume_token(MONTH); - {if (true) return TimeUnit.MONTH;} - } else if (jj_2_392(2)) { - jj_consume_token(QUARTER); - {if (true) return TimeUnit.QUARTER;} - } else if (jj_2_393(2)) { - jj_consume_token(YEAR); - {if (true) return TimeUnit.YEAR;} - } else if (jj_2_394(2)) { - jj_consume_token(EPOCH); - {if (true) return TimeUnit.EPOCH;} - } else if (jj_2_395(2)) { - jj_consume_token(DECADE); - {if (true) return TimeUnit.DECADE;} - } else if (jj_2_396(2)) { - jj_consume_token(CENTURY); - {if (true) return TimeUnit.CENTURY;} - } else if (jj_2_397(2)) { - jj_consume_token(MILLENNIUM); - {if (true) return TimeUnit.MILLENNIUM;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - final public TimeUnit TimestampInterval() throws ParseException { - if (jj_2_398(2)) { - jj_consume_token(FRAC_SECOND); - {if (true) return TimeUnit.MICROSECOND;} - } else if (jj_2_399(2)) { - jj_consume_token(MICROSECOND); - {if (true) return TimeUnit.MICROSECOND;} - } else if (jj_2_400(2)) { - jj_consume_token(SQL_TSI_FRAC_SECOND); - {if (true) return TimeUnit.MICROSECOND;} - } else if (jj_2_401(2)) { - jj_consume_token(SQL_TSI_MICROSECOND); - {if (true) return TimeUnit.MICROSECOND;} - } else if (jj_2_402(2)) { - jj_consume_token(SECOND); - {if (true) return TimeUnit.SECOND;} - } else if (jj_2_403(2)) { - jj_consume_token(SQL_TSI_SECOND); - {if (true) return TimeUnit.SECOND;} - } else if (jj_2_404(2)) { - jj_consume_token(MINUTE); - {if (true) return TimeUnit.MINUTE;} - } else if (jj_2_405(2)) { - jj_consume_token(SQL_TSI_MINUTE); - {if (true) return TimeUnit.MINUTE;} - } else if (jj_2_406(2)) { - jj_consume_token(HOUR); - {if (true) return TimeUnit.HOUR;} - } else if (jj_2_407(2)) { - jj_consume_token(SQL_TSI_HOUR); - {if (true) return TimeUnit.HOUR;} - } else if (jj_2_408(2)) { - jj_consume_token(DAY); - {if (true) return TimeUnit.DAY;} - } else if (jj_2_409(2)) { - jj_consume_token(SQL_TSI_DAY); - {if (true) return TimeUnit.DAY;} - } else if (jj_2_410(2)) { - jj_consume_token(WEEK); - {if (true) return TimeUnit.WEEK;} - } else if (jj_2_411(2)) { - jj_consume_token(SQL_TSI_WEEK); - {if (true) return TimeUnit.WEEK;} - } else if (jj_2_412(2)) { - jj_consume_token(MONTH); - {if (true) return TimeUnit.MONTH;} - } else if (jj_2_413(2)) { - jj_consume_token(SQL_TSI_MONTH); - {if (true) return TimeUnit.MONTH;} - } else if (jj_2_414(2)) { - jj_consume_token(QUARTER); - {if (true) return TimeUnit.QUARTER;} - } else if (jj_2_415(2)) { - jj_consume_token(SQL_TSI_QUARTER); - {if (true) return TimeUnit.QUARTER;} - } else if (jj_2_416(2)) { - jj_consume_token(YEAR); - {if (true) return TimeUnit.YEAR;} - } else if (jj_2_417(2)) { - jj_consume_token(SQL_TSI_YEAR); - {if (true) return TimeUnit.YEAR;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a dynamic parameter marker. - */ - final public SqlDynamicParam DynamicParam() throws ParseException { - jj_consume_token(HOOK); - {if (true) return new SqlDynamicParam(nDynamicParams++, getPos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a simple identifier as a string. - */ - final public String Identifier() throws ParseException { - String id; - char unicodeEscapeChar = BACKSLASH; - if (jj_2_419(2)) { - jj_consume_token(IDENTIFIER); - id = unquotedIdentifier(); - } else if (jj_2_420(2)) { - jj_consume_token(QUOTED_IDENTIFIER); - id = SqlParserUtil.strip(getToken(0).image, DQ, DQ, DQDQ, - quotedCasing); - } else if (jj_2_421(2)) { - jj_consume_token(BACK_QUOTED_IDENTIFIER); - id = SqlParserUtil.strip(getToken(0).image, "`", "`", "``", - quotedCasing); - } else if (jj_2_422(2)) { - jj_consume_token(BRACKET_QUOTED_IDENTIFIER); - id = SqlParserUtil.strip(getToken(0).image, "[", "]", "]]", - quotedCasing); - } else if (jj_2_423(2)) { - jj_consume_token(UNICODE_QUOTED_IDENTIFIER); - id = getToken(0).image; - id = id.substring(id.indexOf('"')); - id = SqlParserUtil.strip(id, DQ, DQ, DQDQ, quotedCasing); - if (jj_2_418(2)) { - jj_consume_token(UESCAPE); - jj_consume_token(QUOTED_STRING); - String s = SqlParserUtil.parseString(token.image); - unicodeEscapeChar = SqlParserUtil.checkUnicodeEscapeChar(s); - } else { - ; - } - SqlLiteral lit = SqlLiteral.createCharString(id, "UTF16", getPos()); - lit = lit.unescapeUnicode(unicodeEscapeChar); - {if (true) return lit.toValue();} - } else if (jj_2_424(2)) { - id = NonReservedKeyWord(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (id.length() > this.identifierMaxLength) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.identifierTooLong(id, this.identifierMaxLength));} - } - {if (true) return id;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a simple identifier as an SqlIdentifier. - */ - final public SqlIdentifier SimpleIdentifier() throws ParseException { - final String p; - p = Identifier(); - {if (true) return new SqlIdentifier(p, getPos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a comma-separated list of simple identifiers. - */ - final public void SimpleIdentifierCommaList(List list) throws ParseException { - SqlIdentifier id; - id = SimpleIdentifier(); - list.add(id); - label_32: - while (true) { - if (jj_2_425(2)) { - ; - } else { - break label_32; - } - jj_consume_token(COMMA); - id = SimpleIdentifier(); - list.add(id); - } - } - -/** - * List of simple identifiers in parentheses. The position extends from the - * open parenthesis to the close parenthesis. - */ - final public SqlNodeList ParenthesizedSimpleIdentifierList() throws ParseException { - final Span s; - final List list = new ArrayList(); - jj_consume_token(LPAREN); - s = span(); - SimpleIdentifierCommaList(list); - jj_consume_token(RPAREN); - {if (true) return new SqlNodeList(list, s.end(this));} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a compound identifier. - */ - final public SqlIdentifier CompoundIdentifier() throws ParseException { - List list = new ArrayList(); - List posList = new ArrayList(); - String p; - boolean star = false; - p = Identifier(); - posList.add(getPos()); - list.add(p); - label_33: - while (true) { - if (jj_2_426(2)) { - ; - } else { - break label_33; - } - jj_consume_token(DOT); - p = Identifier(); - list.add(p); - posList.add(getPos()); - } - if (jj_2_427(2)) { - jj_consume_token(DOT); - jj_consume_token(STAR); - star = true; - list.add(""); - posList.add(getPos()); - } else { - ; - } - SqlParserPos pos = SqlParserPos.sum(posList); - if (star) { - {if (true) return SqlIdentifier.star(list, pos, posList);} - } - {if (true) return new SqlIdentifier(list, null, pos, posList);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a comma-separated list of compound identifiers. - */ - final public void CompoundIdentifierTypeCommaList(List list, List extendList) throws ParseException { - CompoundIdentifierType(list, extendList); - label_34: - while (true) { - if (jj_2_428(2)) { - ; - } else { - break label_34; - } - jj_consume_token(COMMA); - CompoundIdentifierType(list, extendList); - } - } - -/** - * List of compound identifiers in parentheses. The position extends from the - * open parenthesis to the close parenthesis. - */ - final public Pair ParenthesizedCompoundIdentifierList() throws ParseException { - final Span s; - final List list = new ArrayList(); - final List extendList = new ArrayList(); - jj_consume_token(LPAREN); - s = span(); - CompoundIdentifierTypeCommaList(list, extendList); - jj_consume_token(RPAREN); - {if (true) return Pair.of(new SqlNodeList(list, s.end(this)), new SqlNodeList(extendList, s.end(this)));} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a NEW UDT(...) expression. - */ - final public SqlNode NewSpecification() throws ParseException { - final Span s; - final SqlNode routineCall; - jj_consume_token(NEW); - s = span(); - routineCall = NamedRoutineCall(SqlFunctionCategory.USER_DEFINED_CONSTRUCTOR, - ExprContext.ACCEPT_SUB_QUERY); - {if (true) return SqlStdOperatorTable.NEW.createCall(s.end(routineCall), routineCall);} - throw new Error("Missing return statement in function"); - } - -//TODO: real parse errors. - final public int UnsignedIntLiteral() throws ParseException { - Token t; - t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); - try { - {if (true) return Integer.parseInt(t.image);} - } catch (NumberFormatException ex) { - {if (true) throw generateParseException();} - } - throw new Error("Missing return statement in function"); - } - - final public int IntLiteral() throws ParseException { - Token t; - if (jj_2_431(2)) { - if (jj_2_429(2)) { - t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); - } else if (jj_2_430(2)) { - jj_consume_token(PLUS); - t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - try { - {if (true) return Integer.parseInt(t.image);} - } catch (NumberFormatException ex) { - {if (true) throw generateParseException();} - } - } else if (jj_2_432(2)) { - jj_consume_token(MINUS); - t = jj_consume_token(UNSIGNED_INTEGER_LITERAL); - try { - {if (true) return -Integer.parseInt(t.image);} - } catch (NumberFormatException ex) { - {if (true) throw generateParseException();} - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -// Type name with optional scale and precision - final public SqlDataTypeSpec DataType() throws ParseException { - final SqlIdentifier typeName; - SqlIdentifier collectionTypeName = null; - int scale = -1; - int precision = -1; - String charSetName = null; - final Span s; - typeName = TypeName(); - s = span(); - if (jj_2_434(2)) { - jj_consume_token(LPAREN); - precision = UnsignedIntLiteral(); - if (jj_2_433(2)) { - jj_consume_token(COMMA); - scale = UnsignedIntLiteral(); - } else { - ; - } - jj_consume_token(RPAREN); - } else { - ; - } - if (jj_2_435(2)) { - jj_consume_token(CHARACTER); - jj_consume_token(SET); - charSetName = Identifier(); - } else { - ; - } - if (jj_2_436(2)) { - collectionTypeName = CollectionsTypeName(); - } else { - ; - } - if (null != collectionTypeName) { - {if (true) return new SqlDataTypeSpec( - collectionTypeName, - typeName, - precision, - scale, - charSetName, - s.end(collectionTypeName));} - } - {if (true) return new SqlDataTypeSpec( - typeName, - precision, - scale, - charSetName, - null, - s.end(this));} - throw new Error("Missing return statement in function"); - } - -// Some SQL type names need special handling due to the fact that they have -// spaces in them but are not quoted. - final public SqlIdentifier TypeName() throws ParseException { - final SqlTypeName sqlTypeName; - final SqlIdentifier typeName; - final Span s = Span.of(); - if (jj_2_437(2)) { - sqlTypeName = SqlTypeName(s); - typeName = new SqlIdentifier(sqlTypeName.name(), s.end(this)); - } else if (jj_2_438(2)) { - typeName = CollectionsTypeName(); - } else if (jj_2_439(2)) { - typeName = CompoundIdentifier(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return typeName;} - throw new Error("Missing return statement in function"); - } - -// Types used for JDBC and ODBC scalar conversion function - final public SqlTypeName SqlTypeName(Span s) throws ParseException { - if (jj_2_450(2)) { - if (jj_2_440(2)) { - jj_consume_token(CHARACTER); - } else if (jj_2_441(2)) { - jj_consume_token(CHAR); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s.add(this); - if (jj_2_442(2)) { - jj_consume_token(VARYING); - {if (true) return SqlTypeName.VARCHAR;} - } else { - {if (true) return SqlTypeName.CHAR;} - } - } else if (jj_2_451(2)) { - jj_consume_token(VARCHAR); - {if (true) return SqlTypeName.VARCHAR;} - } else if (jj_2_452(2)) { - jj_consume_token(DATE); - {if (true) return SqlTypeName.DATE;} - } else if (jj_2_453(2)) { - jj_consume_token(TIME); - {if (true) return SqlTypeName.TIME;} - } else if (jj_2_454(2)) { - jj_consume_token(TIMESTAMP); - {if (true) return SqlTypeName.TIMESTAMP;} - } else if (jj_2_455(2)) { - jj_consume_token(GEOMETRY); - if (!this.conformance.allowGeometry()) { - {if (true) throw new ParseException(RESOURCE.geometryDisabled().str());} - } - {if (true) return SqlTypeName.GEOMETRY;} - } else if (jj_2_456(2)) { - if (jj_2_443(2)) { - jj_consume_token(DECIMAL); - } else if (jj_2_444(2)) { - jj_consume_token(DEC); - } else if (jj_2_445(2)) { - jj_consume_token(NUMERIC); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlTypeName.DECIMAL;} - } else if (jj_2_457(2)) { - jj_consume_token(BOOLEAN); - {if (true) return SqlTypeName.BOOLEAN;} - } else if (jj_2_458(2)) { - if (jj_2_446(2)) { - jj_consume_token(INTEGER); - } else if (jj_2_447(2)) { - jj_consume_token(INT); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlTypeName.INTEGER;} - } else if (jj_2_459(2)) { - jj_consume_token(BINARY); - s.add(this); - if (jj_2_448(2)) { - jj_consume_token(VARYING); - {if (true) return SqlTypeName.VARBINARY;} - } else { - {if (true) return SqlTypeName.BINARY;} - } - } else if (jj_2_460(2)) { - jj_consume_token(VARBINARY); - {if (true) return SqlTypeName.VARBINARY;} - } else if (jj_2_461(2)) { - jj_consume_token(TINYINT); - {if (true) return SqlTypeName.TINYINT;} - } else if (jj_2_462(2)) { - jj_consume_token(SMALLINT); - {if (true) return SqlTypeName.SMALLINT;} - } else if (jj_2_463(2)) { - jj_consume_token(BIGINT); - {if (true) return SqlTypeName.BIGINT;} - } else if (jj_2_464(2)) { - jj_consume_token(REAL); - {if (true) return SqlTypeName.REAL;} - } else if (jj_2_465(2)) { - jj_consume_token(DOUBLE); - s.add(this); - if (jj_2_449(2)) { - jj_consume_token(PRECISION); - } else { - ; - } - {if (true) return SqlTypeName.DOUBLE;} - } else if (jj_2_466(2)) { - jj_consume_token(FLOAT); - {if (true) return SqlTypeName.FLOAT;} - } else if (jj_2_467(2)) { - jj_consume_token(ANY); - {if (true) return SqlTypeName.ANY;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -// Types used for for JDBC and ODBC scalar conversion function - final public SqlJdbcDataTypeName JdbcOdbcDataTypeName() throws ParseException { - if (jj_2_502(2)) { - if (jj_2_468(2)) { - jj_consume_token(SQL_CHAR); - } else if (jj_2_469(2)) { - jj_consume_token(CHAR); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_CHAR;} - } else if (jj_2_503(2)) { - if (jj_2_470(2)) { - jj_consume_token(SQL_VARCHAR); - } else if (jj_2_471(2)) { - jj_consume_token(VARCHAR); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_VARCHAR;} - } else if (jj_2_504(2)) { - if (jj_2_472(2)) { - jj_consume_token(SQL_DATE); - } else if (jj_2_473(2)) { - jj_consume_token(DATE); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_DATE;} - } else if (jj_2_505(2)) { - if (jj_2_474(2)) { - jj_consume_token(SQL_TIME); - } else if (jj_2_475(2)) { - jj_consume_token(TIME); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_TIME;} - } else if (jj_2_506(2)) { - if (jj_2_476(2)) { - jj_consume_token(SQL_TIMESTAMP); - } else if (jj_2_477(2)) { - jj_consume_token(TIMESTAMP); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_TIMESTAMP;} - } else if (jj_2_507(2)) { - if (jj_2_478(2)) { - jj_consume_token(SQL_DECIMAL); - } else if (jj_2_479(2)) { - jj_consume_token(DECIMAL); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_DECIMAL;} - } else if (jj_2_508(2)) { - if (jj_2_480(2)) { - jj_consume_token(SQL_NUMERIC); - } else if (jj_2_481(2)) { - jj_consume_token(NUMERIC); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_NUMERIC;} - } else if (jj_2_509(2)) { - if (jj_2_482(2)) { - jj_consume_token(SQL_BOOLEAN); - } else if (jj_2_483(2)) { - jj_consume_token(BOOLEAN); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_BOOLEAN;} - } else if (jj_2_510(2)) { - if (jj_2_484(2)) { - jj_consume_token(SQL_INTEGER); - } else if (jj_2_485(2)) { - jj_consume_token(INTEGER); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_INTEGER;} - } else if (jj_2_511(2)) { - if (jj_2_486(2)) { - jj_consume_token(SQL_BINARY); - } else if (jj_2_487(2)) { - jj_consume_token(BINARY); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_BINARY;} - } else if (jj_2_512(2)) { - if (jj_2_488(2)) { - jj_consume_token(SQL_VARBINARY); - } else if (jj_2_489(2)) { - jj_consume_token(VARBINARY); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_VARBINARY;} - } else if (jj_2_513(2)) { - if (jj_2_490(2)) { - jj_consume_token(SQL_TINYINT); - } else if (jj_2_491(2)) { - jj_consume_token(TINYINT); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_TINYINT;} - } else if (jj_2_514(2)) { - if (jj_2_492(2)) { - jj_consume_token(SQL_SMALLINT); - } else if (jj_2_493(2)) { - jj_consume_token(SMALLINT); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_SMALLINT;} - } else if (jj_2_515(2)) { - if (jj_2_494(2)) { - jj_consume_token(SQL_BIGINT); - } else if (jj_2_495(2)) { - jj_consume_token(BIGINT); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_BIGINT;} - } else if (jj_2_516(2)) { - if (jj_2_496(2)) { - jj_consume_token(SQL_REAL); - } else if (jj_2_497(2)) { - jj_consume_token(REAL); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_REAL;} - } else if (jj_2_517(2)) { - if (jj_2_498(2)) { - jj_consume_token(SQL_DOUBLE); - } else if (jj_2_499(2)) { - jj_consume_token(DOUBLE); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_DOUBLE;} - } else if (jj_2_518(2)) { - if (jj_2_500(2)) { - jj_consume_token(SQL_FLOAT); - } else if (jj_2_501(2)) { - jj_consume_token(FLOAT); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlJdbcDataTypeName.SQL_FLOAT;} - } else if (jj_2_519(2)) { - jj_consume_token(SQL_INTERVAL_YEAR); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_YEAR;} - } else if (jj_2_520(2)) { - jj_consume_token(SQL_INTERVAL_YEAR_TO_MONTH); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_YEAR_TO_MONTH;} - } else if (jj_2_521(2)) { - jj_consume_token(SQL_INTERVAL_MONTH); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_MONTH;} - } else if (jj_2_522(2)) { - jj_consume_token(SQL_INTERVAL_DAY); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY;} - } else if (jj_2_523(2)) { - jj_consume_token(SQL_INTERVAL_DAY_TO_HOUR); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY_TO_HOUR;} - } else if (jj_2_524(2)) { - jj_consume_token(SQL_INTERVAL_DAY_TO_MINUTE); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY_TO_MINUTE;} - } else if (jj_2_525(2)) { - jj_consume_token(SQL_INTERVAL_DAY_TO_SECOND); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_DAY_TO_SECOND;} - } else if (jj_2_526(2)) { - jj_consume_token(SQL_INTERVAL_HOUR); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_HOUR;} - } else if (jj_2_527(2)) { - jj_consume_token(SQL_INTERVAL_HOUR_TO_MINUTE); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_HOUR_TO_MINUTE;} - } else if (jj_2_528(2)) { - jj_consume_token(SQL_INTERVAL_HOUR_TO_SECOND); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_HOUR_TO_SECOND;} - } else if (jj_2_529(2)) { - jj_consume_token(SQL_INTERVAL_MINUTE); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_MINUTE;} - } else if (jj_2_530(2)) { - jj_consume_token(SQL_INTERVAL_MINUTE_TO_SECOND); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_MINUTE_TO_SECOND;} - } else if (jj_2_531(2)) { - jj_consume_token(SQL_INTERVAL_SECOND); - {if (true) return SqlJdbcDataTypeName.SQL_INTERVAL_SECOND;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - final public SqlLiteral JdbcOdbcDataType() throws ParseException { - SqlJdbcDataTypeName typeName; - typeName = JdbcOdbcDataTypeName(); - {if (true) return typeName.symbol(getPos());} - throw new Error("Missing return statement in function"); - } - - final public SqlIdentifier CollectionsTypeName() throws ParseException { - jj_consume_token(MULTISET); - {if (true) return new SqlIdentifier( - SqlTypeName.MULTISET.name(), getPos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a CURSOR(query) expression. The parser allows these - * anywhere, but the validator restricts them to appear only as - * arguments to table functions. - */ - final public SqlNode CursorExpression(ExprContext exprContext) throws ParseException { - final SqlNode e; - final Span s; - jj_consume_token(CURSOR); - s = span(); - if (exprContext != ExprContext.ACCEPT_ALL - && exprContext != ExprContext.ACCEPT_CURSOR) { - {if (true) throw SqlUtil.newContextException(s.end(this), - RESOURCE.illegalCursorExpression());} - } - e = Expression(ExprContext.ACCEPT_QUERY); - {if (true) return SqlStdOperatorTable.CURSOR.createCall(s.end(e), e);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a call to a builtin function with special syntax. - */ - final public SqlNode BuiltinFunctionCall() throws ParseException { - final SqlIdentifier name; - List args = null; - SqlNode e = null; - final Span s; - SqlDataTypeSpec dt; - TimeUnit interval; - final SqlNode node; - if (jj_2_554(2)) { - jj_consume_token(CAST); - s = span(); - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = startList(e); - jj_consume_token(AS); - if (jj_2_532(2)) { - dt = DataType(); - args.add(dt); - } else if (jj_2_533(2)) { - jj_consume_token(INTERVAL); - e = IntervalQualifier(); - args.add(e); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.CAST.createCall(s.end(this), args);} - } else if (jj_2_555(2)) { - jj_consume_token(EXTRACT); - s = span(); - TimeUnit unit; - jj_consume_token(LPAREN); - unit = TimeUnit(); - args = startList(new SqlIntervalQualifier(unit, null, getPos())); - jj_consume_token(FROM); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.EXTRACT.createCall(s.end(this), args);} - } else if (jj_2_556(2)) { - jj_consume_token(POSITION); - s = span(); - jj_consume_token(LPAREN); - // FIXME jvs 31-Aug-2006: FRG-192: This should be - // Expression(ExprContext.ACCEPT_SUB_QUERY), but that doesn't work - // because it matches the other kind of IN. - e = AtomicRowExpression(); - args = startList(e); - jj_consume_token(IN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - if (jj_2_534(2)) { - jj_consume_token(FROM); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - } else { - ; - } - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.POSITION.createCall(s.end(this), args);} - } else if (jj_2_557(2)) { - jj_consume_token(CONVERT); - s = span(); - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = startList(e); - jj_consume_token(USING); - name = SimpleIdentifier(); - args.add(name); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.CONVERT.createCall(s.end(this), args);} - } else if (jj_2_558(2)) { - jj_consume_token(TRANSLATE); - s = span(); - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = startList(e); - if (jj_2_536(2)) { - jj_consume_token(USING); - name = SimpleIdentifier(); - args.add(name); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.TRANSLATE.createCall(s.end(this), - args);} - } else if (jj_2_537(2)) { - label_35: - while (true) { - if (jj_2_535(2)) { - ; - } else { - break label_35; - } - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - } - jj_consume_token(RPAREN); - {if (true) return OracleSqlOperatorTable.TRANSLATE3.createCall( - s.end(this), args);} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else if (jj_2_559(2)) { - jj_consume_token(OVERLAY); - s = span(); - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = startList(e); - jj_consume_token(PLACING); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - jj_consume_token(FROM); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - if (jj_2_538(2)) { - jj_consume_token(FOR); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - } else { - ; - } - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.OVERLAY.createCall(s.end(this), args);} - } else if (jj_2_560(2)) { - jj_consume_token(FLOOR); - s = span(); - e = FloorCeilOptions(s, true); - {if (true) return e;} - } else if (jj_2_561(2)) { - if (jj_2_539(2)) { - jj_consume_token(CEIL); - } else if (jj_2_540(2)) { - jj_consume_token(CEILING); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s = span(); - e = FloorCeilOptions(s, false); - {if (true) return e;} - } else if (jj_2_562(2)) { - jj_consume_token(SUBSTRING); - s = span(); - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = startList(e); - if (jj_2_541(2)) { - jj_consume_token(FROM); - } else if (jj_2_542(2)) { - jj_consume_token(COMMA); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - if (jj_2_545(2)) { - if (jj_2_543(2)) { - jj_consume_token(FOR); - } else if (jj_2_544(2)) { - jj_consume_token(COMMA); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - } else { - ; - } - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.SUBSTRING.createCall( - s.end(this), args);} - } else if (jj_2_563(2)) { - jj_consume_token(TRIM); - SqlLiteral flag = null; - SqlNode trimChars = null; - s = span(); - jj_consume_token(LPAREN); - if (jj_2_553(2)) { - if (jj_2_549(2)) { - if (jj_2_546(2)) { - jj_consume_token(BOTH); - s.add(this); - flag = SqlTrimFunction.Flag.BOTH.symbol(getPos()); - } else if (jj_2_547(2)) { - jj_consume_token(TRAILING); - s.add(this); - flag = SqlTrimFunction.Flag.TRAILING.symbol(getPos()); - } else if (jj_2_548(2)) { - jj_consume_token(LEADING); - s.add(this); - flag = SqlTrimFunction.Flag.LEADING.symbol(getPos()); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - if (jj_2_550(2)) { - trimChars = Expression(ExprContext.ACCEPT_SUB_QUERY); - } else { - ; - } - if (jj_2_551(2)) { - jj_consume_token(FROM); - if (null == flag && null == trimChars) { - {if (true) throw SqlUtil.newContextException(getPos(), - RESOURCE.illegalFromEmpty());} - } - } else if (jj_2_552(2)) { - jj_consume_token(RPAREN); - // This is to handle the case of TRIM(x) - // (FRG-191). - if (flag == null) { - flag = SqlTrimFunction.Flag.BOTH.symbol(SqlParserPos.ZERO); - } - args = startList(flag); - args.add(null); // no trim chars - args.add(trimChars); // reinterpret trimChars as source - {if (true) return SqlStdOperatorTable.TRIM.createCall(s.end(this), - args);} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - if (flag == null) { - flag = SqlTrimFunction.Flag.BOTH.symbol(SqlParserPos.ZERO); - } - args = startList(flag); - args.add(trimChars); - args.add(e); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.TRIM.createCall(s.end(this), args);} - } else if (jj_2_564(2)) { - node = TimestampAddFunctionCall(); - {if (true) return node;} - } else if (jj_2_565(2)) { - node = TimestampDiffFunctionCall(); - {if (true) return node;} - } else if (jj_2_566(2)) { - node = ExtendedBuiltinFunctionCall(); - {if (true) return node;} - } else if (jj_2_567(2)) { - node = MatchRecognizeFunctionCall(); - {if (true) return node;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a call to TIMESTAMPADD. - */ - final public SqlCall TimestampAddFunctionCall() throws ParseException { - List args; - SqlNode e; - final Span s; - TimeUnit interval; - SqlNode node; - jj_consume_token(TIMESTAMPADD); - s = span(); - jj_consume_token(LPAREN); - interval = TimestampInterval(); - args = startList(SqlLiteral.createSymbol(interval, getPos())); - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.TIMESTAMP_ADD.createCall( - s.end(this), args);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a call to TIMESTAMPDIFF. - */ - final public SqlCall TimestampDiffFunctionCall() throws ParseException { - List args; - SqlNode e; - final Span s; - TimeUnit interval; - SqlNode node; - jj_consume_token(TIMESTAMPDIFF); - s = span(); - jj_consume_token(LPAREN); - interval = TimestampInterval(); - args = startList(SqlLiteral.createSymbol(interval, getPos())); - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - jj_consume_token(COMMA); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args.add(e); - jj_consume_token(RPAREN); - {if (true) return SqlStdOperatorTable.TIMESTAMP_DIFF.createCall( - s.end(this), args);} - throw new Error("Missing return statement in function"); - } - - final public SqlCall MatchRecognizeFunctionCall() throws ParseException { - final SqlCall func; - final Span s; - if (jj_2_568(2)) { - jj_consume_token(CLASSIFIER); - s = span(); - jj_consume_token(LPAREN); - jj_consume_token(RPAREN); - func = SqlStdOperatorTable.CLASSIFIER.createCall(s.end(this)); - } else if (jj_2_569(2)) { - jj_consume_token(MATCH_NUMBER); - s = span(); - jj_consume_token(LPAREN); - jj_consume_token(RPAREN); - func = SqlStdOperatorTable.MATCH_NUMBER.createCall(s.end(this)); - } else if (jj_2_570(2)) { - func = MatchRecognizeNavigationLogical(); - } else if (jj_2_571(2)) { - func = MatchRecognizeNavigationPhysical(); - } else if (jj_2_572(2)) { - func = MatchRecognizeCallWithModifier(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return func;} - throw new Error("Missing return statement in function"); - } - - final public SqlCall MatchRecognizeCallWithModifier() throws ParseException { - final Span s; - final SqlOperator runningOp; - final SqlNode func; - if (jj_2_573(2)) { - jj_consume_token(RUNNING); - runningOp = SqlStdOperatorTable.RUNNING; - } else if (jj_2_574(2)) { - jj_consume_token(FINAL); - runningOp = SqlStdOperatorTable.FINAL; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s = span(); - func = NamedFunctionCall(); - {if (true) return runningOp.createCall(s.end(func), func);} - throw new Error("Missing return statement in function"); - } - - final public SqlCall MatchRecognizeNavigationLogical() throws ParseException { - final Span s = Span.of(); - SqlCall func; - final SqlOperator funcOp; - final SqlOperator runningOp; - SqlNode arg0; - SqlNode arg1 = SqlLiteral.createExactNumeric("0", SqlParserPos.ZERO); - if (jj_2_575(2)) { - jj_consume_token(RUNNING); - runningOp = SqlStdOperatorTable.RUNNING; s.add(this); - } else if (jj_2_576(2)) { - jj_consume_token(FINAL); - runningOp = SqlStdOperatorTable.FINAL; s.add(this); - } else { - runningOp = null; - } - if (jj_2_577(2)) { - jj_consume_token(FIRST); - funcOp = SqlStdOperatorTable.FIRST; - } else if (jj_2_578(2)) { - jj_consume_token(LAST); - funcOp = SqlStdOperatorTable.LAST; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s.add(this); - jj_consume_token(LPAREN); - arg0 = Expression(ExprContext.ACCEPT_SUB_QUERY); - if (jj_2_579(2)) { - jj_consume_token(COMMA); - arg1 = NumericLiteral(); - } else { - ; - } - jj_consume_token(RPAREN); - func = funcOp.createCall(s.end(this), arg0, arg1); - if (runningOp != null) { - {if (true) return runningOp.createCall(s.end(this), func);} - } else { - {if (true) return func;} - } - throw new Error("Missing return statement in function"); - } - - final public SqlCall MatchRecognizeNavigationPhysical() throws ParseException { - final Span s; - SqlCall func; - SqlOperator funcOp; - SqlNode arg0; - SqlNode arg1 = SqlLiteral.createExactNumeric("1", SqlParserPos.ZERO); - if (jj_2_580(2)) { - jj_consume_token(PREV); - funcOp = SqlStdOperatorTable.PREV; - } else if (jj_2_581(2)) { - jj_consume_token(NEXT); - funcOp = SqlStdOperatorTable.NEXT; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - s = span(); - jj_consume_token(LPAREN); - arg0 = Expression(ExprContext.ACCEPT_SUB_QUERY); - if (jj_2_582(2)) { - jj_consume_token(COMMA); - arg1 = NumericLiteral(); - } else { - ; - } - jj_consume_token(RPAREN); - {if (true) return funcOp.createCall(s.end(this), arg0, arg1);} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a call to a named function (could be a builtin with regular - * syntax, or else a UDF). - * - *

NOTE: every UDF has two names: an invocation name and a - * specific name. Normally, function calls are resolved via overload - * resolution and invocation names. The SPECIFIC prefix allows overload - * resolution to be bypassed. Note that usage of the SPECIFIC prefix in - * queries is non-standard; it is used internally by Farrago, e.g. in stored - * view definitions to permanently bind references to a particular function - * after the overload resolution performed by view creation. - * - *

TODO jvs 25-Mar-2005: Once we have SQL-Flagger support, flag SPECIFIC - * as non-standard. - */ - final public SqlNode NamedFunctionCall() throws ParseException { - final SqlFunctionCategory funcType; - final SqlIdentifier qualifiedName; - final Span s; - final List args; - SqlCall call; - final Span filterSpan; - final SqlNode filter; - final SqlNode over; - SqlLiteral quantifier = null; - if (jj_2_583(2)) { - jj_consume_token(SPECIFIC); - funcType = SqlFunctionCategory.USER_DEFINED_SPECIFIC_FUNCTION; - } else { - funcType = SqlFunctionCategory.USER_DEFINED_FUNCTION; - } - qualifiedName = FunctionName(); - s = span(); - if (jj_2_584(2)) { - jj_consume_token(LPAREN); - jj_consume_token(STAR); - args = startList(SqlIdentifier.star(getPos())); - jj_consume_token(RPAREN); - } else if (jj_2_585(2)) { - jj_consume_token(LPAREN); - jj_consume_token(RPAREN); - args = Collections.emptyList(); - } else if (jj_2_586(2)) { - args = FunctionParameterList(ExprContext.ACCEPT_SUB_QUERY); - quantifier = (SqlLiteral) args.get(0); - args.remove(0); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - call = createCall(qualifiedName, s.end(this), funcType, quantifier, - args); - if (jj_2_587(2)) { - jj_consume_token(FILTER); - filterSpan = span(); - jj_consume_token(LPAREN); - jj_consume_token(WHERE); - filter = Expression(ExprContext.ACCEPT_SUB_QUERY); - jj_consume_token(RPAREN); - call = SqlStdOperatorTable.FILTER.createCall( - filterSpan.end(this), call, filter); - } else { - ; - } - if (jj_2_590(2)) { - jj_consume_token(OVER); - if (jj_2_588(2)) { - over = SimpleIdentifier(); - } else if (jj_2_589(2)) { - over = WindowSpecification(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - call = SqlStdOperatorTable.OVER.createCall(s.end(over), call, over); - } else { - ; - } - {if (true) return call;} - throw new Error("Missing return statement in function"); - } - -/* -* Parse Floor/Ceil function parameters -*/ - final public SqlNode StandardFloorCeilOptions(Span s, boolean floorFlag) throws ParseException { - SqlNode e; - final List args; - TimeUnit unit; - SqlCall function; - final Span s1; - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = startList(e); - if (jj_2_591(2)) { - jj_consume_token(TO); - unit = TimeUnit(); - args.add(new SqlIntervalQualifier(unit, null, getPos())); - } else { - ; - } - jj_consume_token(RPAREN); - SqlOperator op = floorFlag - ? SqlStdOperatorTable.FLOOR - : SqlStdOperatorTable.CEIL; - function = op.createCall(s.end(this), args); - if (jj_2_594(2)) { - jj_consume_token(OVER); - s1 = span(); - if (jj_2_592(2)) { - e = SimpleIdentifier(); - } else if (jj_2_593(2)) { - e = WindowSpecification(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return SqlStdOperatorTable.OVER.createCall(s1.end(this), function, e);} - } else { - {if (true) return function;} - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses the name of a JDBC function that is a token but is not reserved. - */ - final public String NonReservedJdbcFunctionName() throws ParseException { - jj_consume_token(SUBSTRING); - {if (true) return unquotedIdentifier();} - throw new Error("Missing return statement in function"); - } - -/** - * Parses the name of a function (either a compound identifier or - * a reserved word which can be used as a function name). - */ - final public SqlIdentifier FunctionName() throws ParseException { - SqlIdentifier qualifiedName; - if (jj_2_595(2)) { - qualifiedName = CompoundIdentifier(); - } else if (jj_2_596(2)) { - qualifiedName = ReservedFunctionName(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return qualifiedName;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a reserved word which is used as the name of a function. - */ - final public SqlIdentifier ReservedFunctionName() throws ParseException { - if (jj_2_597(2)) { - jj_consume_token(ABS); - } else if (jj_2_598(2)) { - jj_consume_token(AVG); - } else if (jj_2_599(2)) { - jj_consume_token(CARDINALITY); - } else if (jj_2_600(2)) { - jj_consume_token(CEILING); - } else if (jj_2_601(2)) { - jj_consume_token(CHAR_LENGTH); - } else if (jj_2_602(2)) { - jj_consume_token(CHARACTER_LENGTH); - } else if (jj_2_603(2)) { - jj_consume_token(COALESCE); - } else if (jj_2_604(2)) { - jj_consume_token(COLLECT); - } else if (jj_2_605(2)) { - jj_consume_token(COVAR_POP); - } else if (jj_2_606(2)) { - jj_consume_token(COVAR_SAMP); - } else if (jj_2_607(2)) { - jj_consume_token(CUME_DIST); - } else if (jj_2_608(2)) { - jj_consume_token(COUNT); - } else if (jj_2_609(2)) { - jj_consume_token(CURRENT_DATE); - } else if (jj_2_610(2)) { - jj_consume_token(CURRENT_TIME); - } else if (jj_2_611(2)) { - jj_consume_token(CURRENT_TIMESTAMP); - } else if (jj_2_612(2)) { - jj_consume_token(DENSE_RANK); - } else if (jj_2_613(2)) { - jj_consume_token(ELEMENT); - } else if (jj_2_614(2)) { - jj_consume_token(EXP); - } else if (jj_2_615(2)) { - jj_consume_token(FIRST_VALUE); - } else if (jj_2_616(2)) { - jj_consume_token(FLOOR); - } else if (jj_2_617(2)) { - jj_consume_token(FUSION); - } else if (jj_2_618(2)) { - jj_consume_token(GROUPING); - } else if (jj_2_619(2)) { - jj_consume_token(HOUR); - } else if (jj_2_620(2)) { - jj_consume_token(LAG); - } else if (jj_2_621(2)) { - jj_consume_token(LEAD); - } else if (jj_2_622(2)) { - jj_consume_token(LAST_VALUE); - } else if (jj_2_623(2)) { - jj_consume_token(LN); - } else if (jj_2_624(2)) { - jj_consume_token(LOCALTIME); - } else if (jj_2_625(2)) { - jj_consume_token(LOCALTIMESTAMP); - } else if (jj_2_626(2)) { - jj_consume_token(LOWER); - } else if (jj_2_627(2)) { - jj_consume_token(MAX); - } else if (jj_2_628(2)) { - jj_consume_token(MIN); - } else if (jj_2_629(2)) { - jj_consume_token(MINUTE); - } else if (jj_2_630(2)) { - jj_consume_token(MOD); - } else if (jj_2_631(2)) { - jj_consume_token(MONTH); - } else if (jj_2_632(2)) { - jj_consume_token(NTILE); - } else if (jj_2_633(2)) { - jj_consume_token(NULLIF); - } else if (jj_2_634(2)) { - jj_consume_token(OCTET_LENGTH); - } else if (jj_2_635(2)) { - jj_consume_token(PERCENT_RANK); - } else if (jj_2_636(2)) { - jj_consume_token(POWER); - } else if (jj_2_637(2)) { - jj_consume_token(RANK); - } else if (jj_2_638(2)) { - jj_consume_token(REGR_SXX); - } else if (jj_2_639(2)) { - jj_consume_token(REGR_SYY); - } else if (jj_2_640(2)) { - jj_consume_token(ROW_NUMBER); - } else if (jj_2_641(2)) { - jj_consume_token(SECOND); - } else if (jj_2_642(2)) { - jj_consume_token(SQRT); - } else if (jj_2_643(2)) { - jj_consume_token(STDDEV_POP); - } else if (jj_2_644(2)) { - jj_consume_token(STDDEV_SAMP); - } else if (jj_2_645(2)) { - jj_consume_token(SUM); - } else if (jj_2_646(2)) { - jj_consume_token(UPPER); - } else if (jj_2_647(2)) { - jj_consume_token(TRUNCATE); - } else if (jj_2_648(2)) { - jj_consume_token(USER); - } else if (jj_2_649(2)) { - jj_consume_token(VAR_POP); - } else if (jj_2_650(2)) { - jj_consume_token(VAR_SAMP); - } else if (jj_2_651(2)) { - jj_consume_token(YEAR); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new SqlIdentifier(unquotedIdentifier(), getPos());} - throw new Error("Missing return statement in function"); - } - - final public SqlIdentifier ContextVariable() throws ParseException { - if (jj_2_652(2)) { - jj_consume_token(CURRENT_CATALOG); - } else if (jj_2_653(2)) { - jj_consume_token(CURRENT_DATE); - } else if (jj_2_654(2)) { - jj_consume_token(CURRENT_DEFAULT_TRANSFORM_GROUP); - } else if (jj_2_655(2)) { - jj_consume_token(CURRENT_PATH); - } else if (jj_2_656(2)) { - jj_consume_token(CURRENT_ROLE); - } else if (jj_2_657(2)) { - jj_consume_token(CURRENT_SCHEMA); - } else if (jj_2_658(2)) { - jj_consume_token(CURRENT_TIME); - } else if (jj_2_659(2)) { - jj_consume_token(CURRENT_TIMESTAMP); - } else if (jj_2_660(2)) { - jj_consume_token(CURRENT_USER); - } else if (jj_2_661(2)) { - jj_consume_token(LOCALTIME); - } else if (jj_2_662(2)) { - jj_consume_token(LOCALTIMESTAMP); - } else if (jj_2_663(2)) { - jj_consume_token(SESSION_USER); - } else if (jj_2_664(2)) { - jj_consume_token(SYSTEM_USER); - } else if (jj_2_665(2)) { - jj_consume_token(USER); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return new SqlIdentifier(unquotedIdentifier(), getPos());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a function call expression with JDBC syntax. - */ - final public SqlNode JdbcFunctionCall() throws ParseException { - String name; - SqlIdentifier id; - SqlNode e; - SqlLiteral tl; - SqlNodeList args; - SqlCall call; - final Span s, s1; - jj_consume_token(LBRACE_FN); - s = span(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case TIMESTAMPADD: - call = TimestampAddFunctionCall(); - name = call.getOperator().getName(); - args = new SqlNodeList(call.getOperandList(), getPos()); - break; - default: - jj_la1[4] = jj_gen; - if (jj_2_674(2)) { - call = TimestampDiffFunctionCall(); - name = call.getOperator().getName(); - args = new SqlNodeList(call.getOperandList(), getPos()); - } else if (jj_2_675(2)) { - jj_consume_token(CONVERT); - name = unquotedIdentifier(); - jj_consume_token(LPAREN); - e = Expression(ExprContext.ACCEPT_SUB_QUERY); - args = new SqlNodeList(getPos()); - args.add(e); - jj_consume_token(COMMA); - tl = JdbcOdbcDataType(); - args.add(tl); - jj_consume_token(RPAREN); - } else if (jj_2_676(2)) { - if (jj_2_666(2)) { - jj_consume_token(INSERT); - name = unquotedIdentifier(); - } else if (jj_2_667(2)) { - jj_consume_token(TRUNCATE); - name = unquotedIdentifier(); - } else if (jj_2_668(2)) { - // For cases like {fn power(1,2)} and {fn lower('a')} - id = ReservedFunctionName(); - name = id.getSimple(); - } else if (jj_2_669(2)) { - // For cases like {fn substring('foo', 1,2)} - name = NonReservedJdbcFunctionName(); - } else if (jj_2_670(2)) { - name = Identifier(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (jj_2_671(2)) { - jj_consume_token(LPAREN); - jj_consume_token(STAR); - s1 = span(); - jj_consume_token(RPAREN); - args = new SqlNodeList(s1.pos()); - args.add(SqlIdentifier.star(s1.pos())); - } else if (jj_2_672(2)) { - jj_consume_token(LPAREN); - jj_consume_token(RPAREN); - args = SqlNodeList.EMPTY; - } else if (jj_2_673(2)) { - args = ParenthesizedQueryOrCommaList(ExprContext.ACCEPT_SUB_QUERY); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } - jj_consume_token(RBRACE); - {if (true) return new SqlJdbcFunctionCall(name).createCall(s.end(this), - args.getList());} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a binary query operator like UNION. - */ - final public SqlBinaryOperator BinaryQueryOperator() throws ParseException { - if (jj_2_685(2)) { - jj_consume_token(UNION); - if (jj_2_677(2)) { - jj_consume_token(ALL); - {if (true) return SqlStdOperatorTable.UNION_ALL;} - } else if (jj_2_678(2)) { - jj_consume_token(DISTINCT); - {if (true) return SqlStdOperatorTable.UNION;} - } else { - {if (true) return SqlStdOperatorTable.UNION;} - } - } else if (jj_2_686(2)) { - jj_consume_token(INTERSECT); - if (jj_2_679(2)) { - jj_consume_token(ALL); - {if (true) return SqlStdOperatorTable.INTERSECT_ALL;} - } else if (jj_2_680(2)) { - jj_consume_token(DISTINCT); - {if (true) return SqlStdOperatorTable.INTERSECT;} - } else { - {if (true) return SqlStdOperatorTable.INTERSECT;} - } - } else if (jj_2_687(2)) { - if (jj_2_681(2)) { - jj_consume_token(EXCEPT); - } else if (jj_2_682(2)) { - jj_consume_token(SET_MINUS); - if (!this.conformance.isMinusAllowed()) { - {if (true) throw new ParseException(RESOURCE.minusNotAllowed().str());} - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - if (jj_2_683(2)) { - jj_consume_token(ALL); - {if (true) return SqlStdOperatorTable.EXCEPT_ALL;} - } else if (jj_2_684(2)) { - jj_consume_token(DISTINCT); - {if (true) return SqlStdOperatorTable.EXCEPT;} - } else { - {if (true) return SqlStdOperatorTable.EXCEPT;} - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a binary multiset operator. - */ - final public SqlBinaryOperator BinaryMultisetOperator() throws ParseException { - SqlBinaryOperator op; - jj_consume_token(MULTISET); - if (jj_2_697(2)) { - jj_consume_token(UNION); - op = SqlStdOperatorTable.MULTISET_UNION; - if (jj_2_690(2)) { - if (jj_2_688(2)) { - jj_consume_token(ALL); - op = SqlStdOperatorTable.MULTISET_UNION_ALL; - } else if (jj_2_689(2)) { - jj_consume_token(DISTINCT); - op = SqlStdOperatorTable.MULTISET_UNION; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - } else if (jj_2_698(2)) { - jj_consume_token(INTERSECT); - op = SqlStdOperatorTable.MULTISET_INTERSECT; - if (jj_2_693(2)) { - if (jj_2_691(2)) { - jj_consume_token(ALL); - op = SqlStdOperatorTable.MULTISET_INTERSECT_ALL; - } else if (jj_2_692(2)) { - jj_consume_token(DISTINCT); - op = SqlStdOperatorTable.MULTISET_INTERSECT; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - } else if (jj_2_699(2)) { - jj_consume_token(EXCEPT); - op = SqlStdOperatorTable.MULTISET_EXCEPT; - if (jj_2_696(2)) { - if (jj_2_694(2)) { - jj_consume_token(ALL); - op = SqlStdOperatorTable.MULTISET_EXCEPT_ALL; - } else if (jj_2_695(2)) { - jj_consume_token(DISTINCT); - op = SqlStdOperatorTable.MULTISET_EXCEPT; - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - ; - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return op;} - throw new Error("Missing return statement in function"); - } - -/** - * Parses a binary row operator like AND. - */ - final public SqlBinaryOperator BinaryRowOperator() throws ParseException { - SqlBinaryOperator op; - if (jj_2_700(2)) { - jj_consume_token(EQ); - {if (true) return SqlStdOperatorTable.EQUALS;} - } else if (jj_2_701(2)) { - jj_consume_token(GT); - {if (true) return SqlStdOperatorTable.GREATER_THAN;} - } else if (jj_2_702(2)) { - jj_consume_token(LT); - {if (true) return SqlStdOperatorTable.LESS_THAN;} - } else if (jj_2_703(2)) { - jj_consume_token(LE); - {if (true) return SqlStdOperatorTable.LESS_THAN_OR_EQUAL;} - } else if (jj_2_704(2)) { - jj_consume_token(GE); - {if (true) return SqlStdOperatorTable.GREATER_THAN_OR_EQUAL;} - } else if (jj_2_705(2)) { - jj_consume_token(NE); - {if (true) return SqlStdOperatorTable.NOT_EQUALS;} - } else if (jj_2_706(2)) { - jj_consume_token(NE2); - if (!this.conformance.isBangEqualAllowed()) { - {if (true) throw new ParseException(RESOURCE.bangEqualNotAllowed().str());} - } - {if (true) return SqlStdOperatorTable.NOT_EQUALS;} - } else if (jj_2_707(2)) { - jj_consume_token(PLUS); - {if (true) return SqlStdOperatorTable.PLUS;} - } else if (jj_2_708(2)) { - jj_consume_token(MINUS); - {if (true) return SqlStdOperatorTable.MINUS;} - } else if (jj_2_709(2)) { - jj_consume_token(STAR); - {if (true) return SqlStdOperatorTable.MULTIPLY;} - } else if (jj_2_710(2)) { - jj_consume_token(SLASH); - {if (true) return SqlStdOperatorTable.DIVIDE;} - } else if (jj_2_711(2)) { - jj_consume_token(PERCENT_REMAINDER); - if (!this.conformance.isPercentRemainderAllowed()) { - {if (true) throw new ParseException(RESOURCE.percentRemainderNotAllowed().str());} - } - {if (true) return SqlStdOperatorTable.PERCENT_REMAINDER;} - } else if (jj_2_712(2)) { - jj_consume_token(CONCAT); - {if (true) return SqlStdOperatorTable.CONCAT;} - } else if (jj_2_713(2)) { - jj_consume_token(AND); - {if (true) return SqlStdOperatorTable.AND;} - } else if (jj_2_714(2)) { - jj_consume_token(OR); - {if (true) return SqlStdOperatorTable.OR;} - } else if (jj_2_715(2)) { - jj_consume_token(IS); - jj_consume_token(DISTINCT); - jj_consume_token(FROM); - {if (true) return SqlStdOperatorTable.IS_DISTINCT_FROM;} - } else if (jj_2_716(2)) { - jj_consume_token(IS); - jj_consume_token(NOT); - jj_consume_token(DISTINCT); - jj_consume_token(FROM); - {if (true) return SqlStdOperatorTable.IS_NOT_DISTINCT_FROM;} - } else if (jj_2_717(2)) { - jj_consume_token(MEMBER); - jj_consume_token(OF); - {if (true) return SqlStdOperatorTable.MEMBER_OF;} - } else if (jj_2_718(2)) { - jj_consume_token(SUBMULTISET); - jj_consume_token(OF); - {if (true) return SqlStdOperatorTable.SUBMULTISET_OF;} - } else if (jj_2_719(2)) { - jj_consume_token(CONTAINS); - {if (true) return SqlStdOperatorTable.CONTAINS;} - } else if (jj_2_720(2)) { - jj_consume_token(OVERLAPS); - {if (true) return SqlStdOperatorTable.OVERLAPS;} - } else if (jj_2_721(2)) { - jj_consume_token(EQUALS); - {if (true) return SqlStdOperatorTable.PERIOD_EQUALS;} - } else if (jj_2_722(2)) { - jj_consume_token(PRECEDES); - {if (true) return SqlStdOperatorTable.PRECEDES;} - } else if (jj_2_723(2)) { - jj_consume_token(SUCCEEDS); - {if (true) return SqlStdOperatorTable.SUCCEEDS;} - } else if (jj_2_724(2)) { - jj_consume_token(IMMEDIATELY); - jj_consume_token(PRECEDES); - {if (true) return SqlStdOperatorTable.IMMEDIATELY_PRECEDES;} - } else if (jj_2_725(2)) { - jj_consume_token(IMMEDIATELY); - jj_consume_token(SUCCEEDS); - {if (true) return SqlStdOperatorTable.IMMEDIATELY_SUCCEEDS;} - } else if (jj_2_726(2)) { - op = BinaryMultisetOperator(); - {if (true) return op;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a prefix row operator like NOT. - */ - final public SqlPrefixOperator PrefixRowOperator() throws ParseException { - if (jj_2_727(2)) { - jj_consume_token(PLUS); - {if (true) return SqlStdOperatorTable.UNARY_PLUS;} - } else if (jj_2_728(2)) { - jj_consume_token(MINUS); - {if (true) return SqlStdOperatorTable.UNARY_MINUS;} - } else if (jj_2_729(2)) { - jj_consume_token(NOT); - {if (true) return SqlStdOperatorTable.NOT;} - } else if (jj_2_730(2)) { - jj_consume_token(EXISTS); - {if (true) return SqlStdOperatorTable.EXISTS;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/** - * Parses a postfix row operator like IS NOT NULL. - */ - final public SqlPostfixOperator PostfixRowOperator() throws ParseException { - jj_consume_token(IS); - if (jj_2_739(2)) { - jj_consume_token(A); - jj_consume_token(SET); - {if (true) return SqlStdOperatorTable.IS_A_SET;} - } else if (jj_2_740(2)) { - jj_consume_token(NOT); - if (jj_2_731(2)) { - jj_consume_token(NULL); - {if (true) return SqlStdOperatorTable.IS_NOT_NULL;} - } else if (jj_2_732(2)) { - jj_consume_token(TRUE); - {if (true) return SqlStdOperatorTable.IS_NOT_TRUE;} - } else if (jj_2_733(2)) { - jj_consume_token(FALSE); - {if (true) return SqlStdOperatorTable.IS_NOT_FALSE;} - } else if (jj_2_734(2)) { - jj_consume_token(UNKNOWN); - {if (true) return SqlStdOperatorTable.IS_NOT_UNKNOWN;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else if (jj_2_741(2)) { - if (jj_2_735(2)) { - jj_consume_token(NULL); - {if (true) return SqlStdOperatorTable.IS_NULL;} - } else if (jj_2_736(2)) { - jj_consume_token(TRUE); - {if (true) return SqlStdOperatorTable.IS_TRUE;} - } else if (jj_2_737(2)) { - jj_consume_token(FALSE); - {if (true) return SqlStdOperatorTable.IS_FALSE;} - } else if (jj_2_738(2)) { - jj_consume_token(UNKNOWN); - {if (true) return SqlStdOperatorTable.IS_UNKNOWN;} - } else { - jj_consume_token(-1); - throw new ParseException(); - } - } else { - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - -/* - * Abstract production: - * - * String NonReservedKeyWord() - * - * Parses non-reserved keywords (e.g. keywords that may be used as - * identifiers). Should use CommonNonReservedKeyWord as a base, but - * may add other key words. - */ - -/** - * Parses a non-reserved keyword for use as an identifier. Specializations - * of this parser can use this as a base for implementing the - * NonReservedKeyWord() production. - * - *

When adding keywords to this list, be sure that they are not reserved - * by the SQL:2003 standard (see productions for "non-reserved word" - * and "reserved word" in reference below). - * - * @see Glossary#SQL2003 SQL:2003 Part 2 Section 5.2 - */ - final public String CommonNonReservedKeyWord() throws ParseException { - if (jj_2_742(2)) { - jj_consume_token(A); - } else if (jj_2_743(2)) { - jj_consume_token(ABSOLUTE); - } else if (jj_2_744(2)) { - jj_consume_token(ACTION); - } else if (jj_2_745(2)) { - jj_consume_token(ADA); - } else if (jj_2_746(2)) { - jj_consume_token(ADD); - } else if (jj_2_747(2)) { - jj_consume_token(ADMIN); - } else if (jj_2_748(2)) { - jj_consume_token(AFTER); - } else if (jj_2_749(2)) { - jj_consume_token(ALWAYS); - } else if (jj_2_750(2)) { - jj_consume_token(APPLY); - } else if (jj_2_751(2)) { - jj_consume_token(ASC); - } else if (jj_2_752(2)) { - jj_consume_token(ASSERTION); - } else if (jj_2_753(2)) { - jj_consume_token(ASSIGNMENT); - } else if (jj_2_754(2)) { - jj_consume_token(ATTRIBUTE); - } else if (jj_2_755(2)) { - jj_consume_token(ATTRIBUTES); - } else if (jj_2_756(2)) { - jj_consume_token(BEFORE); - } else if (jj_2_757(2)) { - jj_consume_token(BERNOULLI); - } else if (jj_2_758(2)) { - jj_consume_token(BREADTH); - } else if (jj_2_759(2)) { - jj_consume_token(C); - } else if (jj_2_760(2)) { - jj_consume_token(CASCADE); - } else if (jj_2_761(2)) { - jj_consume_token(CATALOG); - } else if (jj_2_762(2)) { - jj_consume_token(CATALOG_NAME); - } else if (jj_2_763(2)) { - jj_consume_token(CENTURY); - } else if (jj_2_764(2)) { - jj_consume_token(CHAIN); - } else if (jj_2_765(2)) { - jj_consume_token(CHARACTER_SET_CATALOG); - } else if (jj_2_766(2)) { - jj_consume_token(CHARACTER_SET_NAME); - } else if (jj_2_767(2)) { - jj_consume_token(CHARACTER_SET_SCHEMA); - } else if (jj_2_768(2)) { - jj_consume_token(CHARACTERISTICS); - } else if (jj_2_769(2)) { - jj_consume_token(CHARACTERS); - } else if (jj_2_770(2)) { - jj_consume_token(CLASS_ORIGIN); - } else if (jj_2_771(2)) { - jj_consume_token(COBOL); - } else if (jj_2_772(2)) { - jj_consume_token(COLLATION); - } else if (jj_2_773(2)) { - jj_consume_token(COLLATION_CATALOG); - } else if (jj_2_774(2)) { - jj_consume_token(COLLATION_NAME); - } else if (jj_2_775(2)) { - jj_consume_token(COLLATION_SCHEMA); - } else if (jj_2_776(2)) { - jj_consume_token(COLUMN_NAME); - } else if (jj_2_777(2)) { - jj_consume_token(COMMAND_FUNCTION); - } else if (jj_2_778(2)) { - jj_consume_token(COMMAND_FUNCTION_CODE); - } else if (jj_2_779(2)) { - jj_consume_token(COMMITTED); - } else if (jj_2_780(2)) { - jj_consume_token(CONDITION_NUMBER); - } else if (jj_2_781(2)) { - jj_consume_token(CONNECTION); - } else if (jj_2_782(2)) { - jj_consume_token(CONNECTION_NAME); - } else if (jj_2_783(2)) { - jj_consume_token(CONSTRAINT_CATALOG); - } else if (jj_2_784(2)) { - jj_consume_token(CONSTRAINT_NAME); - } else if (jj_2_785(2)) { - jj_consume_token(CONSTRAINT_SCHEMA); - } else if (jj_2_786(2)) { - jj_consume_token(CONSTRAINTS); - } else if (jj_2_787(2)) { - jj_consume_token(CONSTRUCTOR); - } else if (jj_2_788(2)) { - jj_consume_token(CONTINUE); - } else if (jj_2_789(2)) { - jj_consume_token(CURSOR_NAME); - } else if (jj_2_790(2)) { - jj_consume_token(DATA); - } else if (jj_2_791(2)) { - jj_consume_token(DATABASE); - } else if (jj_2_792(2)) { - jj_consume_token(DATETIME_INTERVAL_CODE); - } else if (jj_2_793(2)) { - jj_consume_token(DATETIME_INTERVAL_PRECISION); - } else if (jj_2_794(2)) { - jj_consume_token(DECADE); - } else if (jj_2_795(2)) { - jj_consume_token(DEFAULTS); - } else if (jj_2_796(2)) { - jj_consume_token(DEFERRABLE); - } else if (jj_2_797(2)) { - jj_consume_token(DEFERRED); - } else if (jj_2_798(2)) { - jj_consume_token(DEFINED); - } else if (jj_2_799(2)) { - jj_consume_token(DEFINER); - } else if (jj_2_800(2)) { - jj_consume_token(DEGREE); - } else if (jj_2_801(2)) { - jj_consume_token(DEPTH); - } else if (jj_2_802(2)) { - jj_consume_token(DERIVED); - } else if (jj_2_803(2)) { - jj_consume_token(DESC); - } else if (jj_2_804(2)) { - jj_consume_token(DESCRIPTION); - } else if (jj_2_805(2)) { - jj_consume_token(DESCRIPTOR); - } else if (jj_2_806(2)) { - jj_consume_token(DIAGNOSTICS); - } else if (jj_2_807(2)) { - jj_consume_token(DISPATCH); - } else if (jj_2_808(2)) { - jj_consume_token(DOMAIN); - } else if (jj_2_809(2)) { - jj_consume_token(DOW); - } else if (jj_2_810(2)) { - jj_consume_token(DOY); - } else if (jj_2_811(2)) { - jj_consume_token(DYNAMIC_FUNCTION); - } else if (jj_2_812(2)) { - jj_consume_token(DYNAMIC_FUNCTION_CODE); - } else if (jj_2_813(2)) { - jj_consume_token(EPOCH); - } else if (jj_2_814(2)) { - jj_consume_token(EXCEPTION); - } else if (jj_2_815(2)) { - jj_consume_token(EXCLUDE); - } else if (jj_2_816(2)) { - jj_consume_token(EXCLUDING); - } else if (jj_2_817(2)) { - jj_consume_token(FINAL); - } else if (jj_2_818(2)) { - jj_consume_token(FIRST); - } else if (jj_2_819(2)) { - jj_consume_token(FOLLOWING); - } else if (jj_2_820(2)) { - jj_consume_token(FORTRAN); - } else if (jj_2_821(2)) { - jj_consume_token(FOUND); - } else if (jj_2_822(2)) { - jj_consume_token(FRAC_SECOND); - } else if (jj_2_823(2)) { - jj_consume_token(G); - } else if (jj_2_824(2)) { - jj_consume_token(GENERAL); - } else if (jj_2_825(2)) { - jj_consume_token(GENERATED); - } else if (jj_2_826(2)) { - jj_consume_token(GEOMETRY); - } else if (jj_2_827(2)) { - jj_consume_token(GO); - } else if (jj_2_828(2)) { - jj_consume_token(GOTO); - } else if (jj_2_829(2)) { - jj_consume_token(GRANTED); - } else if (jj_2_830(2)) { - jj_consume_token(HIERARCHY); - } else if (jj_2_831(2)) { - jj_consume_token(IMMEDIATE); - } else if (jj_2_832(2)) { - jj_consume_token(IMMEDIATELY); - } else if (jj_2_833(2)) { - jj_consume_token(IMPLEMENTATION); - } else if (jj_2_834(2)) { - jj_consume_token(INCLUDING); - } else if (jj_2_835(2)) { - jj_consume_token(INCREMENT); - } else if (jj_2_836(2)) { - jj_consume_token(INITIALLY); - } else if (jj_2_837(2)) { - jj_consume_token(INPUT); - } else if (jj_2_838(2)) { - jj_consume_token(INSTANCE); - } else if (jj_2_839(2)) { - jj_consume_token(INSTANTIABLE); - } else if (jj_2_840(2)) { - jj_consume_token(INVOKER); - } else if (jj_2_841(2)) { - jj_consume_token(ISOLATION); - } else if (jj_2_842(2)) { - jj_consume_token(JAVA); - } else if (jj_2_843(2)) { - jj_consume_token(JSON); - } else if (jj_2_844(2)) { - jj_consume_token(K); - } else if (jj_2_845(2)) { - jj_consume_token(KEY); - } else if (jj_2_846(2)) { - jj_consume_token(KEY_MEMBER); - } else if (jj_2_847(2)) { - jj_consume_token(KEY_TYPE); - } else if (jj_2_848(2)) { - jj_consume_token(LABEL); - } else if (jj_2_849(2)) { - jj_consume_token(LAST); - } else if (jj_2_850(2)) { - jj_consume_token(LENGTH); - } else if (jj_2_851(2)) { - jj_consume_token(LEVEL); - } else if (jj_2_852(2)) { - jj_consume_token(LIBRARY); - } else if (jj_2_853(2)) { - jj_consume_token(LOCATOR); - } else if (jj_2_854(2)) { - jj_consume_token(M); - } else if (jj_2_855(2)) { - jj_consume_token(MAP); - } else if (jj_2_856(2)) { - jj_consume_token(MATCHED); - } else if (jj_2_857(2)) { - jj_consume_token(MAXVALUE); - } else if (jj_2_858(2)) { - jj_consume_token(MICROSECOND); - } else if (jj_2_859(2)) { - jj_consume_token(MESSAGE_LENGTH); - } else if (jj_2_860(2)) { - jj_consume_token(MESSAGE_OCTET_LENGTH); - } else if (jj_2_861(2)) { - jj_consume_token(MESSAGE_TEXT); - } else if (jj_2_862(2)) { - jj_consume_token(MILLENNIUM); - } else if (jj_2_863(2)) { - jj_consume_token(MINVALUE); - } else if (jj_2_864(2)) { - jj_consume_token(MORE_); - } else if (jj_2_865(2)) { - jj_consume_token(MUMPS); - } else if (jj_2_866(2)) { - jj_consume_token(NAME); - } else if (jj_2_867(2)) { - jj_consume_token(NAMES); - } else if (jj_2_868(2)) { - jj_consume_token(NESTING); - } else if (jj_2_869(2)) { - jj_consume_token(NORMALIZED); - } else if (jj_2_870(2)) { - jj_consume_token(NULLABLE); - } else if (jj_2_871(2)) { - jj_consume_token(NULLS); - } else if (jj_2_872(2)) { - jj_consume_token(NUMBER); - } else if (jj_2_873(2)) { - jj_consume_token(OBJECT); - } else if (jj_2_874(2)) { - jj_consume_token(OCTETS); - } else if (jj_2_875(2)) { - jj_consume_token(OPTION); - } else if (jj_2_876(2)) { - jj_consume_token(OPTIONS); - } else if (jj_2_877(2)) { - jj_consume_token(ORDERING); - } else if (jj_2_878(2)) { - jj_consume_token(ORDINALITY); - } else if (jj_2_879(2)) { - jj_consume_token(OTHERS); - } else if (jj_2_880(2)) { - jj_consume_token(OUTPUT); - } else if (jj_2_881(2)) { - jj_consume_token(OVERRIDING); - } else if (jj_2_882(2)) { - jj_consume_token(PAD); - } else if (jj_2_883(2)) { - jj_consume_token(PARAMETER_MODE); - } else if (jj_2_884(2)) { - jj_consume_token(PARAMETER_NAME); - } else if (jj_2_885(2)) { - jj_consume_token(PARAMETER_ORDINAL_POSITION); - } else if (jj_2_886(2)) { - jj_consume_token(PARAMETER_SPECIFIC_CATALOG); - } else if (jj_2_887(2)) { - jj_consume_token(PARAMETER_SPECIFIC_NAME); - } else if (jj_2_888(2)) { - jj_consume_token(PARAMETER_SPECIFIC_SCHEMA); - } else if (jj_2_889(2)) { - jj_consume_token(PARTIAL); - } else if (jj_2_890(2)) { - jj_consume_token(PASCAL); - } else if (jj_2_891(2)) { - jj_consume_token(PASSTHROUGH); - } else if (jj_2_892(2)) { - jj_consume_token(PAST); - } else if (jj_2_893(2)) { - jj_consume_token(PATH); - } else if (jj_2_894(2)) { - jj_consume_token(PLACING); - } else if (jj_2_895(2)) { - jj_consume_token(PLAN); - } else if (jj_2_896(2)) { - jj_consume_token(PLI); - } else if (jj_2_897(2)) { - jj_consume_token(PRECEDING); - } else if (jj_2_898(2)) { - jj_consume_token(PRESERVE); - } else if (jj_2_899(2)) { - jj_consume_token(PRIOR); - } else if (jj_2_900(2)) { - jj_consume_token(PRIVILEGES); - } else if (jj_2_901(2)) { - jj_consume_token(PUBLIC); - } else if (jj_2_902(2)) { - jj_consume_token(QUARTER); - } else if (jj_2_903(2)) { - jj_consume_token(READ); - } else if (jj_2_904(2)) { - jj_consume_token(RELATIVE); - } else if (jj_2_905(2)) { - jj_consume_token(REPEATABLE); - } else if (jj_2_906(2)) { - jj_consume_token(REPLACE); - } else if (jj_2_907(2)) { - jj_consume_token(RESTART); - } else if (jj_2_908(2)) { - jj_consume_token(RESTRICT); - } else if (jj_2_909(2)) { - jj_consume_token(RETURNED_CARDINALITY); - } else if (jj_2_910(2)) { - jj_consume_token(RETURNED_LENGTH); - } else if (jj_2_911(2)) { - jj_consume_token(RETURNED_OCTET_LENGTH); - } else if (jj_2_912(2)) { - jj_consume_token(RETURNED_SQLSTATE); - } else if (jj_2_913(2)) { - jj_consume_token(ROLE); - } else if (jj_2_914(2)) { - jj_consume_token(ROUTINE); - } else if (jj_2_915(2)) { - jj_consume_token(ROUTINE_CATALOG); - } else if (jj_2_916(2)) { - jj_consume_token(ROUTINE_NAME); - } else if (jj_2_917(2)) { - jj_consume_token(ROUTINE_SCHEMA); - } else if (jj_2_918(2)) { - jj_consume_token(ROW_COUNT); - } else if (jj_2_919(2)) { - jj_consume_token(SCALE); - } else if (jj_2_920(2)) { - jj_consume_token(SCHEMA); - } else if (jj_2_921(2)) { - jj_consume_token(SCHEMA_NAME); - } else if (jj_2_922(2)) { - jj_consume_token(SCOPE_CATALOGS); - } else if (jj_2_923(2)) { - jj_consume_token(SCOPE_NAME); - } else if (jj_2_924(2)) { - jj_consume_token(SCOPE_SCHEMA); - } else if (jj_2_925(2)) { - jj_consume_token(SECTION); - } else if (jj_2_926(2)) { - jj_consume_token(SECURITY); - } else if (jj_2_927(2)) { - jj_consume_token(SELF); - } else if (jj_2_928(2)) { - jj_consume_token(SEQUENCE); - } else if (jj_2_929(2)) { - jj_consume_token(SERIALIZABLE); - } else if (jj_2_930(2)) { - jj_consume_token(SERVER); - } else if (jj_2_931(2)) { - jj_consume_token(SERVER_NAME); - } else if (jj_2_932(2)) { - jj_consume_token(SESSION); - } else if (jj_2_933(2)) { - jj_consume_token(SETS); - } else if (jj_2_934(2)) { - jj_consume_token(SIMPLE); - } else if (jj_2_935(2)) { - jj_consume_token(SIZE); - } else if (jj_2_936(2)) { - jj_consume_token(SOURCE); - } else if (jj_2_937(2)) { - jj_consume_token(SPACE); - } else if (jj_2_938(2)) { - jj_consume_token(SPECIFIC_NAME); - } else if (jj_2_939(2)) { - jj_consume_token(SQL_BIGINT); - } else if (jj_2_940(2)) { - jj_consume_token(SQL_BINARY); - } else if (jj_2_941(2)) { - jj_consume_token(SQL_BIT); - } else if (jj_2_942(2)) { - jj_consume_token(SQL_BLOB); - } else if (jj_2_943(2)) { - jj_consume_token(SQL_BOOLEAN); - } else if (jj_2_944(2)) { - jj_consume_token(SQL_CHAR); - } else if (jj_2_945(2)) { - jj_consume_token(SQL_CLOB); - } else if (jj_2_946(2)) { - jj_consume_token(SQL_DATE); - } else if (jj_2_947(2)) { - jj_consume_token(SQL_DECIMAL); - } else if (jj_2_948(2)) { - jj_consume_token(SQL_DOUBLE); - } else if (jj_2_949(2)) { - jj_consume_token(SQL_FLOAT); - } else if (jj_2_950(2)) { - jj_consume_token(SQL_INTEGER); - } else if (jj_2_951(2)) { - jj_consume_token(SQL_INTERVAL_DAY); - } else if (jj_2_952(2)) { - jj_consume_token(SQL_INTERVAL_DAY_TO_HOUR); - } else if (jj_2_953(2)) { - jj_consume_token(SQL_INTERVAL_DAY_TO_MINUTE); - } else if (jj_2_954(2)) { - jj_consume_token(SQL_INTERVAL_DAY_TO_SECOND); - } else if (jj_2_955(2)) { - jj_consume_token(SQL_INTERVAL_HOUR); - } else if (jj_2_956(2)) { - jj_consume_token(SQL_INTERVAL_HOUR_TO_MINUTE); - } else if (jj_2_957(2)) { - jj_consume_token(SQL_INTERVAL_HOUR_TO_SECOND); - } else if (jj_2_958(2)) { - jj_consume_token(SQL_INTERVAL_MINUTE); - } else if (jj_2_959(2)) { - jj_consume_token(SQL_INTERVAL_MINUTE_TO_SECOND); - } else if (jj_2_960(2)) { - jj_consume_token(SQL_INTERVAL_MONTH); - } else if (jj_2_961(2)) { - jj_consume_token(SQL_INTERVAL_SECOND); - } else if (jj_2_962(2)) { - jj_consume_token(SQL_INTERVAL_YEAR); - } else if (jj_2_963(2)) { - jj_consume_token(SQL_INTERVAL_YEAR_TO_MONTH); - } else if (jj_2_964(2)) { - jj_consume_token(SQL_LONGVARBINARY); - } else if (jj_2_965(2)) { - jj_consume_token(SQL_LONGVARNCHAR); - } else if (jj_2_966(2)) { - jj_consume_token(SQL_LONGVARCHAR); - } else if (jj_2_967(2)) { - jj_consume_token(SQL_NCHAR); - } else if (jj_2_968(2)) { - jj_consume_token(SQL_NCLOB); - } else if (jj_2_969(2)) { - jj_consume_token(SQL_NUMERIC); - } else if (jj_2_970(2)) { - jj_consume_token(SQL_NVARCHAR); - } else if (jj_2_971(2)) { - jj_consume_token(SQL_REAL); - } else if (jj_2_972(2)) { - jj_consume_token(SQL_SMALLINT); - } else if (jj_2_973(2)) { - jj_consume_token(SQL_TIME); - } else if (jj_2_974(2)) { - jj_consume_token(SQL_TIMESTAMP); - } else if (jj_2_975(2)) { - jj_consume_token(SQL_TINYINT); - } else if (jj_2_976(2)) { - jj_consume_token(SQL_TSI_DAY); - } else if (jj_2_977(2)) { - jj_consume_token(SQL_TSI_FRAC_SECOND); - } else if (jj_2_978(2)) { - jj_consume_token(SQL_TSI_HOUR); - } else if (jj_2_979(2)) { - jj_consume_token(SQL_TSI_MICROSECOND); - } else if (jj_2_980(2)) { - jj_consume_token(SQL_TSI_MINUTE); - } else if (jj_2_981(2)) { - jj_consume_token(SQL_TSI_MONTH); - } else if (jj_2_982(2)) { - jj_consume_token(SQL_TSI_QUARTER); - } else if (jj_2_983(2)) { - jj_consume_token(SQL_TSI_SECOND); - } else if (jj_2_984(2)) { - jj_consume_token(SQL_TSI_WEEK); - } else if (jj_2_985(2)) { - jj_consume_token(SQL_TSI_YEAR); - } else if (jj_2_986(2)) { - jj_consume_token(SQL_VARBINARY); - } else if (jj_2_987(2)) { - jj_consume_token(SQL_VARCHAR); - } else if (jj_2_988(2)) { - jj_consume_token(STATE); - } else if (jj_2_989(2)) { - jj_consume_token(STATEMENT); - } else if (jj_2_990(2)) { - jj_consume_token(STRUCTURE); - } else if (jj_2_991(2)) { - jj_consume_token(STYLE); - } else if (jj_2_992(2)) { - jj_consume_token(SUBCLASS_ORIGIN); - } else if (jj_2_993(2)) { - jj_consume_token(SUBSTITUTE); - } else if (jj_2_994(2)) { - jj_consume_token(TABLE_NAME); - } else if (jj_2_995(2)) { - jj_consume_token(TEMPORARY); - } else if (jj_2_996(2)) { - jj_consume_token(TIES); - } else if (jj_2_997(2)) { - jj_consume_token(TIMESTAMPADD); - } else if (jj_2_998(2)) { - jj_consume_token(TIMESTAMPDIFF); - } else if (jj_2_999(2)) { - jj_consume_token(TOP_LEVEL_COUNT); - } else if (jj_2_1000(2)) { - jj_consume_token(TRANSACTION); - } else if (jj_2_1001(2)) { - jj_consume_token(TRANSACTIONS_ACTIVE); - } else if (jj_2_1002(2)) { - jj_consume_token(TRANSACTIONS_COMMITTED); - } else if (jj_2_1003(2)) { - jj_consume_token(TRANSACTIONS_ROLLED_BACK); - } else if (jj_2_1004(2)) { - jj_consume_token(TRANSFORM); - } else if (jj_2_1005(2)) { - jj_consume_token(TRANSFORMS); - } else if (jj_2_1006(2)) { - jj_consume_token(TRIGGER_CATALOG); - } else if (jj_2_1007(2)) { - jj_consume_token(TRIGGER_NAME); - } else if (jj_2_1008(2)) { - jj_consume_token(TRIGGER_SCHEMA); - } else if (jj_2_1009(2)) { - jj_consume_token(TYPE); - } else if (jj_2_1010(2)) { - jj_consume_token(UNBOUNDED); - } else if (jj_2_1011(2)) { - jj_consume_token(UNCOMMITTED); - } else if (jj_2_1012(2)) { - jj_consume_token(UNDER); - } else if (jj_2_1013(2)) { - jj_consume_token(UNNAMED); - } else if (jj_2_1014(2)) { - jj_consume_token(USAGE); - } else if (jj_2_1015(2)) { - jj_consume_token(USER_DEFINED_TYPE_CATALOG); - } else if (jj_2_1016(2)) { - jj_consume_token(USER_DEFINED_TYPE_CODE); - } else if (jj_2_1017(2)) { - jj_consume_token(USER_DEFINED_TYPE_NAME); - } else if (jj_2_1018(2)) { - jj_consume_token(USER_DEFINED_TYPE_SCHEMA); - } else if (jj_2_1019(2)) { - jj_consume_token(VERSION); - } else if (jj_2_1020(2)) { - jj_consume_token(VIEW); - } else if (jj_2_1021(2)) { - jj_consume_token(WEEK); - } else if (jj_2_1022(2)) { - jj_consume_token(WRAPPER); - } else if (jj_2_1023(2)) { - jj_consume_token(WORK); - } else if (jj_2_1024(2)) { - jj_consume_token(WRITE); - } else if (jj_2_1025(2)) { - jj_consume_token(XML); - } else if (jj_2_1026(2)) { - jj_consume_token(ZONE); - } else { - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return unquotedIdentifier();} - throw new Error("Missing return statement in function"); - } - -/** - * Defines a production which can never be accepted by the parser. - * In effect, it tells the parser, "If you got here, you've gone too far." - * It is used as the default production for parser extension points; - * derived parsers replace it with a real production when they want to - * implement a particular extension point. - */ - final public void UnusedExtension() throws ParseException { - if (false) { - - } else { - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(ZONE); - } - - 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_2_21(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_21(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(20, xla); } - } - - private boolean jj_2_22(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_22(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(21, xla); } - } - - private boolean jj_2_23(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_23(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(22, xla); } - } - - private boolean jj_2_24(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_24(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(23, xla); } - } - - private boolean jj_2_25(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_25(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(24, xla); } - } - - private boolean jj_2_26(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_26(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(25, xla); } - } - - private boolean jj_2_27(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_27(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(26, xla); } - } - - private boolean jj_2_28(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_28(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(27, xla); } - } - - private boolean jj_2_29(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_29(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(28, xla); } - } - - private boolean jj_2_30(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_30(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(29, xla); } - } - - private boolean jj_2_31(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_31(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(30, xla); } - } - - private boolean jj_2_32(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_32(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(31, xla); } - } - - private boolean jj_2_33(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_33(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(32, xla); } - } - - private boolean jj_2_34(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_34(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(33, xla); } - } - - private boolean jj_2_35(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_35(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(34, xla); } - } - - private boolean jj_2_36(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_36(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(35, xla); } - } - - private boolean jj_2_37(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_37(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(36, xla); } - } - - private boolean jj_2_38(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_38(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(37, xla); } - } - - private boolean jj_2_39(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_39(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(38, xla); } - } - - private boolean jj_2_40(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_40(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(39, xla); } - } - - private boolean jj_2_41(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_41(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(40, xla); } - } - - private boolean jj_2_42(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_42(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(41, xla); } - } - - private boolean jj_2_43(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_43(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(42, xla); } - } - - private boolean jj_2_44(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_44(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(43, xla); } - } - - private boolean jj_2_45(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_45(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(44, xla); } - } - - private boolean jj_2_46(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_46(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(45, xla); } - } - - private boolean jj_2_47(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_47(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(46, xla); } - } - - private boolean jj_2_48(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_48(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(47, xla); } - } - - private boolean jj_2_49(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_49(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(48, xla); } - } - - private boolean jj_2_50(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_50(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(49, xla); } - } - - private boolean jj_2_51(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_51(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(50, xla); } - } - - private boolean jj_2_52(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_52(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(51, xla); } - } - - private boolean jj_2_53(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_53(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(52, xla); } - } - - private boolean jj_2_54(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_54(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(53, xla); } - } - - private boolean jj_2_55(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_55(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(54, xla); } - } - - private boolean jj_2_56(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_56(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(55, xla); } - } - - private boolean jj_2_57(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_57(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(56, xla); } - } - - private boolean jj_2_58(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_58(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(57, xla); } - } - - private boolean jj_2_59(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_59(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(58, xla); } - } - - private boolean jj_2_60(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_60(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(59, xla); } - } - - private boolean jj_2_61(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_61(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(60, xla); } - } - - private boolean jj_2_62(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_62(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(61, xla); } - } - - private boolean jj_2_63(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_63(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(62, xla); } - } - - private boolean jj_2_64(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_64(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(63, xla); } - } - - private boolean jj_2_65(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_65(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(64, xla); } - } - - private boolean jj_2_66(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_66(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(65, xla); } - } - - private boolean jj_2_67(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_67(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(66, xla); } - } - - private boolean jj_2_68(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_68(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(67, xla); } - } - - private boolean jj_2_69(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_69(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(68, xla); } - } - - private boolean jj_2_70(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_70(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(69, xla); } - } - - private boolean jj_2_71(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_71(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(70, xla); } - } - - private boolean jj_2_72(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_72(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(71, xla); } - } - - private boolean jj_2_73(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_73(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(72, xla); } - } - - private boolean jj_2_74(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_74(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(73, xla); } - } - - private boolean jj_2_75(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_75(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(74, xla); } - } - - private boolean jj_2_76(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_76(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(75, xla); } - } - - private boolean jj_2_77(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_77(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(76, xla); } - } - - private boolean jj_2_78(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_78(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(77, xla); } - } - - private boolean jj_2_79(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_79(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(78, xla); } - } - - private boolean jj_2_80(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_80(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(79, xla); } - } - - private boolean jj_2_81(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_81(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(80, xla); } - } - - private boolean jj_2_82(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_82(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(81, xla); } - } - - private boolean jj_2_83(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_83(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(82, xla); } - } - - private boolean jj_2_84(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_84(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(83, xla); } - } - - private boolean jj_2_85(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_85(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(84, xla); } - } - - private boolean jj_2_86(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_86(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(85, xla); } - } - - private boolean jj_2_87(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_87(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(86, xla); } - } - - private boolean jj_2_88(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_88(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(87, xla); } - } - - private boolean jj_2_89(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_89(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(88, xla); } - } - - private boolean jj_2_90(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_90(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(89, xla); } - } - - private boolean jj_2_91(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_91(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(90, xla); } - } - - private boolean jj_2_92(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_92(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(91, xla); } - } - - private boolean jj_2_93(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_93(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(92, xla); } - } - - private boolean jj_2_94(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_94(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(93, xla); } - } - - private boolean jj_2_95(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_95(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(94, xla); } - } - - private boolean jj_2_96(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_96(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(95, xla); } - } - - private boolean jj_2_97(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_97(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(96, xla); } - } - - private boolean jj_2_98(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_98(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(97, xla); } - } - - private boolean jj_2_99(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_99(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(98, xla); } - } - - private boolean jj_2_100(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_100(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(99, xla); } - } - - private boolean jj_2_101(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_101(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(100, xla); } - } - - private boolean jj_2_102(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_102(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(101, xla); } - } - - private boolean jj_2_103(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_103(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(102, xla); } - } - - private boolean jj_2_104(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_104(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(103, xla); } - } - - private boolean jj_2_105(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_105(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(104, xla); } - } - - private boolean jj_2_106(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_106(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(105, xla); } - } - - private boolean jj_2_107(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_107(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(106, xla); } - } - - private boolean jj_2_108(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_108(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(107, xla); } - } - - private boolean jj_2_109(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_109(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(108, xla); } - } - - private boolean jj_2_110(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_110(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(109, xla); } - } - - private boolean jj_2_111(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_111(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(110, xla); } - } - - private boolean jj_2_112(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_112(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(111, xla); } - } - - private boolean jj_2_113(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_113(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(112, xla); } - } - - private boolean jj_2_114(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_114(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(113, xla); } - } - - private boolean jj_2_115(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_115(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(114, xla); } - } - - private boolean jj_2_116(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_116(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(115, xla); } - } - - private boolean jj_2_117(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_117(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(116, xla); } - } - - private boolean jj_2_118(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_118(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(117, xla); } - } - - private boolean jj_2_119(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_119(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(118, xla); } - } - - private boolean jj_2_120(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_120(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(119, xla); } - } - - private boolean jj_2_121(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_121(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(120, xla); } - } - - private boolean jj_2_122(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_122(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(121, xla); } - } - - private boolean jj_2_123(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_123(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(122, xla); } - } - - private boolean jj_2_124(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_124(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(123, xla); } - } - - private boolean jj_2_125(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_125(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(124, xla); } - } - - private boolean jj_2_126(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_126(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(125, xla); } - } - - private boolean jj_2_127(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_127(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(126, xla); } - } - - private boolean jj_2_128(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_128(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(127, xla); } - } - - private boolean jj_2_129(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_129(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(128, xla); } - } - - private boolean jj_2_130(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_130(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(129, xla); } - } - - private boolean jj_2_131(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_131(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(130, xla); } - } - - private boolean jj_2_132(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_132(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(131, xla); } - } - - private boolean jj_2_133(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_133(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(132, xla); } - } - - private boolean jj_2_134(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_134(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(133, xla); } - } - - private boolean jj_2_135(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_135(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(134, xla); } - } - - private boolean jj_2_136(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_136(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(135, xla); } - } - - private boolean jj_2_137(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_137(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(136, xla); } - } - - private boolean jj_2_138(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_138(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(137, xla); } - } - - private boolean jj_2_139(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_139(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(138, xla); } - } - - private boolean jj_2_140(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_140(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(139, xla); } - } - - private boolean jj_2_141(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_141(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(140, xla); } - } - - private boolean jj_2_142(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_142(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(141, xla); } - } - - private boolean jj_2_143(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_143(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(142, xla); } - } - - private boolean jj_2_144(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_144(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(143, xla); } - } - - private boolean jj_2_145(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_145(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(144, xla); } - } - - private boolean jj_2_146(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_146(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(145, xla); } - } - - private boolean jj_2_147(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_147(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(146, xla); } - } - - private boolean jj_2_148(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_148(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(147, xla); } - } - - private boolean jj_2_149(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_149(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(148, xla); } - } - - private boolean jj_2_150(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_150(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(149, xla); } - } - - private boolean jj_2_151(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_151(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(150, xla); } - } - - private boolean jj_2_152(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_152(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(151, xla); } - } - - private boolean jj_2_153(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_153(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(152, xla); } - } - - private boolean jj_2_154(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_154(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(153, xla); } - } - - private boolean jj_2_155(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_155(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(154, xla); } - } - - private boolean jj_2_156(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_156(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(155, xla); } - } - - private boolean jj_2_157(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_157(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(156, xla); } - } - - private boolean jj_2_158(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_158(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(157, xla); } - } - - private boolean jj_2_159(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_159(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(158, xla); } - } - - private boolean jj_2_160(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_160(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(159, xla); } - } - - private boolean jj_2_161(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_161(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(160, xla); } - } - - private boolean jj_2_162(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_162(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(161, xla); } - } - - private boolean jj_2_163(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_163(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(162, xla); } - } - - private boolean jj_2_164(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_164(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(163, xla); } - } - - private boolean jj_2_165(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_165(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(164, xla); } - } - - private boolean jj_2_166(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_166(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(165, xla); } - } - - private boolean jj_2_167(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_167(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(166, xla); } - } - - private boolean jj_2_168(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_168(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(167, xla); } - } - - private boolean jj_2_169(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_169(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(168, xla); } - } - - private boolean jj_2_170(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_170(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(169, xla); } - } - - private boolean jj_2_171(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_171(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(170, xla); } - } - - private boolean jj_2_172(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_172(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(171, xla); } - } - - private boolean jj_2_173(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_173(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(172, xla); } - } - - private boolean jj_2_174(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_174(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(173, xla); } - } - - private boolean jj_2_175(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_175(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(174, xla); } - } - - private boolean jj_2_176(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_176(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(175, xla); } - } - - private boolean jj_2_177(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_177(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(176, xla); } - } - - private boolean jj_2_178(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_178(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(177, xla); } - } - - private boolean jj_2_179(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_179(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(178, xla); } - } - - private boolean jj_2_180(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_180(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(179, xla); } - } - - private boolean jj_2_181(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_181(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(180, xla); } - } - - private boolean jj_2_182(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_182(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(181, xla); } - } - - private boolean jj_2_183(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_183(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(182, xla); } - } - - private boolean jj_2_184(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_184(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(183, xla); } - } - - private boolean jj_2_185(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_185(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(184, xla); } - } - - private boolean jj_2_186(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_186(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(185, xla); } - } - - private boolean jj_2_187(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_187(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(186, xla); } - } - - private boolean jj_2_188(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_188(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(187, xla); } - } - - private boolean jj_2_189(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_189(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(188, xla); } - } - - private boolean jj_2_190(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_190(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(189, xla); } - } - - private boolean jj_2_191(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_191(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(190, xla); } - } - - private boolean jj_2_192(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_192(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(191, xla); } - } - - private boolean jj_2_193(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_193(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(192, xla); } - } - - private boolean jj_2_194(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_194(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(193, xla); } - } - - private boolean jj_2_195(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_195(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(194, xla); } - } - - private boolean jj_2_196(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_196(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(195, xla); } - } - - private boolean jj_2_197(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_197(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(196, xla); } - } - - private boolean jj_2_198(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_198(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(197, xla); } - } - - private boolean jj_2_199(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_199(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(198, xla); } - } - - private boolean jj_2_200(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_200(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(199, xla); } - } - - private boolean jj_2_201(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_201(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(200, xla); } - } - - private boolean jj_2_202(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_202(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(201, xla); } - } - - private boolean jj_2_203(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_203(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(202, xla); } - } - - private boolean jj_2_204(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_204(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(203, xla); } - } - - private boolean jj_2_205(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_205(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(204, xla); } - } - - private boolean jj_2_206(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_206(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(205, xla); } - } - - private boolean jj_2_207(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_207(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(206, xla); } - } - - private boolean jj_2_208(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_208(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(207, xla); } - } - - private boolean jj_2_209(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_209(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(208, xla); } - } - - private boolean jj_2_210(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_210(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(209, xla); } - } - - private boolean jj_2_211(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_211(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(210, xla); } - } - - private boolean jj_2_212(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_212(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(211, xla); } - } - - private boolean jj_2_213(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_213(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(212, xla); } - } - - private boolean jj_2_214(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_214(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(213, xla); } - } - - private boolean jj_2_215(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_215(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(214, xla); } - } - - private boolean jj_2_216(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_216(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(215, xla); } - } - - private boolean jj_2_217(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_217(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(216, xla); } - } - - private boolean jj_2_218(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_218(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(217, xla); } - } - - private boolean jj_2_219(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_219(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(218, xla); } - } - - private boolean jj_2_220(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_220(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(219, xla); } - } - - private boolean jj_2_221(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_221(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(220, xla); } - } - - private boolean jj_2_222(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_222(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(221, xla); } - } - - private boolean jj_2_223(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_223(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(222, xla); } - } - - private boolean jj_2_224(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_224(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(223, xla); } - } - - private boolean jj_2_225(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_225(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(224, xla); } - } - - private boolean jj_2_226(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_226(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(225, xla); } - } - - private boolean jj_2_227(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_227(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(226, xla); } - } - - private boolean jj_2_228(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_228(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(227, xla); } - } - - private boolean jj_2_229(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_229(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(228, xla); } - } - - private boolean jj_2_230(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_230(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(229, xla); } - } - - private boolean jj_2_231(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_231(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(230, xla); } - } - - private boolean jj_2_232(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_232(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(231, xla); } - } - - private boolean jj_2_233(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_233(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(232, xla); } - } - - private boolean jj_2_234(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_234(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(233, xla); } - } - - private boolean jj_2_235(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_235(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(234, xla); } - } - - private boolean jj_2_236(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_236(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(235, xla); } - } - - private boolean jj_2_237(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_237(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(236, xla); } - } - - private boolean jj_2_238(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_238(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(237, xla); } - } - - private boolean jj_2_239(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_239(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(238, xla); } - } - - private boolean jj_2_240(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_240(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(239, xla); } - } - - private boolean jj_2_241(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_241(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(240, xla); } - } - - private boolean jj_2_242(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_242(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(241, xla); } - } - - private boolean jj_2_243(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_243(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(242, xla); } - } - - private boolean jj_2_244(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_244(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(243, xla); } - } - - private boolean jj_2_245(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_245(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(244, xla); } - } - - private boolean jj_2_246(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_246(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(245, xla); } - } - - private boolean jj_2_247(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_247(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(246, xla); } - } - - private boolean jj_2_248(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_248(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(247, xla); } - } - - private boolean jj_2_249(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_249(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(248, xla); } - } - - private boolean jj_2_250(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_250(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(249, xla); } - } - - private boolean jj_2_251(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_251(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(250, xla); } - } - - private boolean jj_2_252(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_252(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(251, xla); } - } - - private boolean jj_2_253(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_253(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(252, xla); } - } - - private boolean jj_2_254(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_254(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(253, xla); } - } - - private boolean jj_2_255(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_255(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(254, xla); } - } - - private boolean jj_2_256(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_256(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(255, xla); } - } - - private boolean jj_2_257(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_257(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(256, xla); } - } - - private boolean jj_2_258(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_258(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(257, xla); } - } - - private boolean jj_2_259(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_259(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(258, xla); } - } - - private boolean jj_2_260(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_260(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(259, xla); } - } - - private boolean jj_2_261(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_261(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(260, xla); } - } - - private boolean jj_2_262(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_262(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(261, xla); } - } - - private boolean jj_2_263(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_263(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(262, xla); } - } - - private boolean jj_2_264(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_264(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(263, xla); } - } - - private boolean jj_2_265(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_265(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(264, xla); } - } - - private boolean jj_2_266(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_266(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(265, xla); } - } - - private boolean jj_2_267(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_267(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(266, xla); } - } - - private boolean jj_2_268(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_268(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(267, xla); } - } - - private boolean jj_2_269(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_269(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(268, xla); } - } - - private boolean jj_2_270(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_270(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(269, xla); } - } - - private boolean jj_2_271(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_271(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(270, xla); } - } - - private boolean jj_2_272(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_272(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(271, xla); } - } - - private boolean jj_2_273(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_273(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(272, xla); } - } - - private boolean jj_2_274(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_274(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(273, xla); } - } - - private boolean jj_2_275(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_275(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(274, xla); } - } - - private boolean jj_2_276(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_276(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(275, xla); } - } - - private boolean jj_2_277(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_277(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(276, xla); } - } - - private boolean jj_2_278(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_278(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(277, xla); } - } - - private boolean jj_2_279(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_279(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(278, xla); } - } - - private boolean jj_2_280(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_280(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(279, xla); } - } - - private boolean jj_2_281(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_281(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(280, xla); } - } - - private boolean jj_2_282(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_282(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(281, xla); } - } - - private boolean jj_2_283(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_283(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(282, xla); } - } - - private boolean jj_2_284(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_284(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(283, xla); } - } - - private boolean jj_2_285(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_285(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(284, xla); } - } - - private boolean jj_2_286(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_286(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(285, xla); } - } - - private boolean jj_2_287(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_287(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(286, xla); } - } - - private boolean jj_2_288(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_288(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(287, xla); } - } - - private boolean jj_2_289(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_289(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(288, xla); } - } - - private boolean jj_2_290(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_290(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(289, xla); } - } - - private boolean jj_2_291(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_291(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(290, xla); } - } - - private boolean jj_2_292(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_292(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(291, xla); } - } - - private boolean jj_2_293(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_293(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(292, xla); } - } - - private boolean jj_2_294(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_294(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(293, xla); } - } - - private boolean jj_2_295(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_295(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(294, xla); } - } - - private boolean jj_2_296(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_296(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(295, xla); } - } - - private boolean jj_2_297(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_297(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(296, xla); } - } - - private boolean jj_2_298(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_298(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(297, xla); } - } - - private boolean jj_2_299(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_299(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(298, xla); } - } - - private boolean jj_2_300(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_300(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(299, xla); } - } - - private boolean jj_2_301(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_301(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(300, xla); } - } - - private boolean jj_2_302(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_302(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(301, xla); } - } - - private boolean jj_2_303(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_303(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(302, xla); } - } - - private boolean jj_2_304(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_304(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(303, xla); } - } - - private boolean jj_2_305(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_305(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(304, xla); } - } - - private boolean jj_2_306(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_306(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(305, xla); } - } - - private boolean jj_2_307(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_307(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(306, xla); } - } - - private boolean jj_2_308(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_308(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(307, xla); } - } - - private boolean jj_2_309(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_309(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(308, xla); } - } - - private boolean jj_2_310(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_310(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(309, xla); } - } - - private boolean jj_2_311(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_311(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(310, xla); } - } - - private boolean jj_2_312(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_312(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(311, xla); } - } - - private boolean jj_2_313(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_313(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(312, xla); } - } - - private boolean jj_2_314(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_314(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(313, xla); } - } - - private boolean jj_2_315(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_315(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(314, xla); } - } - - private boolean jj_2_316(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_316(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(315, xla); } - } - - private boolean jj_2_317(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_317(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(316, xla); } - } - - private boolean jj_2_318(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_318(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(317, xla); } - } - - private boolean jj_2_319(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_319(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(318, xla); } - } - - private boolean jj_2_320(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_320(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(319, xla); } - } - - private boolean jj_2_321(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_321(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(320, xla); } - } - - private boolean jj_2_322(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_322(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(321, xla); } - } - - private boolean jj_2_323(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_323(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(322, xla); } - } - - private boolean jj_2_324(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_324(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(323, xla); } - } - - private boolean jj_2_325(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_325(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(324, xla); } - } - - private boolean jj_2_326(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_326(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(325, xla); } - } - - private boolean jj_2_327(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_327(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(326, xla); } - } - - private boolean jj_2_328(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_328(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(327, xla); } - } - - private boolean jj_2_329(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_329(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(328, xla); } - } - - private boolean jj_2_330(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_330(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(329, xla); } - } - - private boolean jj_2_331(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_331(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(330, xla); } - } - - private boolean jj_2_332(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_332(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(331, xla); } - } - - private boolean jj_2_333(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_333(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(332, xla); } - } - - private boolean jj_2_334(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_334(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(333, xla); } - } - - private boolean jj_2_335(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_335(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(334, xla); } - } - - private boolean jj_2_336(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_336(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(335, xla); } - } - - private boolean jj_2_337(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_337(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(336, xla); } - } - - private boolean jj_2_338(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_338(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(337, xla); } - } - - private boolean jj_2_339(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_339(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(338, xla); } - } - - private boolean jj_2_340(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_340(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(339, xla); } - } - - private boolean jj_2_341(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_341(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(340, xla); } - } - - private boolean jj_2_342(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_342(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(341, xla); } - } - - private boolean jj_2_343(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_343(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(342, xla); } - } - - private boolean jj_2_344(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_344(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(343, xla); } - } - - private boolean jj_2_345(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_345(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(344, xla); } - } - - private boolean jj_2_346(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_346(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(345, xla); } - } - - private boolean jj_2_347(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_347(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(346, xla); } - } - - private boolean jj_2_348(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_348(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(347, xla); } - } - - private boolean jj_2_349(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_349(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(348, xla); } - } - - private boolean jj_2_350(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_350(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(349, xla); } - } - - private boolean jj_2_351(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_351(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(350, xla); } - } - - private boolean jj_2_352(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_352(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(351, xla); } - } - - private boolean jj_2_353(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_353(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(352, xla); } - } - - private boolean jj_2_354(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_354(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(353, xla); } - } - - private boolean jj_2_355(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_355(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(354, xla); } - } - - private boolean jj_2_356(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_356(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(355, xla); } - } - - private boolean jj_2_357(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_357(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(356, xla); } - } - - private boolean jj_2_358(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_358(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(357, xla); } - } - - private boolean jj_2_359(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_359(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(358, xla); } - } - - private boolean jj_2_360(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_360(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(359, xla); } - } - - private boolean jj_2_361(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_361(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(360, xla); } - } - - private boolean jj_2_362(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_362(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(361, xla); } - } - - private boolean jj_2_363(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_363(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(362, xla); } - } - - private boolean jj_2_364(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_364(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(363, xla); } - } - - private boolean jj_2_365(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_365(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(364, xla); } - } - - private boolean jj_2_366(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_366(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(365, xla); } - } - - private boolean jj_2_367(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_367(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(366, xla); } - } - - private boolean jj_2_368(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_368(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(367, xla); } - } - - private boolean jj_2_369(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_369(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(368, xla); } - } - - private boolean jj_2_370(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_370(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(369, xla); } - } - - private boolean jj_2_371(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_371(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(370, xla); } - } - - private boolean jj_2_372(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_372(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(371, xla); } - } - - private boolean jj_2_373(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_373(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(372, xla); } - } - - private boolean jj_2_374(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_374(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(373, xla); } - } - - private boolean jj_2_375(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_375(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(374, xla); } - } - - private boolean jj_2_376(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_376(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(375, xla); } - } - - private boolean jj_2_377(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_377(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(376, xla); } - } - - private boolean jj_2_378(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_378(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(377, xla); } - } - - private boolean jj_2_379(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_379(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(378, xla); } - } - - private boolean jj_2_380(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_380(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(379, xla); } - } - - private boolean jj_2_381(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_381(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(380, xla); } - } - - private boolean jj_2_382(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_382(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(381, xla); } - } - - private boolean jj_2_383(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_383(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(382, xla); } - } - - private boolean jj_2_384(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_384(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(383, xla); } - } - - private boolean jj_2_385(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_385(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(384, xla); } - } - - private boolean jj_2_386(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_386(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(385, xla); } - } - - private boolean jj_2_387(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_387(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(386, xla); } - } - - private boolean jj_2_388(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_388(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(387, xla); } - } - - private boolean jj_2_389(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_389(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(388, xla); } - } - - private boolean jj_2_390(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_390(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(389, xla); } - } - - private boolean jj_2_391(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_391(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(390, xla); } - } - - private boolean jj_2_392(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_392(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(391, xla); } - } - - private boolean jj_2_393(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_393(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(392, xla); } - } - - private boolean jj_2_394(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_394(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(393, xla); } - } - - private boolean jj_2_395(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_395(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(394, xla); } - } - - private boolean jj_2_396(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_396(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(395, xla); } - } - - private boolean jj_2_397(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_397(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(396, xla); } - } - - private boolean jj_2_398(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_398(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(397, xla); } - } - - private boolean jj_2_399(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_399(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(398, xla); } - } - - private boolean jj_2_400(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_400(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(399, xla); } - } - - private boolean jj_2_401(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_401(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(400, xla); } - } - - private boolean jj_2_402(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_402(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(401, xla); } - } - - private boolean jj_2_403(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_403(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(402, xla); } - } - - private boolean jj_2_404(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_404(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(403, xla); } - } - - private boolean jj_2_405(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_405(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(404, xla); } - } - - private boolean jj_2_406(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_406(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(405, xla); } - } - - private boolean jj_2_407(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_407(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(406, xla); } - } - - private boolean jj_2_408(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_408(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(407, xla); } - } - - private boolean jj_2_409(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_409(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(408, xla); } - } - - private boolean jj_2_410(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_410(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(409, xla); } - } - - private boolean jj_2_411(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_411(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(410, xla); } - } - - private boolean jj_2_412(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_412(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(411, xla); } - } - - private boolean jj_2_413(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_413(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(412, xla); } - } - - private boolean jj_2_414(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_414(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(413, xla); } - } - - private boolean jj_2_415(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_415(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(414, xla); } - } - - private boolean jj_2_416(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_416(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(415, xla); } - } - - private boolean jj_2_417(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_417(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(416, xla); } - } - - private boolean jj_2_418(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_418(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(417, xla); } - } - - private boolean jj_2_419(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_419(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(418, xla); } - } - - private boolean jj_2_420(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_420(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(419, xla); } - } - - private boolean jj_2_421(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_421(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(420, xla); } - } - - private boolean jj_2_422(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_422(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(421, xla); } - } - - private boolean jj_2_423(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_423(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(422, xla); } - } - - private boolean jj_2_424(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_424(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(423, xla); } - } - - private boolean jj_2_425(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_425(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(424, xla); } - } - - private boolean jj_2_426(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_426(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(425, xla); } - } - - private boolean jj_2_427(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_427(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(426, xla); } - } - - private boolean jj_2_428(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_428(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(427, xla); } - } - - private boolean jj_2_429(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_429(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(428, xla); } - } - - private boolean jj_2_430(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_430(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(429, xla); } - } - - private boolean jj_2_431(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_431(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(430, xla); } - } - - private boolean jj_2_432(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_432(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(431, xla); } - } - - private boolean jj_2_433(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_433(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(432, xla); } - } - - private boolean jj_2_434(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_434(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(433, xla); } - } - - private boolean jj_2_435(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_435(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(434, xla); } - } - - private boolean jj_2_436(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_436(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(435, xla); } - } - - private boolean jj_2_437(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_437(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(436, xla); } - } - - private boolean jj_2_438(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_438(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(437, xla); } - } - - private boolean jj_2_439(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_439(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(438, xla); } - } - - private boolean jj_2_440(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_440(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(439, xla); } - } - - private boolean jj_2_441(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_441(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(440, xla); } - } - - private boolean jj_2_442(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_442(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(441, xla); } - } - - private boolean jj_2_443(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_443(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(442, xla); } - } - - private boolean jj_2_444(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_444(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(443, xla); } - } - - private boolean jj_2_445(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_445(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(444, xla); } - } - - private boolean jj_2_446(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_446(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(445, xla); } - } - - private boolean jj_2_447(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_447(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(446, xla); } - } - - private boolean jj_2_448(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_448(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(447, xla); } - } - - private boolean jj_2_449(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_449(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(448, xla); } - } - - private boolean jj_2_450(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_450(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(449, xla); } - } - - private boolean jj_2_451(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_451(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(450, xla); } - } - - private boolean jj_2_452(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_452(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(451, xla); } - } - - private boolean jj_2_453(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_453(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(452, xla); } - } - - private boolean jj_2_454(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_454(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(453, xla); } - } - - private boolean jj_2_455(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_455(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(454, xla); } - } - - private boolean jj_2_456(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_456(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(455, xla); } - } - - private boolean jj_2_457(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_457(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(456, xla); } - } - - private boolean jj_2_458(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_458(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(457, xla); } - } - - private boolean jj_2_459(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_459(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(458, xla); } - } - - private boolean jj_2_460(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_460(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(459, xla); } - } - - private boolean jj_2_461(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_461(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(460, xla); } - } - - private boolean jj_2_462(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_462(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(461, xla); } - } - - private boolean jj_2_463(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_463(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(462, xla); } - } - - private boolean jj_2_464(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_464(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(463, xla); } - } - - private boolean jj_2_465(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_465(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(464, xla); } - } - - private boolean jj_2_466(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_466(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(465, xla); } - } - - private boolean jj_2_467(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_467(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(466, xla); } - } - - private boolean jj_2_468(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_468(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(467, xla); } - } - - private boolean jj_2_469(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_469(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(468, xla); } - } - - private boolean jj_2_470(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_470(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(469, xla); } - } - - private boolean jj_2_471(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_471(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(470, xla); } - } - - private boolean jj_2_472(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_472(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(471, xla); } - } - - private boolean jj_2_473(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_473(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(472, xla); } - } - - private boolean jj_2_474(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_474(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(473, xla); } - } - - private boolean jj_2_475(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_475(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(474, xla); } - } - - private boolean jj_2_476(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_476(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(475, xla); } - } - - private boolean jj_2_477(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_477(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(476, xla); } - } - - private boolean jj_2_478(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_478(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(477, xla); } - } - - private boolean jj_2_479(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_479(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(478, xla); } - } - - private boolean jj_2_480(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_480(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(479, xla); } - } - - private boolean jj_2_481(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_481(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(480, xla); } - } - - private boolean jj_2_482(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_482(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(481, xla); } - } - - private boolean jj_2_483(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_483(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(482, xla); } - } - - private boolean jj_2_484(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_484(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(483, xla); } - } - - private boolean jj_2_485(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_485(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(484, xla); } - } - - private boolean jj_2_486(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_486(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(485, xla); } - } - - private boolean jj_2_487(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_487(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(486, xla); } - } - - private boolean jj_2_488(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_488(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(487, xla); } - } - - private boolean jj_2_489(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_489(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(488, xla); } - } - - private boolean jj_2_490(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_490(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(489, xla); } - } - - private boolean jj_2_491(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_491(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(490, xla); } - } - - private boolean jj_2_492(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_492(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(491, xla); } - } - - private boolean jj_2_493(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_493(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(492, xla); } - } - - private boolean jj_2_494(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_494(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(493, xla); } - } - - private boolean jj_2_495(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_495(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(494, xla); } - } - - private boolean jj_2_496(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_496(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(495, xla); } - } - - private boolean jj_2_497(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_497(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(496, xla); } - } - - private boolean jj_2_498(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_498(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(497, xla); } - } - - private boolean jj_2_499(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_499(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(498, xla); } - } - - private boolean jj_2_500(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_500(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(499, xla); } - } - - private boolean jj_2_501(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_501(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(500, xla); } - } - - private boolean jj_2_502(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_502(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(501, xla); } - } - - private boolean jj_2_503(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_503(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(502, xla); } - } - - private boolean jj_2_504(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_504(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(503, xla); } - } - - private boolean jj_2_505(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_505(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(504, xla); } - } - - private boolean jj_2_506(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_506(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(505, xla); } - } - - private boolean jj_2_507(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_507(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(506, xla); } - } - - private boolean jj_2_508(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_508(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(507, xla); } - } - - private boolean jj_2_509(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_509(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(508, xla); } - } - - private boolean jj_2_510(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_510(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(509, xla); } - } - - private boolean jj_2_511(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_511(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(510, xla); } - } - - private boolean jj_2_512(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_512(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(511, xla); } - } - - private boolean jj_2_513(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_513(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(512, xla); } - } - - private boolean jj_2_514(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_514(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(513, xla); } - } - - private boolean jj_2_515(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_515(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(514, xla); } - } - - private boolean jj_2_516(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_516(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(515, xla); } - } - - private boolean jj_2_517(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_517(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(516, xla); } - } - - private boolean jj_2_518(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_518(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(517, xla); } - } - - private boolean jj_2_519(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_519(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(518, xla); } - } - - private boolean jj_2_520(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_520(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(519, xla); } - } - - private boolean jj_2_521(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_521(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(520, xla); } - } - - private boolean jj_2_522(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_522(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(521, xla); } - } - - private boolean jj_2_523(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_523(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(522, xla); } - } - - private boolean jj_2_524(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_524(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(523, xla); } - } - - private boolean jj_2_525(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_525(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(524, xla); } - } - - private boolean jj_2_526(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_526(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(525, xla); } - } - - private boolean jj_2_527(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_527(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(526, xla); } - } - - private boolean jj_2_528(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_528(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(527, xla); } - } - - private boolean jj_2_529(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_529(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(528, xla); } - } - - private boolean jj_2_530(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_530(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(529, xla); } - } - - private boolean jj_2_531(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_531(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(530, xla); } - } - - private boolean jj_2_532(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_532(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(531, xla); } - } - - private boolean jj_2_533(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_533(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(532, xla); } - } - - private boolean jj_2_534(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_534(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(533, xla); } - } - - private boolean jj_2_535(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_535(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(534, xla); } - } - - private boolean jj_2_536(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_536(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(535, xla); } - } - - private boolean jj_2_537(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_537(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(536, xla); } - } - - private boolean jj_2_538(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_538(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(537, xla); } - } - - private boolean jj_2_539(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_539(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(538, xla); } - } - - private boolean jj_2_540(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_540(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(539, xla); } - } - - private boolean jj_2_541(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_541(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(540, xla); } - } - - private boolean jj_2_542(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_542(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(541, xla); } - } - - private boolean jj_2_543(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_543(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(542, xla); } - } - - private boolean jj_2_544(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_544(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(543, xla); } - } - - private boolean jj_2_545(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_545(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(544, xla); } - } - - private boolean jj_2_546(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_546(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(545, xla); } - } - - private boolean jj_2_547(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_547(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(546, xla); } - } - - private boolean jj_2_548(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_548(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(547, xla); } - } - - private boolean jj_2_549(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_549(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(548, xla); } - } - - private boolean jj_2_550(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_550(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(549, xla); } - } - - private boolean jj_2_551(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_551(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(550, xla); } - } - - private boolean jj_2_552(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_552(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(551, xla); } - } - - private boolean jj_2_553(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_553(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(552, xla); } - } - - private boolean jj_2_554(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_554(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(553, xla); } - } - - private boolean jj_2_555(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_555(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(554, xla); } - } - - private boolean jj_2_556(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_556(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(555, xla); } - } - - private boolean jj_2_557(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_557(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(556, xla); } - } - - private boolean jj_2_558(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_558(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(557, xla); } - } - - private boolean jj_2_559(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_559(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(558, xla); } - } - - private boolean jj_2_560(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_560(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(559, xla); } - } - - private boolean jj_2_561(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_561(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(560, xla); } - } - - private boolean jj_2_562(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_562(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(561, xla); } - } - - private boolean jj_2_563(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_563(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(562, xla); } - } - - private boolean jj_2_564(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_564(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(563, xla); } - } - - private boolean jj_2_565(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_565(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(564, xla); } - } - - private boolean jj_2_566(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_566(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(565, xla); } - } - - private boolean jj_2_567(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_567(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(566, xla); } - } - - private boolean jj_2_568(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_568(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(567, xla); } - } - - private boolean jj_2_569(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_569(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(568, xla); } - } - - private boolean jj_2_570(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_570(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(569, xla); } - } - - private boolean jj_2_571(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_571(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(570, xla); } - } - - private boolean jj_2_572(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_572(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(571, xla); } - } - - private boolean jj_2_573(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_573(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(572, xla); } - } - - private boolean jj_2_574(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_574(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(573, xla); } - } - - private boolean jj_2_575(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_575(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(574, xla); } - } - - private boolean jj_2_576(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_576(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(575, xla); } - } - - private boolean jj_2_577(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_577(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(576, xla); } - } - - private boolean jj_2_578(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_578(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(577, xla); } - } - - private boolean jj_2_579(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_579(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(578, xla); } - } - - private boolean jj_2_580(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_580(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(579, xla); } - } - - private boolean jj_2_581(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_581(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(580, xla); } - } - - private boolean jj_2_582(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_582(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(581, xla); } - } - - private boolean jj_2_583(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_583(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(582, xla); } - } - - private boolean jj_2_584(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_584(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(583, xla); } - } - - private boolean jj_2_585(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_585(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(584, xla); } - } - - private boolean jj_2_586(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_586(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(585, xla); } - } - - private boolean jj_2_587(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_587(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(586, xla); } - } - - private boolean jj_2_588(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_588(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(587, xla); } - } - - private boolean jj_2_589(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_589(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(588, xla); } - } - - private boolean jj_2_590(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_590(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(589, xla); } - } - - private boolean jj_2_591(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_591(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(590, xla); } - } - - private boolean jj_2_592(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_592(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(591, xla); } - } - - private boolean jj_2_593(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_593(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(592, xla); } - } - - private boolean jj_2_594(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_594(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(593, xla); } - } - - private boolean jj_2_595(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_595(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(594, xla); } - } - - private boolean jj_2_596(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_596(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(595, xla); } - } - - private boolean jj_2_597(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_597(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(596, xla); } - } - - private boolean jj_2_598(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_598(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(597, xla); } - } - - private boolean jj_2_599(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_599(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(598, xla); } - } - - private boolean jj_2_600(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_600(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(599, xla); } - } - - private boolean jj_2_601(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_601(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(600, xla); } - } - - private boolean jj_2_602(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_602(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(601, xla); } - } - - private boolean jj_2_603(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_603(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(602, xla); } - } - - private boolean jj_2_604(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_604(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(603, xla); } - } - - private boolean jj_2_605(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_605(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(604, xla); } - } - - private boolean jj_2_606(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_606(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(605, xla); } - } - - private boolean jj_2_607(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_607(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(606, xla); } - } - - private boolean jj_2_608(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_608(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(607, xla); } - } - - private boolean jj_2_609(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_609(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(608, xla); } - } - - private boolean jj_2_610(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_610(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(609, xla); } - } - - private boolean jj_2_611(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_611(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(610, xla); } - } - - private boolean jj_2_612(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_612(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(611, xla); } - } - - private boolean jj_2_613(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_613(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(612, xla); } - } - - private boolean jj_2_614(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_614(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(613, xla); } - } - - private boolean jj_2_615(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_615(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(614, xla); } - } - - private boolean jj_2_616(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_616(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(615, xla); } - } - - private boolean jj_2_617(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_617(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(616, xla); } - } - - private boolean jj_2_618(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_618(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(617, xla); } - } - - private boolean jj_2_619(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_619(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(618, xla); } - } - - private boolean jj_2_620(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_620(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(619, xla); } - } - - private boolean jj_2_621(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_621(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(620, xla); } - } - - private boolean jj_2_622(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_622(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(621, xla); } - } - - private boolean jj_2_623(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_623(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(622, xla); } - } - - private boolean jj_2_624(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_624(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(623, xla); } - } - - private boolean jj_2_625(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_625(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(624, xla); } - } - - private boolean jj_2_626(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_626(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(625, xla); } - } - - private boolean jj_2_627(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_627(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(626, xla); } - } - - private boolean jj_2_628(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_628(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(627, xla); } - } - - private boolean jj_2_629(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_629(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(628, xla); } - } - - private boolean jj_2_630(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_630(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(629, xla); } - } - - private boolean jj_2_631(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_631(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(630, xla); } - } - - private boolean jj_2_632(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_632(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(631, xla); } - } - - private boolean jj_2_633(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_633(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(632, xla); } - } - - private boolean jj_2_634(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_634(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(633, xla); } - } - - private boolean jj_2_635(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_635(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(634, xla); } - } - - private boolean jj_2_636(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_636(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(635, xla); } - } - - private boolean jj_2_637(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_637(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(636, xla); } - } - - private boolean jj_2_638(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_638(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(637, xla); } - } - - private boolean jj_2_639(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_639(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(638, xla); } - } - - private boolean jj_2_640(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_640(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(639, xla); } - } - - private boolean jj_2_641(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_641(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(640, xla); } - } - - private boolean jj_2_642(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_642(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(641, xla); } - } - - private boolean jj_2_643(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_643(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(642, xla); } - } - - private boolean jj_2_644(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_644(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(643, xla); } - } - - private boolean jj_2_645(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_645(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(644, xla); } - } - - private boolean jj_2_646(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_646(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(645, xla); } - } - - private boolean jj_2_647(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_647(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(646, xla); } - } - - private boolean jj_2_648(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_648(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(647, xla); } - } - - private boolean jj_2_649(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_649(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(648, xla); } - } - - private boolean jj_2_650(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_650(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(649, xla); } - } - - private boolean jj_2_651(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_651(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(650, xla); } - } - - private boolean jj_2_652(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_652(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(651, xla); } - } - - private boolean jj_2_653(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_653(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(652, xla); } - } - - private boolean jj_2_654(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_654(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(653, xla); } - } - - private boolean jj_2_655(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_655(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(654, xla); } - } - - private boolean jj_2_656(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_656(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(655, xla); } - } - - private boolean jj_2_657(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_657(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(656, xla); } - } - - private boolean jj_2_658(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_658(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(657, xla); } - } - - private boolean jj_2_659(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_659(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(658, xla); } - } - - private boolean jj_2_660(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_660(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(659, xla); } - } - - private boolean jj_2_661(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_661(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(660, xla); } - } - - private boolean jj_2_662(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_662(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(661, xla); } - } - - private boolean jj_2_663(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_663(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(662, xla); } - } - - private boolean jj_2_664(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_664(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(663, xla); } - } - - private boolean jj_2_665(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_665(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(664, xla); } - } - - private boolean jj_2_666(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_666(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(665, xla); } - } - - private boolean jj_2_667(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_667(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(666, xla); } - } - - private boolean jj_2_668(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_668(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(667, xla); } - } - - private boolean jj_2_669(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_669(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(668, xla); } - } - - private boolean jj_2_670(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_670(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(669, xla); } - } - - private boolean jj_2_671(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_671(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(670, xla); } - } - - private boolean jj_2_672(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_672(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(671, xla); } - } - - private boolean jj_2_673(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_673(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(672, xla); } - } - - private boolean jj_2_674(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_674(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(673, xla); } - } - - private boolean jj_2_675(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_675(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(674, xla); } - } - - private boolean jj_2_676(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_676(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(675, xla); } - } - - private boolean jj_2_677(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_677(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(676, xla); } - } - - private boolean jj_2_678(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_678(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(677, xla); } - } - - private boolean jj_2_679(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_679(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(678, xla); } - } - - private boolean jj_2_680(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_680(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(679, xla); } - } - - private boolean jj_2_681(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_681(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(680, xla); } - } - - private boolean jj_2_682(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_682(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(681, xla); } - } - - private boolean jj_2_683(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_683(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(682, xla); } - } - - private boolean jj_2_684(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_684(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(683, xla); } - } - - private boolean jj_2_685(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_685(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(684, xla); } - } - - private boolean jj_2_686(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_686(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(685, xla); } - } - - private boolean jj_2_687(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_687(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(686, xla); } - } - - private boolean jj_2_688(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_688(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(687, xla); } - } - - private boolean jj_2_689(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_689(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(688, xla); } - } - - private boolean jj_2_690(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_690(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(689, xla); } - } - - private boolean jj_2_691(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_691(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(690, xla); } - } - - private boolean jj_2_692(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_692(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(691, xla); } - } - - private boolean jj_2_693(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_693(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(692, xla); } - } - - private boolean jj_2_694(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_694(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(693, xla); } - } - - private boolean jj_2_695(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_695(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(694, xla); } - } - - private boolean jj_2_696(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_696(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(695, xla); } - } - - private boolean jj_2_697(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_697(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(696, xla); } - } - - private boolean jj_2_698(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_698(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(697, xla); } - } - - private boolean jj_2_699(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_699(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(698, xla); } - } - - private boolean jj_2_700(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_700(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(699, xla); } - } - - private boolean jj_2_701(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_701(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(700, xla); } - } - - private boolean jj_2_702(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_702(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(701, xla); } - } - - private boolean jj_2_703(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_703(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(702, xla); } - } - - private boolean jj_2_704(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_704(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(703, xla); } - } - - private boolean jj_2_705(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_705(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(704, xla); } - } - - private boolean jj_2_706(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_706(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(705, xla); } - } - - private boolean jj_2_707(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_707(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(706, xla); } - } - - private boolean jj_2_708(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_708(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(707, xla); } - } - - private boolean jj_2_709(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_709(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(708, xla); } - } - - private boolean jj_2_710(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_710(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(709, xla); } - } - - private boolean jj_2_711(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_711(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(710, xla); } - } - - private boolean jj_2_712(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_712(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(711, xla); } - } - - private boolean jj_2_713(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_713(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(712, xla); } - } - - private boolean jj_2_714(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_714(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(713, xla); } - } - - private boolean jj_2_715(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_715(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(714, xla); } - } - - private boolean jj_2_716(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_716(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(715, xla); } - } - - private boolean jj_2_717(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_717(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(716, xla); } - } - - private boolean jj_2_718(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_718(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(717, xla); } - } - - private boolean jj_2_719(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_719(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(718, xla); } - } - - private boolean jj_2_720(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_720(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(719, xla); } - } - - private boolean jj_2_721(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_721(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(720, xla); } - } - - private boolean jj_2_722(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_722(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(721, xla); } - } - - private boolean jj_2_723(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_723(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(722, xla); } - } - - private boolean jj_2_724(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_724(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(723, xla); } - } - - private boolean jj_2_725(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_725(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(724, xla); } - } - - private boolean jj_2_726(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_726(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(725, xla); } - } - - private boolean jj_2_727(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_727(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(726, xla); } - } - - private boolean jj_2_728(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_728(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(727, xla); } - } - - private boolean jj_2_729(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_729(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(728, xla); } - } - - private boolean jj_2_730(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_730(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(729, xla); } - } - - private boolean jj_2_731(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_731(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(730, xla); } - } - - private boolean jj_2_732(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_732(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(731, xla); } - } - - private boolean jj_2_733(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_733(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(732, xla); } - } - - private boolean jj_2_734(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_734(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(733, xla); } - } - - private boolean jj_2_735(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_735(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(734, xla); } - } - - private boolean jj_2_736(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_736(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(735, xla); } - } - - private boolean jj_2_737(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_737(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(736, xla); } - } - - private boolean jj_2_738(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_738(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(737, xla); } - } - - private boolean jj_2_739(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_739(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(738, xla); } - } - - private boolean jj_2_740(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_740(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(739, xla); } - } - - private boolean jj_2_741(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_741(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(740, xla); } - } - - private boolean jj_2_742(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_742(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(741, xla); } - } - - private boolean jj_2_743(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_743(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(742, xla); } - } - - private boolean jj_2_744(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_744(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(743, xla); } - } - - private boolean jj_2_745(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_745(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(744, xla); } - } - - private boolean jj_2_746(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_746(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(745, xla); } - } - - private boolean jj_2_747(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_747(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(746, xla); } - } - - private boolean jj_2_748(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_748(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(747, xla); } - } - - private boolean jj_2_749(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_749(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(748, xla); } - } - - private boolean jj_2_750(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_750(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(749, xla); } - } - - private boolean jj_2_751(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_751(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(750, xla); } - } - - private boolean jj_2_752(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_752(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(751, xla); } - } - - private boolean jj_2_753(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_753(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(752, xla); } - } - - private boolean jj_2_754(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_754(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(753, xla); } - } - - private boolean jj_2_755(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_755(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(754, xla); } - } - - private boolean jj_2_756(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_756(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(755, xla); } - } - - private boolean jj_2_757(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_757(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(756, xla); } - } - - private boolean jj_2_758(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_758(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(757, xla); } - } - - private boolean jj_2_759(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_759(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(758, xla); } - } - - private boolean jj_2_760(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_760(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(759, xla); } - } - - private boolean jj_2_761(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_761(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(760, xla); } - } - - private boolean jj_2_762(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_762(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(761, xla); } - } - - private boolean jj_2_763(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_763(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(762, xla); } - } - - private boolean jj_2_764(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_764(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(763, xla); } - } - - private boolean jj_2_765(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_765(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(764, xla); } - } - - private boolean jj_2_766(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_766(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(765, xla); } - } - - private boolean jj_2_767(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_767(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(766, xla); } - } - - private boolean jj_2_768(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_768(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(767, xla); } - } - - private boolean jj_2_769(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_769(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(768, xla); } - } - - private boolean jj_2_770(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_770(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(769, xla); } - } - - private boolean jj_2_771(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_771(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(770, xla); } - } - - private boolean jj_2_772(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_772(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(771, xla); } - } - - private boolean jj_2_773(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_773(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(772, xla); } - } - - private boolean jj_2_774(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_774(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(773, xla); } - } - - private boolean jj_2_775(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_775(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(774, xla); } - } - - private boolean jj_2_776(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_776(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(775, xla); } - } - - private boolean jj_2_777(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_777(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(776, xla); } - } - - private boolean jj_2_778(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_778(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(777, xla); } - } - - private boolean jj_2_779(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_779(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(778, xla); } - } - - private boolean jj_2_780(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_780(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(779, xla); } - } - - private boolean jj_2_781(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_781(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(780, xla); } - } - - private boolean jj_2_782(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_782(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(781, xla); } - } - - private boolean jj_2_783(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_783(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(782, xla); } - } - - private boolean jj_2_784(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_784(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(783, xla); } - } - - private boolean jj_2_785(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_785(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(784, xla); } - } - - private boolean jj_2_786(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_786(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(785, xla); } - } - - private boolean jj_2_787(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_787(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(786, xla); } - } - - private boolean jj_2_788(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_788(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(787, xla); } - } - - private boolean jj_2_789(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_789(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(788, xla); } - } - - private boolean jj_2_790(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_790(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(789, xla); } - } - - private boolean jj_2_791(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_791(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(790, xla); } - } - - private boolean jj_2_792(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_792(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(791, xla); } - } - - private boolean jj_2_793(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_793(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(792, xla); } - } - - private boolean jj_2_794(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_794(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(793, xla); } - } - - private boolean jj_2_795(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_795(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(794, xla); } - } - - private boolean jj_2_796(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_796(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(795, xla); } - } - - private boolean jj_2_797(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_797(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(796, xla); } - } - - private boolean jj_2_798(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_798(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(797, xla); } - } - - private boolean jj_2_799(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_799(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(798, xla); } - } - - private boolean jj_2_800(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_800(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(799, xla); } - } - - private boolean jj_2_801(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_801(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(800, xla); } - } - - private boolean jj_2_802(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_802(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(801, xla); } - } - - private boolean jj_2_803(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_803(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(802, xla); } - } - - private boolean jj_2_804(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_804(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(803, xla); } - } - - private boolean jj_2_805(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_805(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(804, xla); } - } - - private boolean jj_2_806(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_806(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(805, xla); } - } - - private boolean jj_2_807(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_807(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(806, xla); } - } - - private boolean jj_2_808(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_808(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(807, xla); } - } - - private boolean jj_2_809(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_809(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(808, xla); } - } - - private boolean jj_2_810(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_810(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(809, xla); } - } - - private boolean jj_2_811(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_811(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(810, xla); } - } - - private boolean jj_2_812(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_812(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(811, xla); } - } - - private boolean jj_2_813(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_813(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(812, xla); } - } - - private boolean jj_2_814(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_814(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(813, xla); } - } - - private boolean jj_2_815(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_815(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(814, xla); } - } - - private boolean jj_2_816(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_816(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(815, xla); } - } - - private boolean jj_2_817(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_817(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(816, xla); } - } - - private boolean jj_2_818(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_818(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(817, xla); } - } - - private boolean jj_2_819(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_819(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(818, xla); } - } - - private boolean jj_2_820(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_820(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(819, xla); } - } - - private boolean jj_2_821(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_821(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(820, xla); } - } - - private boolean jj_2_822(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_822(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(821, xla); } - } - - private boolean jj_2_823(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_823(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(822, xla); } - } - - private boolean jj_2_824(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_824(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(823, xla); } - } - - private boolean jj_2_825(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_825(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(824, xla); } - } - - private boolean jj_2_826(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_826(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(825, xla); } - } - - private boolean jj_2_827(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_827(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(826, xla); } - } - - private boolean jj_2_828(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_828(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(827, xla); } - } - - private boolean jj_2_829(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_829(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(828, xla); } - } - - private boolean jj_2_830(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_830(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(829, xla); } - } - - private boolean jj_2_831(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_831(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(830, xla); } - } - - private boolean jj_2_832(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_832(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(831, xla); } - } - - private boolean jj_2_833(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_833(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(832, xla); } - } - - private boolean jj_2_834(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_834(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(833, xla); } - } - - private boolean jj_2_835(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_835(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(834, xla); } - } - - private boolean jj_2_836(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_836(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(835, xla); } - } - - private boolean jj_2_837(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_837(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(836, xla); } - } - - private boolean jj_2_838(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_838(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(837, xla); } - } - - private boolean jj_2_839(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_839(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(838, xla); } - } - - private boolean jj_2_840(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_840(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(839, xla); } - } - - private boolean jj_2_841(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_841(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(840, xla); } - } - - private boolean jj_2_842(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_842(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(841, xla); } - } - - private boolean jj_2_843(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_843(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(842, xla); } - } - - private boolean jj_2_844(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_844(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(843, xla); } - } - - private boolean jj_2_845(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_845(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(844, xla); } - } - - private boolean jj_2_846(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_846(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(845, xla); } - } - - private boolean jj_2_847(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_847(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(846, xla); } - } - - private boolean jj_2_848(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_848(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(847, xla); } - } - - private boolean jj_2_849(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_849(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(848, xla); } - } - - private boolean jj_2_850(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_850(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(849, xla); } - } - - private boolean jj_2_851(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_851(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(850, xla); } - } - - private boolean jj_2_852(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_852(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(851, xla); } - } - - private boolean jj_2_853(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_853(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(852, xla); } - } - - private boolean jj_2_854(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_854(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(853, xla); } - } - - private boolean jj_2_855(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_855(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(854, xla); } - } - - private boolean jj_2_856(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_856(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(855, xla); } - } - - private boolean jj_2_857(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_857(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(856, xla); } - } - - private boolean jj_2_858(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_858(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(857, xla); } - } - - private boolean jj_2_859(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_859(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(858, xla); } - } - - private boolean jj_2_860(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_860(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(859, xla); } - } - - private boolean jj_2_861(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_861(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(860, xla); } - } - - private boolean jj_2_862(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_862(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(861, xla); } - } - - private boolean jj_2_863(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_863(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(862, xla); } - } - - private boolean jj_2_864(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_864(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(863, xla); } - } - - private boolean jj_2_865(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_865(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(864, xla); } - } - - private boolean jj_2_866(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_866(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(865, xla); } - } - - private boolean jj_2_867(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_867(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(866, xla); } - } - - private boolean jj_2_868(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_868(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(867, xla); } - } - - private boolean jj_2_869(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_869(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(868, xla); } - } - - private boolean jj_2_870(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_870(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(869, xla); } - } - - private boolean jj_2_871(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_871(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(870, xla); } - } - - private boolean jj_2_872(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_872(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(871, xla); } - } - - private boolean jj_2_873(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_873(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(872, xla); } - } - - private boolean jj_2_874(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_874(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(873, xla); } - } - - private boolean jj_2_875(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_875(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(874, xla); } - } - - private boolean jj_2_876(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_876(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(875, xla); } - } - - private boolean jj_2_877(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_877(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(876, xla); } - } - - private boolean jj_2_878(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_878(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(877, xla); } - } - - private boolean jj_2_879(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_879(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(878, xla); } - } - - private boolean jj_2_880(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_880(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(879, xla); } - } - - private boolean jj_2_881(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_881(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(880, xla); } - } - - private boolean jj_2_882(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_882(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(881, xla); } - } - - private boolean jj_2_883(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_883(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(882, xla); } - } - - private boolean jj_2_884(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_884(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(883, xla); } - } - - private boolean jj_2_885(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_885(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(884, xla); } - } - - private boolean jj_2_886(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_886(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(885, xla); } - } - - private boolean jj_2_887(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_887(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(886, xla); } - } - - private boolean jj_2_888(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_888(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(887, xla); } - } - - private boolean jj_2_889(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_889(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(888, xla); } - } - - private boolean jj_2_890(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_890(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(889, xla); } - } - - private boolean jj_2_891(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_891(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(890, xla); } - } - - private boolean jj_2_892(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_892(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(891, xla); } - } - - private boolean jj_2_893(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_893(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(892, xla); } - } - - private boolean jj_2_894(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_894(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(893, xla); } - } - - private boolean jj_2_895(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_895(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(894, xla); } - } - - private boolean jj_2_896(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_896(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(895, xla); } - } - - private boolean jj_2_897(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_897(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(896, xla); } - } - - private boolean jj_2_898(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_898(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(897, xla); } - } - - private boolean jj_2_899(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_899(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(898, xla); } - } - - private boolean jj_2_900(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_900(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(899, xla); } - } - - private boolean jj_2_901(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_901(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(900, xla); } - } - - private boolean jj_2_902(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_902(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(901, xla); } - } - - private boolean jj_2_903(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_903(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(902, xla); } - } - - private boolean jj_2_904(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_904(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(903, xla); } - } - - private boolean jj_2_905(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_905(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(904, xla); } - } - - private boolean jj_2_906(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_906(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(905, xla); } - } - - private boolean jj_2_907(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_907(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(906, xla); } - } - - private boolean jj_2_908(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_908(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(907, xla); } - } - - private boolean jj_2_909(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_909(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(908, xla); } - } - - private boolean jj_2_910(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_910(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(909, xla); } - } - - private boolean jj_2_911(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_911(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(910, xla); } - } - - private boolean jj_2_912(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_912(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(911, xla); } - } - - private boolean jj_2_913(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_913(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(912, xla); } - } - - private boolean jj_2_914(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_914(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(913, xla); } - } - - private boolean jj_2_915(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_915(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(914, xla); } - } - - private boolean jj_2_916(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_916(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(915, xla); } - } - - private boolean jj_2_917(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_917(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(916, xla); } - } - - private boolean jj_2_918(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_918(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(917, xla); } - } - - private boolean jj_2_919(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_919(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(918, xla); } - } - - private boolean jj_2_920(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_920(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(919, xla); } - } - - private boolean jj_2_921(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_921(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(920, xla); } - } - - private boolean jj_2_922(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_922(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(921, xla); } - } - - private boolean jj_2_923(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_923(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(922, xla); } - } - - private boolean jj_2_924(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_924(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(923, xla); } - } - - private boolean jj_2_925(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_925(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(924, xla); } - } - - private boolean jj_2_926(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_926(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(925, xla); } - } - - private boolean jj_2_927(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_927(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(926, xla); } - } - - private boolean jj_2_928(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_928(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(927, xla); } - } - - private boolean jj_2_929(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_929(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(928, xla); } - } - - private boolean jj_2_930(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_930(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(929, xla); } - } - - private boolean jj_2_931(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_931(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(930, xla); } - } - - private boolean jj_2_932(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_932(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(931, xla); } - } - - private boolean jj_2_933(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_933(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(932, xla); } - } - - private boolean jj_2_934(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_934(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(933, xla); } - } - - private boolean jj_2_935(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_935(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(934, xla); } - } - - private boolean jj_2_936(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_936(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(935, xla); } - } - - private boolean jj_2_937(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_937(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(936, xla); } - } - - private boolean jj_2_938(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_938(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(937, xla); } - } - - private boolean jj_2_939(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_939(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(938, xla); } - } - - private boolean jj_2_940(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_940(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(939, xla); } - } - - private boolean jj_2_941(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_941(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(940, xla); } - } - - private boolean jj_2_942(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_942(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(941, xla); } - } - - private boolean jj_2_943(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_943(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(942, xla); } - } - - private boolean jj_2_944(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_944(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(943, xla); } - } - - private boolean jj_2_945(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_945(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(944, xla); } - } - - private boolean jj_2_946(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_946(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(945, xla); } - } - - private boolean jj_2_947(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_947(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(946, xla); } - } - - private boolean jj_2_948(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_948(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(947, xla); } - } - - private boolean jj_2_949(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_949(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(948, xla); } - } - - private boolean jj_2_950(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_950(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(949, xla); } - } - - private boolean jj_2_951(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_951(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(950, xla); } - } - - private boolean jj_2_952(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_952(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(951, xla); } - } - - private boolean jj_2_953(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_953(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(952, xla); } - } - - private boolean jj_2_954(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_954(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(953, xla); } - } - - private boolean jj_2_955(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_955(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(954, xla); } - } - - private boolean jj_2_956(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_956(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(955, xla); } - } - - private boolean jj_2_957(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_957(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(956, xla); } - } - - private boolean jj_2_958(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_958(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(957, xla); } - } - - private boolean jj_2_959(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_959(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(958, xla); } - } - - private boolean jj_2_960(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_960(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(959, xla); } - } - - private boolean jj_2_961(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_961(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(960, xla); } - } - - private boolean jj_2_962(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_962(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(961, xla); } - } - - private boolean jj_2_963(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_963(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(962, xla); } - } - - private boolean jj_2_964(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_964(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(963, xla); } - } - - private boolean jj_2_965(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_965(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(964, xla); } - } - - private boolean jj_2_966(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_966(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(965, xla); } - } - - private boolean jj_2_967(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_967(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(966, xla); } - } - - private boolean jj_2_968(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_968(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(967, xla); } - } - - private boolean jj_2_969(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_969(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(968, xla); } - } - - private boolean jj_2_970(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_970(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(969, xla); } - } - - private boolean jj_2_971(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_971(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(970, xla); } - } - - private boolean jj_2_972(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_972(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(971, xla); } - } - - private boolean jj_2_973(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_973(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(972, xla); } - } - - private boolean jj_2_974(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_974(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(973, xla); } - } - - private boolean jj_2_975(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_975(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(974, xla); } - } - - private boolean jj_2_976(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_976(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(975, xla); } - } - - private boolean jj_2_977(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_977(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(976, xla); } - } - - private boolean jj_2_978(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_978(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(977, xla); } - } - - private boolean jj_2_979(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_979(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(978, xla); } - } - - private boolean jj_2_980(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_980(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(979, xla); } - } - - private boolean jj_2_981(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_981(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(980, xla); } - } - - private boolean jj_2_982(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_982(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(981, xla); } - } - - private boolean jj_2_983(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_983(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(982, xla); } - } - - private boolean jj_2_984(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_984(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(983, xla); } - } - - private boolean jj_2_985(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_985(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(984, xla); } - } - - private boolean jj_2_986(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_986(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(985, xla); } - } - - private boolean jj_2_987(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_987(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(986, xla); } - } - - private boolean jj_2_988(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_988(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(987, xla); } - } - - private boolean jj_2_989(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_989(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(988, xla); } - } - - private boolean jj_2_990(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_990(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(989, xla); } - } - - private boolean jj_2_991(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_991(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(990, xla); } - } - - private boolean jj_2_992(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_992(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(991, xla); } - } - - private boolean jj_2_993(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_993(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(992, xla); } - } - - private boolean jj_2_994(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_994(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(993, xla); } - } - - private boolean jj_2_995(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_995(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(994, xla); } - } - - private boolean jj_2_996(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_996(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(995, xla); } - } - - private boolean jj_2_997(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_997(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(996, xla); } - } - - private boolean jj_2_998(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_998(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(997, xla); } - } - - private boolean jj_2_999(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_999(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(998, xla); } - } - - private boolean jj_2_1000(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1000(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(999, xla); } - } - - private boolean jj_2_1001(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1001(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1000, xla); } - } - - private boolean jj_2_1002(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1002(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1001, xla); } - } - - private boolean jj_2_1003(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1003(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1002, xla); } - } - - private boolean jj_2_1004(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1004(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1003, xla); } - } - - private boolean jj_2_1005(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1005(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1004, xla); } - } - - private boolean jj_2_1006(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1006(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1005, xla); } - } - - private boolean jj_2_1007(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1007(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1006, xla); } - } - - private boolean jj_2_1008(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1008(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1007, xla); } - } - - private boolean jj_2_1009(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1009(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1008, xla); } - } - - private boolean jj_2_1010(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1010(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1009, xla); } - } - - private boolean jj_2_1011(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1011(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1010, xla); } - } - - private boolean jj_2_1012(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1012(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1011, xla); } - } - - private boolean jj_2_1013(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1013(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1012, xla); } - } - - private boolean jj_2_1014(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1014(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1013, xla); } - } - - private boolean jj_2_1015(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1015(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1014, xla); } - } - - private boolean jj_2_1016(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1016(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1015, xla); } - } - - private boolean jj_2_1017(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1017(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1016, xla); } - } - - private boolean jj_2_1018(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1018(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1017, xla); } - } - - private boolean jj_2_1019(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1019(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1018, xla); } - } - - private boolean jj_2_1020(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1020(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1019, xla); } - } - - private boolean jj_2_1021(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1021(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1020, xla); } - } - - private boolean jj_2_1022(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1022(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1021, xla); } - } - - private boolean jj_2_1023(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1023(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1022, xla); } - } - - private boolean jj_2_1024(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1024(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1023, xla); } - } - - private boolean jj_2_1025(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1025(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1024, xla); } - } - - private boolean jj_2_1026(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1026(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(1025, xla); } - } - - private boolean jj_3_774() { - if (jj_scan_token(COLLATION_NAME)) return true; - return false; - } - - private boolean jj_3_773() { - if (jj_scan_token(COLLATION_CATALOG)) return true; - return false; - } - - private boolean jj_3_772() { - if (jj_scan_token(COLLATION)) return true; - return false; - } - - private boolean jj_3_771() { - if (jj_scan_token(COBOL)) return true; - return false; - } - - private boolean jj_3R_106() { - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_243()) { jj_scanpos = xsp; break; } - } - if (jj_3R_103()) return true; - return false; - } - - private boolean jj_3_770() { - if (jj_scan_token(CLASS_ORIGIN)) return true; - return false; - } - - private boolean jj_3_769() { - if (jj_scan_token(CHARACTERS)) return true; - return false; - } - - private boolean jj_3_768() { - if (jj_scan_token(CHARACTERISTICS)) return true; - return false; - } - - private boolean jj_3_767() { - if (jj_scan_token(CHARACTER_SET_SCHEMA)) return true; - return false; - } - - private boolean jj_3_766() { - if (jj_scan_token(CHARACTER_SET_NAME)) return true; - return false; - } - - private boolean jj_3_765() { - if (jj_scan_token(CHARACTER_SET_CATALOG)) return true; - return false; - } - - private boolean jj_3_764() { - if (jj_scan_token(CHAIN)) return true; - return false; - } - - private boolean jj_3_763() { - if (jj_scan_token(CENTURY)) return true; - return false; - } - - private boolean jj_3_762() { - if (jj_scan_token(CATALOG_NAME)) return true; - return false; - } - - private boolean jj_3_761() { - if (jj_scan_token(CATALOG)) return true; - return false; - } - - private boolean jj_3_760() { - if (jj_scan_token(CASCADE)) return true; - return false; - } - - private boolean jj_3_759() { - if (jj_scan_token(C)) return true; - return false; - } - - private boolean jj_3_758() { - if (jj_scan_token(BREADTH)) return true; - return false; - } - - private boolean jj_3_757() { - if (jj_scan_token(BERNOULLI)) return true; - return false; - } - - private boolean jj_3_756() { - if (jj_scan_token(BEFORE)) return true; - return false; - } - - private boolean jj_3R_41() { - if (jj_3R_104()) return true; - return false; - } - - private boolean jj_3_755() { - if (jj_scan_token(ATTRIBUTES)) return true; - return false; - } - - private boolean jj_3_754() { - if (jj_scan_token(ATTRIBUTE)) return true; - return false; - } - - private boolean jj_3_753() { - if (jj_scan_token(ASSIGNMENT)) return true; - return false; - } - - private boolean jj_3_752() { - if (jj_scan_token(ASSERTION)) return true; - return false; - } - - private boolean jj_3_751() { - if (jj_scan_token(ASC)) return true; - return false; - } - - private boolean jj_3_750() { - if (jj_scan_token(APPLY)) return true; - return false; - } - - private boolean jj_3_749() { - if (jj_scan_token(ALWAYS)) return true; - return false; - } - - private boolean jj_3_748() { - if (jj_scan_token(AFTER)) return true; - return false; - } - - private boolean jj_3_747() { - if (jj_scan_token(ADMIN)) return true; - return false; - } - - private boolean jj_3_746() { - if (jj_scan_token(ADD)) return true; - return false; - } - - private boolean jj_3_745() { - if (jj_scan_token(ADA)) return true; - return false; - } - - private boolean jj_3_744() { - if (jj_scan_token(ACTION)) return true; - return false; - } - - private boolean jj_3_242() { - if (jj_3R_100()) return true; - return false; - } - - private boolean jj_3_743() { - if (jj_scan_token(ABSOLUTE)) return true; - return false; - } - - private boolean jj_3_742() { - if (jj_scan_token(A)) return true; - return false; - } - - private boolean jj_3R_181() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_241()) { - jj_scanpos = xsp; - if (jj_3_242()) return true; - } - return false; - } - - private boolean jj_3_241() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_176() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_742()) { - jj_scanpos = xsp; - if (jj_3_743()) { - jj_scanpos = xsp; - if (jj_3_744()) { - jj_scanpos = xsp; - if (jj_3_745()) { - jj_scanpos = xsp; - if (jj_3_746()) { - jj_scanpos = xsp; - if (jj_3_747()) { - jj_scanpos = xsp; - if (jj_3_748()) { - jj_scanpos = xsp; - if (jj_3_749()) { - jj_scanpos = xsp; - if (jj_3_750()) { - jj_scanpos = xsp; - if (jj_3_751()) { - jj_scanpos = xsp; - if (jj_3_752()) { - jj_scanpos = xsp; - if (jj_3_753()) { - jj_scanpos = xsp; - if (jj_3_754()) { - jj_scanpos = xsp; - if (jj_3_755()) { - jj_scanpos = xsp; - if (jj_3_756()) { - jj_scanpos = xsp; - if (jj_3_757()) { - jj_scanpos = xsp; - if (jj_3_758()) { - jj_scanpos = xsp; - if (jj_3_759()) { - jj_scanpos = xsp; - if (jj_3_760()) { - jj_scanpos = xsp; - if (jj_3_761()) { - jj_scanpos = xsp; - if (jj_3_762()) { - jj_scanpos = xsp; - if (jj_3_763()) { - jj_scanpos = xsp; - if (jj_3_764()) { - jj_scanpos = xsp; - if (jj_3_765()) { - jj_scanpos = xsp; - if (jj_3_766()) { - jj_scanpos = xsp; - if (jj_3_767()) { - jj_scanpos = xsp; - if (jj_3_768()) { - jj_scanpos = xsp; - if (jj_3_769()) { - jj_scanpos = xsp; - if (jj_3_770()) { - jj_scanpos = xsp; - if (jj_3_771()) { - jj_scanpos = xsp; - if (jj_3_772()) { - jj_scanpos = xsp; - if (jj_3_773()) { - jj_scanpos = xsp; - if (jj_3_774()) { - jj_scanpos = xsp; - if (jj_3_775()) { - jj_scanpos = xsp; - if (jj_3_776()) { - jj_scanpos = xsp; - if (jj_3_777()) { - jj_scanpos = xsp; - if (jj_3_778()) { - jj_scanpos = xsp; - if (jj_3_779()) { - jj_scanpos = xsp; - if (jj_3_780()) { - jj_scanpos = xsp; - if (jj_3_781()) { - jj_scanpos = xsp; - if (jj_3_782()) { - jj_scanpos = xsp; - if (jj_3_783()) { - jj_scanpos = xsp; - if (jj_3_784()) { - jj_scanpos = xsp; - if (jj_3_785()) { - jj_scanpos = xsp; - if (jj_3_786()) { - jj_scanpos = xsp; - if (jj_3_787()) { - jj_scanpos = xsp; - if (jj_3_788()) { - jj_scanpos = xsp; - if (jj_3_789()) { - jj_scanpos = xsp; - if (jj_3_790()) { - jj_scanpos = xsp; - if (jj_3_791()) { - jj_scanpos = xsp; - if (jj_3_792()) { - jj_scanpos = xsp; - if (jj_3_793()) { - jj_scanpos = xsp; - if (jj_3_794()) { - jj_scanpos = xsp; - if (jj_3_795()) { - jj_scanpos = xsp; - if (jj_3_796()) { - jj_scanpos = xsp; - if (jj_3_797()) { - jj_scanpos = xsp; - if (jj_3_798()) { - jj_scanpos = xsp; - if (jj_3_799()) { - jj_scanpos = xsp; - if (jj_3_800()) { - jj_scanpos = xsp; - if (jj_3_801()) { - jj_scanpos = xsp; - if (jj_3_802()) { - jj_scanpos = xsp; - if (jj_3_803()) { - jj_scanpos = xsp; - if (jj_3_804()) { - jj_scanpos = xsp; - if (jj_3_805()) { - jj_scanpos = xsp; - if (jj_3_806()) { - jj_scanpos = xsp; - if (jj_3_807()) { - jj_scanpos = xsp; - if (jj_3_808()) { - jj_scanpos = xsp; - if (jj_3_809()) { - jj_scanpos = xsp; - if (jj_3_810()) { - jj_scanpos = xsp; - if (jj_3_811()) { - jj_scanpos = xsp; - if (jj_3_812()) { - jj_scanpos = xsp; - if (jj_3_813()) { - jj_scanpos = xsp; - if (jj_3_814()) { - jj_scanpos = xsp; - if (jj_3_815()) { - jj_scanpos = xsp; - if (jj_3_816()) { - jj_scanpos = xsp; - if (jj_3_817()) { - jj_scanpos = xsp; - if (jj_3_818()) { - jj_scanpos = xsp; - if (jj_3_819()) { - jj_scanpos = xsp; - if (jj_3_820()) { - jj_scanpos = xsp; - if (jj_3_821()) { - jj_scanpos = xsp; - if (jj_3_822()) { - jj_scanpos = xsp; - if (jj_3_823()) { - jj_scanpos = xsp; - if (jj_3_824()) { - jj_scanpos = xsp; - if (jj_3_825()) { - jj_scanpos = xsp; - if (jj_3_826()) { - jj_scanpos = xsp; - if (jj_3_827()) { - jj_scanpos = xsp; - if (jj_3_828()) { - jj_scanpos = xsp; - if (jj_3_829()) { - jj_scanpos = xsp; - if (jj_3_830()) { - jj_scanpos = xsp; - if (jj_3_831()) { - jj_scanpos = xsp; - if (jj_3_832()) { - jj_scanpos = xsp; - if (jj_3_833()) { - jj_scanpos = xsp; - if (jj_3_834()) { - jj_scanpos = xsp; - if (jj_3_835()) { - jj_scanpos = xsp; - if (jj_3_836()) { - jj_scanpos = xsp; - if (jj_3_837()) { - jj_scanpos = xsp; - if (jj_3_838()) { - jj_scanpos = xsp; - if (jj_3_839()) { - jj_scanpos = xsp; - if (jj_3_840()) { - jj_scanpos = xsp; - if (jj_3_841()) { - jj_scanpos = xsp; - if (jj_3_842()) { - jj_scanpos = xsp; - if (jj_3_843()) { - jj_scanpos = xsp; - if (jj_3_844()) { - jj_scanpos = xsp; - if (jj_3_845()) { - jj_scanpos = xsp; - if (jj_3_846()) { - jj_scanpos = xsp; - if (jj_3_847()) { - jj_scanpos = xsp; - if (jj_3_848()) { - jj_scanpos = xsp; - if (jj_3_849()) { - jj_scanpos = xsp; - if (jj_3_850()) { - jj_scanpos = xsp; - if (jj_3_851()) { - jj_scanpos = xsp; - if (jj_3_852()) { - jj_scanpos = xsp; - if (jj_3_853()) { - jj_scanpos = xsp; - if (jj_3_854()) { - jj_scanpos = xsp; - if (jj_3_855()) { - jj_scanpos = xsp; - if (jj_3_856()) { - jj_scanpos = xsp; - if (jj_3_857()) { - jj_scanpos = xsp; - if (jj_3_858()) { - jj_scanpos = xsp; - if (jj_3_859()) { - jj_scanpos = xsp; - if (jj_3_860()) { - jj_scanpos = xsp; - if (jj_3_861()) { - jj_scanpos = xsp; - if (jj_3_862()) { - jj_scanpos = xsp; - if (jj_3_863()) { - jj_scanpos = xsp; - if (jj_3_864()) { - jj_scanpos = xsp; - if (jj_3_865()) { - jj_scanpos = xsp; - if (jj_3_866()) { - jj_scanpos = xsp; - if (jj_3_867()) { - jj_scanpos = xsp; - if (jj_3_868()) { - jj_scanpos = xsp; - if (jj_3_869()) { - jj_scanpos = xsp; - if (jj_3_870()) { - jj_scanpos = xsp; - if (jj_3_871()) { - jj_scanpos = xsp; - if (jj_3_872()) { - jj_scanpos = xsp; - if (jj_3_873()) { - jj_scanpos = xsp; - if (jj_3_874()) { - jj_scanpos = xsp; - if (jj_3_875()) { - jj_scanpos = xsp; - if (jj_3_876()) { - jj_scanpos = xsp; - if (jj_3_877()) { - jj_scanpos = xsp; - if (jj_3_878()) { - jj_scanpos = xsp; - if (jj_3_879()) { - jj_scanpos = xsp; - if (jj_3_880()) { - jj_scanpos = xsp; - if (jj_3_881()) { - jj_scanpos = xsp; - if (jj_3_882()) { - jj_scanpos = xsp; - if (jj_3_883()) { - jj_scanpos = xsp; - if (jj_3_884()) { - jj_scanpos = xsp; - if (jj_3_885()) { - jj_scanpos = xsp; - if (jj_3_886()) { - jj_scanpos = xsp; - if (jj_3_887()) { - jj_scanpos = xsp; - if (jj_3_888()) { - jj_scanpos = xsp; - if (jj_3_889()) { - jj_scanpos = xsp; - if (jj_3_890()) { - jj_scanpos = xsp; - if (jj_3_891()) { - jj_scanpos = xsp; - if (jj_3_892()) { - jj_scanpos = xsp; - if (jj_3_893()) { - jj_scanpos = xsp; - if (jj_3_894()) { - jj_scanpos = xsp; - if (jj_3_895()) { - jj_scanpos = xsp; - if (jj_3_896()) { - jj_scanpos = xsp; - if (jj_3_897()) { - jj_scanpos = xsp; - if (jj_3_898()) { - jj_scanpos = xsp; - if (jj_3_899()) { - jj_scanpos = xsp; - if (jj_3_900()) { - jj_scanpos = xsp; - if (jj_3_901()) { - jj_scanpos = xsp; - if (jj_3_902()) { - jj_scanpos = xsp; - if (jj_3_903()) { - jj_scanpos = xsp; - if (jj_3_904()) { - jj_scanpos = xsp; - if (jj_3_905()) { - jj_scanpos = xsp; - if (jj_3_906()) { - jj_scanpos = xsp; - if (jj_3_907()) { - jj_scanpos = xsp; - if (jj_3_908()) { - jj_scanpos = xsp; - if (jj_3_909()) { - jj_scanpos = xsp; - if (jj_3_910()) { - jj_scanpos = xsp; - if (jj_3_911()) { - jj_scanpos = xsp; - if (jj_3_912()) { - jj_scanpos = xsp; - if (jj_3_913()) { - jj_scanpos = xsp; - if (jj_3_914()) { - jj_scanpos = xsp; - if (jj_3_915()) { - jj_scanpos = xsp; - if (jj_3_916()) { - jj_scanpos = xsp; - if (jj_3_917()) { - jj_scanpos = xsp; - if (jj_3_918()) { - jj_scanpos = xsp; - if (jj_3_919()) { - jj_scanpos = xsp; - if (jj_3_920()) { - jj_scanpos = xsp; - if (jj_3_921()) { - jj_scanpos = xsp; - if (jj_3_922()) { - jj_scanpos = xsp; - if (jj_3_923()) { - jj_scanpos = xsp; - if (jj_3_924()) { - jj_scanpos = xsp; - if (jj_3_925()) { - jj_scanpos = xsp; - if (jj_3_926()) { - jj_scanpos = xsp; - if (jj_3_927()) { - jj_scanpos = xsp; - if (jj_3_928()) { - jj_scanpos = xsp; - if (jj_3_929()) { - jj_scanpos = xsp; - if (jj_3_930()) { - jj_scanpos = xsp; - if (jj_3_931()) { - jj_scanpos = xsp; - if (jj_3_932()) { - jj_scanpos = xsp; - if (jj_3_933()) { - jj_scanpos = xsp; - if (jj_3_934()) { - jj_scanpos = xsp; - if (jj_3_935()) { - jj_scanpos = xsp; - if (jj_3_936()) { - jj_scanpos = xsp; - if (jj_3_937()) { - jj_scanpos = xsp; - if (jj_3_938()) { - jj_scanpos = xsp; - if (jj_3_939()) { - jj_scanpos = xsp; - if (jj_3_940()) { - jj_scanpos = xsp; - if (jj_3_941()) { - jj_scanpos = xsp; - if (jj_3_942()) { - jj_scanpos = xsp; - if (jj_3_943()) { - jj_scanpos = xsp; - if (jj_3_944()) { - jj_scanpos = xsp; - if (jj_3_945()) { - jj_scanpos = xsp; - if (jj_3_946()) { - jj_scanpos = xsp; - if (jj_3_947()) { - jj_scanpos = xsp; - if (jj_3_948()) { - jj_scanpos = xsp; - if (jj_3_949()) { - jj_scanpos = xsp; - if (jj_3_950()) { - jj_scanpos = xsp; - if (jj_3_951()) { - jj_scanpos = xsp; - if (jj_3_952()) { - jj_scanpos = xsp; - if (jj_3_953()) { - jj_scanpos = xsp; - if (jj_3_954()) { - jj_scanpos = xsp; - if (jj_3_955()) { - jj_scanpos = xsp; - if (jj_3_956()) { - jj_scanpos = xsp; - if (jj_3_957()) { - jj_scanpos = xsp; - if (jj_3_958()) { - jj_scanpos = xsp; - if (jj_3_959()) { - jj_scanpos = xsp; - if (jj_3_960()) { - jj_scanpos = xsp; - if (jj_3_961()) { - jj_scanpos = xsp; - if (jj_3_962()) { - jj_scanpos = xsp; - if (jj_3_963()) { - jj_scanpos = xsp; - if (jj_3_964()) { - jj_scanpos = xsp; - if (jj_3_965()) { - jj_scanpos = xsp; - if (jj_3_966()) { - jj_scanpos = xsp; - if (jj_3_967()) { - jj_scanpos = xsp; - if (jj_3_968()) { - jj_scanpos = xsp; - if (jj_3_969()) { - jj_scanpos = xsp; - if (jj_3_970()) { - jj_scanpos = xsp; - if (jj_3_971()) { - jj_scanpos = xsp; - if (jj_3_972()) { - jj_scanpos = xsp; - if (jj_3_973()) { - jj_scanpos = xsp; - if (jj_3_974()) { - jj_scanpos = xsp; - if (jj_3_975()) { - jj_scanpos = xsp; - if (jj_3_976()) { - jj_scanpos = xsp; - if (jj_3_977()) { - jj_scanpos = xsp; - if (jj_3_978()) { - jj_scanpos = xsp; - if (jj_3_979()) { - jj_scanpos = xsp; - if (jj_3_980()) { - jj_scanpos = xsp; - if (jj_3_981()) { - jj_scanpos = xsp; - if (jj_3_982()) { - jj_scanpos = xsp; - if (jj_3_983()) { - jj_scanpos = xsp; - if (jj_3_984()) { - jj_scanpos = xsp; - if (jj_3_985()) { - jj_scanpos = xsp; - if (jj_3_986()) { - jj_scanpos = xsp; - if (jj_3_987()) { - jj_scanpos = xsp; - if (jj_3_988()) { - jj_scanpos = xsp; - if (jj_3_989()) { - jj_scanpos = xsp; - if (jj_3_990()) { - jj_scanpos = xsp; - if (jj_3_991()) { - jj_scanpos = xsp; - if (jj_3_992()) { - jj_scanpos = xsp; - if (jj_3_993()) { - jj_scanpos = xsp; - if (jj_3_994()) { - jj_scanpos = xsp; - if (jj_3_995()) { - jj_scanpos = xsp; - if (jj_3_996()) { - jj_scanpos = xsp; - if (jj_3_997()) { - jj_scanpos = xsp; - if (jj_3_998()) { - jj_scanpos = xsp; - if (jj_3_999()) { - jj_scanpos = xsp; - if (jj_3_1000()) { - jj_scanpos = xsp; - if (jj_3_1001()) { - jj_scanpos = xsp; - if (jj_3_1002()) { - jj_scanpos = xsp; - if (jj_3_1003()) { - jj_scanpos = xsp; - if (jj_3_1004()) { - jj_scanpos = xsp; - if (jj_3_1005()) { - jj_scanpos = xsp; - if (jj_3_1006()) { - jj_scanpos = xsp; - if (jj_3_1007()) { - jj_scanpos = xsp; - if (jj_3_1008()) { - jj_scanpos = xsp; - if (jj_3_1009()) { - jj_scanpos = xsp; - if (jj_3_1010()) { - jj_scanpos = xsp; - if (jj_3_1011()) { - jj_scanpos = xsp; - if (jj_3_1012()) { - jj_scanpos = xsp; - if (jj_3_1013()) { - jj_scanpos = xsp; - if (jj_3_1014()) { - jj_scanpos = xsp; - if (jj_3_1015()) { - jj_scanpos = xsp; - if (jj_3_1016()) { - jj_scanpos = xsp; - if (jj_3_1017()) { - jj_scanpos = xsp; - if (jj_3_1018()) { - jj_scanpos = xsp; - if (jj_3_1019()) { - jj_scanpos = xsp; - if (jj_3_1020()) { - jj_scanpos = xsp; - if (jj_3_1021()) { - jj_scanpos = xsp; - if (jj_3_1022()) { - jj_scanpos = xsp; - if (jj_3_1023()) { - jj_scanpos = xsp; - if (jj_3_1024()) { - jj_scanpos = xsp; - if (jj_3_1025()) { - jj_scanpos = xsp; - if (jj_3_1026()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_240() { - if (jj_3R_68()) return true; - return false; - } - - private boolean jj_3R_99() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_239() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_99()) return true; - return false; - } - - private boolean jj_3R_97() { - if (jj_scan_token(WITH)) return true; - if (jj_3R_99()) return true; - return false; - } - - private boolean jj_3_238() { - if (jj_3R_98()) return true; - return false; - } - - private boolean jj_3_237() { - if (jj_3R_97()) return true; - return false; - } - - private boolean jj_3R_157() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_237()) jj_scanpos = xsp; - if (jj_3R_181()) return true; - while (true) { - xsp = jj_scanpos; - if (jj_3_238()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3R_96() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_236() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_96()) return true; - return false; - } - - private boolean jj_3R_95() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_235() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_95()) return true; - return false; - } - - private boolean jj_3R_89() { - if (jj_3R_95()) return true; - return false; - } - - private boolean jj_3_230() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_94()) return true; - return false; - } - - private boolean jj_3_234() { - if (jj_scan_token(PERMUTE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_233() { - if (jj_scan_token(LBRACE)) return true; - if (jj_scan_token(MINUS)) return true; - return false; - } - - private boolean jj_3_232() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_94()) return true; - return false; - } - - private boolean jj_3_231() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3R_169() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_231()) { - jj_scanpos = xsp; - if (jj_3_232()) { - jj_scanpos = xsp; - if (jj_3_233()) { - jj_scanpos = xsp; - if (jj_3_234()) return true; - } - } - } - return false; - } - - private boolean jj_3_228() { - if (jj_scan_token(HOOK)) return true; - return false; - } - - private boolean jj_3_223() { - if (jj_scan_token(MINUS)) return true; - if (jj_3R_94()) return true; - return false; - } - - private boolean jj_3_219() { - if (jj_3R_93()) return true; - return false; - } - - private boolean jj_3_222() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_93()) return true; - return false; - } - - private boolean jj_3_220() { - if (jj_scan_token(COMMA)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_219()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_221() { - if (jj_3R_93()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_220()) jj_scanpos = xsp; - if (jj_scan_token(RBRACE)) return true; - return false; - } - - private boolean jj_3_227() { - if (jj_scan_token(LBRACE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_221()) { - jj_scanpos = xsp; - if (jj_3_222()) { - jj_scanpos = xsp; - if (jj_3_223()) return true; - } - } - return false; - } - - private boolean jj_3_226() { - if (jj_scan_token(HOOK)) return true; - return false; - } - - private boolean jj_3_225() { - if (jj_scan_token(PLUS)) return true; - return false; - } - - private boolean jj_3_224() { - if (jj_scan_token(STAR)) return true; - return false; - } - - private boolean jj_3_229() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_224()) { - jj_scanpos = xsp; - if (jj_3_225()) { - jj_scanpos = xsp; - if (jj_3_226()) { - jj_scanpos = xsp; - if (jj_3_227()) return true; - } - } - } - xsp = jj_scanpos; - if (jj_3_228()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3R_92() { - if (jj_3R_169()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_229()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_218() { - if (jj_3R_92()) return true; - return false; - } - - private boolean jj_3R_91() { - if (jj_3R_92()) return true; - return false; - } - - private boolean jj_3_217() { - if (jj_scan_token(VERTICAL_BAR)) return true; - if (jj_3R_91()) return true; - return false; - } - - private boolean jj_3R_94() { - if (jj_3R_91()) return true; - return false; - } - - private boolean jj_3R_90() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_216() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_90()) return true; - return false; - } - - private boolean jj_3R_87() { - if (jj_3R_90()) return true; - return false; - } - - private boolean jj_3_215() { - if (jj_scan_token(SUBSET)) return true; - if (jj_3R_89()) return true; - return false; - } - - private boolean jj_3_214() { - if (jj_scan_token(WITHIN)) return true; - if (jj_3R_88()) return true; - return false; - } - - private boolean jj_3_213() { - if (jj_scan_token(DOLLAR)) return true; - return false; - } - - private boolean jj_3_212() { - if (jj_scan_token(CARET)) return true; - return false; - } - - private boolean jj_3_205() { - if (jj_scan_token(LAST)) return true; - return false; - } - - private boolean jj_3_210() { - if (jj_scan_token(PAST)) return true; - if (jj_scan_token(LAST)) return true; - return false; - } - - private boolean jj_3_208() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_205()) jj_scanpos = xsp; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_207() { - if (jj_scan_token(FIRST)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_206() { - if (jj_scan_token(NEXT)) return true; - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3_209() { - if (jj_scan_token(TO)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_206()) { - jj_scanpos = xsp; - if (jj_3_207()) { - jj_scanpos = xsp; - if (jj_3_208()) return true; - } - } - return false; - } - - private boolean jj_3_211() { - if (jj_scan_token(AFTER)) return true; - if (jj_scan_token(MATCH)) return true; - return false; - } - - private boolean jj_3_204() { - if (jj_scan_token(ALL)) return true; - if (jj_scan_token(ROWS)) return true; - return false; - } - - private boolean jj_3_203() { - if (jj_scan_token(ONE)) return true; - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3_202() { - if (jj_scan_token(MEASURES)) return true; - if (jj_3R_87()) return true; - return false; - } - - private boolean jj_3_201() { - if (jj_3R_36()) return true; - return false; - } - - private boolean jj_3_200() { - if (jj_scan_token(PARTITION)) return true; - if (jj_scan_token(BY)) return true; - return false; - } - - private boolean jj_3R_73() { - if (jj_scan_token(MATCH_RECOGNIZE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_198() { - if (jj_scan_token(NULLS)) return true; - if (jj_scan_token(LAST)) return true; - return false; - } - - private boolean jj_3_197() { - if (jj_scan_token(NULLS)) return true; - if (jj_scan_token(FIRST)) return true; - return false; - } - - private boolean jj_3_199() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_197()) { - jj_scanpos = xsp; - if (jj_3_198()) return true; - } - return false; - } - - private boolean jj_3_195() { - if (jj_scan_token(DESC)) return true; - return false; - } - - private boolean jj_3_194() { - if (jj_scan_token(ASC)) return true; - return false; - } - - private boolean jj_3_196() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_194()) { - jj_scanpos = xsp; - if (jj_3_195()) return true; - } - return false; - } - - private boolean jj_3R_86() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_193() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_86()) return true; - return false; - } - - private boolean jj_3R_36() { - if (jj_scan_token(ORDER)) return true; - if (jj_scan_token(BY)) return true; - return false; - } - - private boolean jj_3_189() { - if (jj_scan_token(FOLLOWING)) return true; - return false; - } - - private boolean jj_3_188() { - if (jj_scan_token(PRECEDING)) return true; - return false; - } - - private boolean jj_3_192() { - if (jj_3R_41()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_188()) { - jj_scanpos = xsp; - if (jj_3_189()) return true; - } - return false; - } - - private boolean jj_3_187() { - if (jj_scan_token(FOLLOWING)) return true; - return false; - } - - private boolean jj_3_186() { - if (jj_scan_token(PRECEDING)) return true; - return false; - } - - private boolean jj_3_191() { - if (jj_scan_token(UNBOUNDED)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_186()) { - jj_scanpos = xsp; - if (jj_3_187()) return true; - } - return false; - } - - private boolean jj_3_190() { - if (jj_scan_token(CURRENT)) return true; - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3R_85() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_190()) { - jj_scanpos = xsp; - if (jj_3_191()) { - jj_scanpos = xsp; - if (jj_3_192()) return true; - } - } - return false; - } - - private boolean jj_3_184() { - if (jj_scan_token(DISALLOW)) return true; - if (jj_scan_token(PARTIAL)) return true; - return false; - } - - private boolean jj_3_181() { - if (jj_3R_85()) return true; - return false; - } - - private boolean jj_3_183() { - if (jj_scan_token(ALLOW)) return true; - if (jj_scan_token(PARTIAL)) return true; - return false; - } - - private boolean jj_3_185() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_183()) { - jj_scanpos = xsp; - if (jj_3_184()) return true; - } - return false; - } - - private boolean jj_3_180() { - if (jj_scan_token(BETWEEN)) return true; - if (jj_3R_85()) return true; - return false; - } - - private boolean jj_3_179() { - if (jj_scan_token(RANGE)) return true; - return false; - } - - private boolean jj_3_178() { - if (jj_scan_token(ROWS)) return true; - return false; - } - - private boolean jj_3_182() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_178()) { - jj_scanpos = xsp; - if (jj_3_179()) return true; - } - xsp = jj_scanpos; - if (jj_3_180()) { - jj_scanpos = xsp; - if (jj_3_181()) return true; - } - return false; - } - - private boolean jj_3_177() { - if (jj_3R_36()) return true; - return false; - } - - private boolean jj_3_176() { - if (jj_scan_token(PARTITION)) return true; - if (jj_scan_token(BY)) return true; - return false; - } - - private boolean jj_3R_180() { - return false; - } - - private boolean jj_3_175() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3R_147() { - if (jj_scan_token(LPAREN)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_175()) { - jj_scanpos = xsp; - if (jj_3R_180()) return true; - } - return false; - } - - private boolean jj_3_173() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_174() { - if (jj_scan_token(WINDOW)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_172() { - if (jj_scan_token(HAVING)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_738() { - if (jj_scan_token(UNKNOWN)) return true; - return false; - } - - private boolean jj_3_737() { - if (jj_scan_token(FALSE)) return true; - return false; - } - - private boolean jj_3_736() { - if (jj_scan_token(TRUE)) return true; - return false; - } - - private boolean jj_3_735() { - if (jj_scan_token(NULL)) return true; - return false; - } - - private boolean jj_3_734() { - if (jj_scan_token(UNKNOWN)) return true; - return false; - } - - private boolean jj_3_733() { - if (jj_scan_token(FALSE)) return true; - return false; - } - - private boolean jj_3_741() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_735()) { - jj_scanpos = xsp; - if (jj_3_736()) { - jj_scanpos = xsp; - if (jj_3_737()) { - jj_scanpos = xsp; - if (jj_3_738()) return true; - } - } - } - return false; - } - - private boolean jj_3_732() { - if (jj_scan_token(TRUE)) return true; - return false; - } - - private boolean jj_3_171() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_731() { - if (jj_scan_token(NULL)) return true; - return false; - } - - private boolean jj_3_740() { - if (jj_scan_token(NOT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_731()) { - jj_scanpos = xsp; - if (jj_3_732()) { - jj_scanpos = xsp; - if (jj_3_733()) { - jj_scanpos = xsp; - if (jj_3_734()) return true; - } - } - } - return false; - } - - private boolean jj_3_739() { - if (jj_scan_token(A)) return true; - if (jj_scan_token(SET)) return true; - return false; - } - - private boolean jj_3R_123() { - if (jj_3R_41()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_171()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3R_107() { - if (jj_scan_token(IS)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_739()) { - jj_scanpos = xsp; - if (jj_3_740()) { - jj_scanpos = xsp; - if (jj_3_741()) return true; - } - } - return false; - } - - private boolean jj_3_730() { - if (jj_scan_token(EXISTS)) return true; - return false; - } - - private boolean jj_3_729() { - if (jj_scan_token(NOT)) return true; - return false; - } - - private boolean jj_3_728() { - if (jj_scan_token(MINUS)) return true; - return false; - } - - private boolean jj_3_727() { - if (jj_scan_token(PLUS)) return true; - return false; - } - - private boolean jj_3R_101() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_727()) { - jj_scanpos = xsp; - if (jj_3_728()) { - jj_scanpos = xsp; - if (jj_3_729()) { - jj_scanpos = xsp; - if (jj_3_730()) return true; - } - } - } - return false; - } - - private boolean jj_3_170() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_169() { - if (jj_scan_token(LPAREN)) return true; - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_726() { - if (jj_3R_154()) return true; - return false; - } - - private boolean jj_3_725() { - if (jj_scan_token(IMMEDIATELY)) return true; - if (jj_scan_token(SUCCEEDS)) return true; - return false; - } - - private boolean jj_3_168() { - if (jj_scan_token(CUBE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_724() { - if (jj_scan_token(IMMEDIATELY)) return true; - if (jj_scan_token(PRECEDES)) return true; - return false; - } - - private boolean jj_3_723() { - if (jj_scan_token(SUCCEEDS)) return true; - return false; - } - - private boolean jj_3_722() { - if (jj_scan_token(PRECEDES)) return true; - return false; - } - - private boolean jj_3_721() { - if (jj_scan_token(EQUALS)) return true; - return false; - } - - private boolean jj_3_720() { - if (jj_scan_token(OVERLAPS)) return true; - return false; - } - - private boolean jj_3_719() { - if (jj_scan_token(CONTAINS)) return true; - return false; - } - - private boolean jj_3_167() { - if (jj_scan_token(ROLLUP)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_718() { - if (jj_scan_token(SUBMULTISET)) return true; - if (jj_scan_token(OF)) return true; - return false; - } - - private boolean jj_3_717() { - if (jj_scan_token(MEMBER)) return true; - if (jj_scan_token(OF)) return true; - return false; - } - - private boolean jj_3_716() { - if (jj_scan_token(IS)) return true; - if (jj_scan_token(NOT)) return true; - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_715() { - if (jj_scan_token(IS)) return true; - if (jj_scan_token(DISTINCT)) return true; - if (jj_scan_token(FROM)) return true; - return false; - } - - private boolean jj_3_166() { - if (jj_scan_token(GROUPING)) return true; - if (jj_scan_token(SETS)) return true; - return false; - } - - private boolean jj_3R_84() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_166()) { - jj_scanpos = xsp; - if (jj_3_167()) { - jj_scanpos = xsp; - if (jj_3_168()) { - jj_scanpos = xsp; - if (jj_3_169()) { - jj_scanpos = xsp; - if (jj_3_170()) return true; - } - } - } - } - return false; - } - - private boolean jj_3_714() { - if (jj_scan_token(OR)) return true; - return false; - } - - private boolean jj_3_713() { - if (jj_scan_token(AND)) return true; - return false; - } - - private boolean jj_3_712() { - if (jj_scan_token(CONCAT)) return true; - return false; - } - - private boolean jj_3_711() { - if (jj_scan_token(PERCENT_REMAINDER)) return true; - return false; - } - - private boolean jj_3_710() { - if (jj_scan_token(SLASH)) return true; - return false; - } - - private boolean jj_3_165() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_84()) return true; - return false; - } - - private boolean jj_3_709() { - if (jj_scan_token(STAR)) return true; - return false; - } - - private boolean jj_3_708() { - if (jj_scan_token(MINUS)) return true; - return false; - } - - private boolean jj_3_707() { - if (jj_scan_token(PLUS)) return true; - return false; - } - - private boolean jj_3_706() { - if (jj_scan_token(NE2)) return true; - return false; - } - - private boolean jj_3_705() { - if (jj_scan_token(NE)) return true; - return false; - } - - private boolean jj_3_704() { - if (jj_scan_token(GE)) return true; - return false; - } - - private boolean jj_3_703() { - if (jj_scan_token(LE)) return true; - return false; - } - - private boolean jj_3_702() { - if (jj_scan_token(LT)) return true; - return false; - } - - private boolean jj_3_701() { - if (jj_scan_token(GT)) return true; - return false; - } - - private boolean jj_3_700() { - if (jj_scan_token(EQ)) return true; - return false; - } - - private boolean jj_3R_105() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_700()) { - jj_scanpos = xsp; - if (jj_3_701()) { - jj_scanpos = xsp; - if (jj_3_702()) { - jj_scanpos = xsp; - if (jj_3_703()) { - jj_scanpos = xsp; - if (jj_3_704()) { - jj_scanpos = xsp; - if (jj_3_705()) { - jj_scanpos = xsp; - if (jj_3_706()) { - jj_scanpos = xsp; - if (jj_3_707()) { - jj_scanpos = xsp; - if (jj_3_708()) { - jj_scanpos = xsp; - if (jj_3_709()) { - jj_scanpos = xsp; - if (jj_3_710()) { - jj_scanpos = xsp; - if (jj_3_711()) { - jj_scanpos = xsp; - if (jj_3_712()) { - jj_scanpos = xsp; - if (jj_3_713()) { - jj_scanpos = xsp; - if (jj_3_714()) { - jj_scanpos = xsp; - if (jj_3_715()) { - jj_scanpos = xsp; - if (jj_3_716()) { - jj_scanpos = xsp; - if (jj_3_717()) { - jj_scanpos = xsp; - if (jj_3_718()) { - jj_scanpos = xsp; - if (jj_3_719()) { - jj_scanpos = xsp; - if (jj_3_720()) { - jj_scanpos = xsp; - if (jj_3_721()) { - jj_scanpos = xsp; - if (jj_3_722()) { - jj_scanpos = xsp; - if (jj_3_723()) { - jj_scanpos = xsp; - if (jj_3_724()) { - jj_scanpos = xsp; - if (jj_3_725()) { - jj_scanpos = xsp; - if (jj_3_726()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_695() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_164() { - if (jj_scan_token(GROUP)) return true; - if (jj_scan_token(BY)) return true; - return false; - } - - private boolean jj_3_694() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_696() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_694()) { - jj_scanpos = xsp; - if (jj_3_695()) return true; - } - return false; - } - - private boolean jj_3_692() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_691() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_693() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_691()) { - jj_scanpos = xsp; - if (jj_3_692()) return true; - } - return false; - } - - private boolean jj_3_699() { - if (jj_scan_token(EXCEPT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_696()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_689() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_688() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_690() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_688()) { - jj_scanpos = xsp; - if (jj_3_689()) return true; - } - return false; - } - - private boolean jj_3_698() { - if (jj_scan_token(INTERSECT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_693()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_697() { - if (jj_scan_token(UNION)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_690()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_163() { - if (jj_scan_token(WHERE)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_154() { - if (jj_scan_token(MULTISET)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_697()) { - jj_scanpos = xsp; - if (jj_3_698()) { - jj_scanpos = xsp; - if (jj_3_699()) return true; - } - } - return false; - } - - private boolean jj_3R_153() { - return false; - } - - private boolean jj_3_684() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_683() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_682() { - if (jj_scan_token(SET_MINUS)) return true; - return false; - } - - private boolean jj_3_681() { - if (jj_scan_token(EXCEPT)) return true; - return false; - } - - private boolean jj_3_162() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_83() { - return false; - } - - private boolean jj_3R_152() { - return false; - } - - private boolean jj_3_680() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_687() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_681()) { - jj_scanpos = xsp; - if (jj_3_682()) return true; - } - xsp = jj_scanpos; - if (jj_3_683()) { - jj_scanpos = xsp; - if (jj_3_684()) { - jj_scanpos = xsp; - if (jj_3R_153()) return true; - } - } - return false; - } - - private boolean jj_3_159() { - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3_679() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3R_151() { - return false; - } - - private boolean jj_3_161() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_159()) { - jj_scanpos = xsp; - if (jj_3R_83()) return true; - } - if (jj_3R_82()) return true; - return false; - } - - private boolean jj_3_678() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_686() { - if (jj_scan_token(INTERSECT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_679()) { - jj_scanpos = xsp; - if (jj_3_680()) { - jj_scanpos = xsp; - if (jj_3R_152()) return true; - } - } - return false; - } - - private boolean jj_3_677() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_160() { - if (jj_scan_token(LPAREN)) return true; - if (jj_scan_token(ROW)) return true; - if (jj_3R_82()) return true; - return false; - } - - private boolean jj_3_685() { - if (jj_scan_token(UNION)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_677()) { - jj_scanpos = xsp; - if (jj_3_678()) { - jj_scanpos = xsp; - if (jj_3R_151()) return true; - } - } - return false; - } - - private boolean jj_3R_98() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_685()) { - jj_scanpos = xsp; - if (jj_3_686()) { - jj_scanpos = xsp; - if (jj_3_687()) return true; - } - } - return false; - } - - private boolean jj_3R_81() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_160()) { - jj_scanpos = xsp; - if (jj_3_161()) { - jj_scanpos = xsp; - if (jj_3_162()) return true; - } - } - return false; - } - - private boolean jj_3_673() { - if (jj_3R_76()) return true; - return false; - } - - private boolean jj_3_672() { - if (jj_scan_token(LPAREN)) return true; - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_158() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_81()) return true; - return false; - } - - private boolean jj_3_671() { - if (jj_scan_token(LPAREN)) return true; - if (jj_scan_token(STAR)) return true; - return false; - } - - private boolean jj_3_670() { - if (jj_3R_78()) return true; - return false; - } - - private boolean jj_3_669() { - if (jj_3R_150()) return true; - return false; - } - - private boolean jj_3R_156() { - if (jj_3R_81()) return true; - return false; - } - - private boolean jj_3_668() { - if (jj_3R_149()) return true; - return false; - } - - private boolean jj_3_667() { - if (jj_scan_token(TRUNCATE)) return true; - return false; - } - - private boolean jj_3_666() { - if (jj_scan_token(INSERT)) return true; - return false; - } - - private boolean jj_3_676() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_666()) { - jj_scanpos = xsp; - if (jj_3_667()) { - jj_scanpos = xsp; - if (jj_3_668()) { - jj_scanpos = xsp; - if (jj_3_669()) { - jj_scanpos = xsp; - if (jj_3_670()) return true; - } - } - } - } - xsp = jj_scanpos; - if (jj_3_671()) { - jj_scanpos = xsp; - if (jj_3_672()) { - jj_scanpos = xsp; - if (jj_3_673()) return true; - } - } - return false; - } - - private boolean jj_3R_39() { - if (jj_scan_token(VALUES)) return true; - if (jj_3R_156()) return true; - return false; - } - - private boolean jj_3_675() { - if (jj_scan_token(CONVERT)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_674() { - if (jj_3R_140()) return true; - return false; - } - - private boolean jj_3R_40() { - if (jj_scan_token(TABLE)) return true; - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3R_172() { - if (jj_3R_139()) return true; - return false; - } - - private boolean jj_3R_113() { - if (jj_scan_token(LBRACE_FN)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_172()) { - jj_scanpos = xsp; - if (jj_3_674()) { - jj_scanpos = xsp; - if (jj_3_675()) { - jj_scanpos = xsp; - if (jj_3_676()) return true; - } - } - } - return false; - } - - private boolean jj_3_665() { - if (jj_scan_token(USER)) return true; - return false; - } - - private boolean jj_3_664() { - if (jj_scan_token(SYSTEM_USER)) return true; - return false; - } - - private boolean jj_3_663() { - if (jj_scan_token(SESSION_USER)) return true; - return false; - } - - private boolean jj_3_662() { - if (jj_scan_token(LOCALTIMESTAMP)) return true; - return false; - } - - private boolean jj_3_157() { - if (jj_scan_token(SPECIFIC)) return true; - return false; - } - - private boolean jj_3_661() { - if (jj_scan_token(LOCALTIME)) return true; - return false; - } - - private boolean jj_3_660() { - if (jj_scan_token(CURRENT_USER)) return true; - return false; - } - - private boolean jj_3_659() { - if (jj_scan_token(CURRENT_TIMESTAMP)) return true; - return false; - } - - private boolean jj_3_658() { - if (jj_scan_token(CURRENT_TIME)) return true; - return false; - } - - private boolean jj_3_657() { - if (jj_scan_token(CURRENT_SCHEMA)) return true; - return false; - } - - private boolean jj_3_656() { - if (jj_scan_token(CURRENT_ROLE)) return true; - return false; - } - - private boolean jj_3_655() { - if (jj_scan_token(CURRENT_PATH)) return true; - return false; - } - - private boolean jj_3_654() { - if (jj_scan_token(CURRENT_DEFAULT_TRANSFORM_GROUP)) return true; - return false; - } - - private boolean jj_3_653() { - if (jj_scan_token(CURRENT_DATE)) return true; - return false; - } - - private boolean jj_3_652() { - if (jj_scan_token(CURRENT_CATALOG)) return true; - return false; - } - - private boolean jj_3R_119() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_652()) { - jj_scanpos = xsp; - if (jj_3_653()) { - jj_scanpos = xsp; - if (jj_3_654()) { - jj_scanpos = xsp; - if (jj_3_655()) { - jj_scanpos = xsp; - if (jj_3_656()) { - jj_scanpos = xsp; - if (jj_3_657()) { - jj_scanpos = xsp; - if (jj_3_658()) { - jj_scanpos = xsp; - if (jj_3_659()) { - jj_scanpos = xsp; - if (jj_3_660()) { - jj_scanpos = xsp; - if (jj_3_661()) { - jj_scanpos = xsp; - if (jj_3_662()) { - jj_scanpos = xsp; - if (jj_3_663()) { - jj_scanpos = xsp; - if (jj_3_664()) { - jj_scanpos = xsp; - if (jj_3_665()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_155() { - if (jj_scan_token(NOT)) return true; - if (jj_scan_token(NULL)) return true; - return false; - } - - private boolean jj_3_651() { - if (jj_scan_token(YEAR)) return true; - return false; - } - - private boolean jj_3_650() { - if (jj_scan_token(VAR_SAMP)) return true; - return false; - } - - private boolean jj_3_649() { - if (jj_scan_token(VAR_POP)) return true; - return false; - } - - private boolean jj_3_648() { - if (jj_scan_token(USER)) return true; - return false; - } - - private boolean jj_3_647() { - if (jj_scan_token(TRUNCATE)) return true; - return false; - } - - private boolean jj_3_646() { - if (jj_scan_token(UPPER)) return true; - return false; - } - - private boolean jj_3_156() { - if (jj_3R_80()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_155()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_645() { - if (jj_scan_token(SUM)) return true; - return false; - } - - private boolean jj_3_644() { - if (jj_scan_token(STDDEV_SAMP)) return true; - return false; - } - - private boolean jj_3_643() { - if (jj_scan_token(STDDEV_POP)) return true; - return false; - } - - private boolean jj_3_642() { - if (jj_scan_token(SQRT)) return true; - return false; - } - - private boolean jj_3_641() { - if (jj_scan_token(SECOND)) return true; - return false; - } - - private boolean jj_3_640() { - if (jj_scan_token(ROW_NUMBER)) return true; - return false; - } - - private boolean jj_3R_133() { - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_639() { - if (jj_scan_token(REGR_SYY)) return true; - return false; - } - - private boolean jj_3_638() { - if (jj_scan_token(REGR_SXX)) return true; - return false; - } - - private boolean jj_3_637() { - if (jj_scan_token(RANK)) return true; - return false; - } - - private boolean jj_3_636() { - if (jj_scan_token(POWER)) return true; - return false; - } - - private boolean jj_3_635() { - if (jj_scan_token(PERCENT_RANK)) return true; - return false; - } - - private boolean jj_3_634() { - if (jj_scan_token(OCTET_LENGTH)) return true; - return false; - } - - private boolean jj_3_633() { - if (jj_scan_token(NULLIF)) return true; - return false; - } - - private boolean jj_3_632() { - if (jj_scan_token(NTILE)) return true; - return false; - } - - private boolean jj_3_631() { - if (jj_scan_token(MONTH)) return true; - return false; - } - - private boolean jj_3_630() { - if (jj_scan_token(MOD)) return true; - return false; - } - - private boolean jj_3_629() { - if (jj_scan_token(MINUTE)) return true; - return false; - } - - private boolean jj_3_628() { - if (jj_scan_token(MIN)) return true; - return false; - } - - private boolean jj_3_627() { - if (jj_scan_token(MAX)) return true; - return false; - } - - private boolean jj_3_626() { - if (jj_scan_token(LOWER)) return true; - return false; - } - - private boolean jj_3_625() { - if (jj_scan_token(LOCALTIMESTAMP)) return true; - return false; - } - - private boolean jj_3_624() { - if (jj_scan_token(LOCALTIME)) return true; - return false; - } - - private boolean jj_3_154() { - if (jj_scan_token(NOT)) return true; - if (jj_scan_token(NULL)) return true; - return false; - } - - private boolean jj_3_623() { - if (jj_scan_token(LN)) return true; - return false; - } - - private boolean jj_3_622() { - if (jj_scan_token(LAST_VALUE)) return true; - return false; - } - - private boolean jj_3_621() { - if (jj_scan_token(LEAD)) return true; - return false; - } - - private boolean jj_3_620() { - if (jj_scan_token(LAG)) return true; - return false; - } - - private boolean jj_3_619() { - if (jj_scan_token(HOUR)) return true; - return false; - } - - private boolean jj_3_618() { - if (jj_scan_token(GROUPING)) return true; - return false; - } - - private boolean jj_3_617() { - if (jj_scan_token(FUSION)) return true; - return false; - } - - private boolean jj_3R_79() { - if (jj_3R_61()) return true; - if (jj_3R_80()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_154()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_616() { - if (jj_scan_token(FLOOR)) return true; - return false; - } - - private boolean jj_3_615() { - if (jj_scan_token(FIRST_VALUE)) return true; - return false; - } - - private boolean jj_3_614() { - if (jj_scan_token(EXP)) return true; - return false; - } - - private boolean jj_3_613() { - if (jj_scan_token(ELEMENT)) return true; - return false; - } - - private boolean jj_3_612() { - if (jj_scan_token(DENSE_RANK)) return true; - return false; - } - - private boolean jj_3_611() { - if (jj_scan_token(CURRENT_TIMESTAMP)) return true; - return false; - } - - private boolean jj_3_610() { - if (jj_scan_token(CURRENT_TIME)) return true; - return false; - } - - private boolean jj_3_609() { - if (jj_scan_token(CURRENT_DATE)) return true; - return false; - } - - private boolean jj_3_608() { - if (jj_scan_token(COUNT)) return true; - return false; - } - - private boolean jj_3_607() { - if (jj_scan_token(CUME_DIST)) return true; - return false; - } - - private boolean jj_3_153() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_79()) return true; - return false; - } - - private boolean jj_3_606() { - if (jj_scan_token(COVAR_SAMP)) return true; - return false; - } - - private boolean jj_3_605() { - if (jj_scan_token(COVAR_POP)) return true; - return false; - } - - private boolean jj_3_604() { - if (jj_scan_token(COLLECT)) return true; - return false; - } - - private boolean jj_3_603() { - if (jj_scan_token(COALESCE)) return true; - return false; - } - - private boolean jj_3_602() { - if (jj_scan_token(CHARACTER_LENGTH)) return true; - return false; - } - - private boolean jj_3_601() { - if (jj_scan_token(CHAR_LENGTH)) return true; - return false; - } - - private boolean jj_3_600() { - if (jj_scan_token(CEILING)) return true; - return false; - } - - private boolean jj_3R_64() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_79()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_153()) { jj_scanpos = xsp; break; } - } - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_599() { - if (jj_scan_token(CARDINALITY)) return true; - return false; - } - - private boolean jj_3_598() { - if (jj_scan_token(AVG)) return true; - return false; - } - - private boolean jj_3_597() { - if (jj_scan_token(ABS)) return true; - return false; - } - - private boolean jj_3R_149() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_597()) { - jj_scanpos = xsp; - if (jj_3_598()) { - jj_scanpos = xsp; - if (jj_3_599()) { - jj_scanpos = xsp; - if (jj_3_600()) { - jj_scanpos = xsp; - if (jj_3_601()) { - jj_scanpos = xsp; - if (jj_3_602()) { - jj_scanpos = xsp; - if (jj_3_603()) { - jj_scanpos = xsp; - if (jj_3_604()) { - jj_scanpos = xsp; - if (jj_3_605()) { - jj_scanpos = xsp; - if (jj_3_606()) { - jj_scanpos = xsp; - if (jj_3_607()) { - jj_scanpos = xsp; - if (jj_3_608()) { - jj_scanpos = xsp; - if (jj_3_609()) { - jj_scanpos = xsp; - if (jj_3_610()) { - jj_scanpos = xsp; - if (jj_3_611()) { - jj_scanpos = xsp; - if (jj_3_612()) { - jj_scanpos = xsp; - if (jj_3_613()) { - jj_scanpos = xsp; - if (jj_3_614()) { - jj_scanpos = xsp; - if (jj_3_615()) { - jj_scanpos = xsp; - if (jj_3_616()) { - jj_scanpos = xsp; - if (jj_3_617()) { - jj_scanpos = xsp; - if (jj_3_618()) { - jj_scanpos = xsp; - if (jj_3_619()) { - jj_scanpos = xsp; - if (jj_3_620()) { - jj_scanpos = xsp; - if (jj_3_621()) { - jj_scanpos = xsp; - if (jj_3_622()) { - jj_scanpos = xsp; - if (jj_3_623()) { - jj_scanpos = xsp; - if (jj_3_624()) { - jj_scanpos = xsp; - if (jj_3_625()) { - jj_scanpos = xsp; - if (jj_3_626()) { - jj_scanpos = xsp; - if (jj_3_627()) { - jj_scanpos = xsp; - if (jj_3_628()) { - jj_scanpos = xsp; - if (jj_3_629()) { - jj_scanpos = xsp; - if (jj_3_630()) { - jj_scanpos = xsp; - if (jj_3_631()) { - jj_scanpos = xsp; - if (jj_3_632()) { - jj_scanpos = xsp; - if (jj_3_633()) { - jj_scanpos = xsp; - if (jj_3_634()) { - jj_scanpos = xsp; - if (jj_3_635()) { - jj_scanpos = xsp; - if (jj_3_636()) { - jj_scanpos = xsp; - if (jj_3_637()) { - jj_scanpos = xsp; - if (jj_3_638()) { - jj_scanpos = xsp; - if (jj_3_639()) { - jj_scanpos = xsp; - if (jj_3_640()) { - jj_scanpos = xsp; - if (jj_3_641()) { - jj_scanpos = xsp; - if (jj_3_642()) { - jj_scanpos = xsp; - if (jj_3_643()) { - jj_scanpos = xsp; - if (jj_3_644()) { - jj_scanpos = xsp; - if (jj_3_645()) { - jj_scanpos = xsp; - if (jj_3_646()) { - jj_scanpos = xsp; - if (jj_3_647()) { - jj_scanpos = xsp; - if (jj_3_648()) { - jj_scanpos = xsp; - if (jj_3_649()) { - jj_scanpos = xsp; - if (jj_3_650()) { - jj_scanpos = xsp; - if (jj_3_651()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_596() { - if (jj_3R_149()) return true; - return false; - } - - private boolean jj_3_595() { - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3R_118() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_595()) { - jj_scanpos = xsp; - if (jj_3_596()) return true; - } - return false; - } - - private boolean jj_3_149() { - if (jj_scan_token(REPEATABLE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_150() { - if (jj_scan_token(SUBSTRING)) return true; - return false; - } - - private boolean jj_3_148() { - if (jj_scan_token(SYSTEM)) return true; - return false; - } - - private boolean jj_3_147() { - if (jj_scan_token(BERNOULLI)) return true; - return false; - } - - private boolean jj_3_593() { - if (jj_3R_147()) return true; - return false; - } - - private boolean jj_3_151() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_147()) { - jj_scanpos = xsp; - if (jj_3_148()) return true; - } - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_592() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_594() { - if (jj_scan_token(OVER)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_592()) { - jj_scanpos = xsp; - if (jj_3_593()) return true; - } - return false; - } - - private boolean jj_3_150() { - if (jj_scan_token(SUBSTITUTE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_152() { - if (jj_scan_token(TABLESAMPLE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_150()) { - jj_scanpos = xsp; - if (jj_3_151()) return true; - } - return false; - } - - private boolean jj_3_591() { - if (jj_scan_token(TO)) return true; - if (jj_3R_148()) return true; - return false; - } - - private boolean jj_3R_177() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_145() { - if (jj_3R_68()) return true; - return false; - } - - private boolean jj_3_144() { - if (jj_scan_token(AS)) return true; - return false; - } - - private boolean jj_3_146() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_144()) jj_scanpos = xsp; - if (jj_3R_78()) return true; - xsp = jj_scanpos; - if (jj_3_145()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_143() { - if (jj_3R_77()) return true; - return false; - } - - private boolean jj_3_589() { - if (jj_3R_147()) return true; - return false; - } - - private boolean jj_3_588() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_138() { - if (jj_scan_token(LATERAL)) return true; - return false; - } - - private boolean jj_3_142() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_138()) jj_scanpos = xsp; - if (jj_scan_token(TABLE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_590() { - if (jj_scan_token(OVER)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_588()) { - jj_scanpos = xsp; - if (jj_3_589()) return true; - } - return false; - } - - private boolean jj_3_137() { - if (jj_scan_token(WITH)) return true; - if (jj_scan_token(ORDINALITY)) return true; - return false; - } - - private boolean jj_3_587() { - if (jj_scan_token(FILTER)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_141() { - if (jj_scan_token(UNNEST)) return true; - if (jj_3R_76()) return true; - return false; - } - - private boolean jj_3_136() { - if (jj_3R_73()) return true; - return false; - } - - private boolean jj_3_586() { - if (jj_3R_146()) return true; - return false; - } - - private boolean jj_3_585() { - if (jj_scan_token(LPAREN)) return true; - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_584() { - if (jj_scan_token(LPAREN)) return true; - if (jj_scan_token(STAR)) return true; - return false; - } - - private boolean jj_3_135() { - if (jj_scan_token(LATERAL)) return true; - return false; - } - - private boolean jj_3_140() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_135()) jj_scanpos = xsp; - if (jj_3R_75()) return true; - return false; - } - - private boolean jj_3R_184() { - return false; - } - - private boolean jj_3_134() { - if (jj_3R_73()) return true; - return false; - } - - private boolean jj_3_583() { - if (jj_scan_token(SPECIFIC)) return true; - return false; - } - - private boolean jj_3R_179() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_583()) { - jj_scanpos = xsp; - if (jj_3R_184()) return true; - } - if (jj_3R_118()) return true; - return false; - } - - private boolean jj_3_132() { - if (jj_scan_token(EXTEND)) return true; - return false; - } - - private boolean jj_3_133() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_132()) jj_scanpos = xsp; - if (jj_3R_64()) return true; - return false; - } - - private boolean jj_3_139() { - if (jj_3R_61()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_133()) jj_scanpos = xsp; - if (jj_3R_74()) return true; - xsp = jj_scanpos; - if (jj_3_134()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3R_166() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_139()) { - jj_scanpos = xsp; - if (jj_3_140()) { - jj_scanpos = xsp; - if (jj_3_141()) { - jj_scanpos = xsp; - if (jj_3_142()) { - jj_scanpos = xsp; - if (jj_3_143()) return true; - } - } - } - } - return false; - } - - private boolean jj_3_582() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_125()) return true; - return false; - } - - private boolean jj_3_581() { - if (jj_scan_token(NEXT)) return true; - return false; - } - - private boolean jj_3_580() { - if (jj_scan_token(PREV)) return true; - return false; - } - - private boolean jj_3R_72() { - if (jj_3R_166()) return true; - return false; - } - - private boolean jj_3R_144() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_580()) { - jj_scanpos = xsp; - if (jj_3_581()) return true; - } - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_579() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_125()) return true; - return false; - } - - private boolean jj_3_578() { - if (jj_scan_token(LAST)) return true; - return false; - } - - private boolean jj_3_577() { - if (jj_scan_token(FIRST)) return true; - return false; - } - - private boolean jj_3_131() { - if (jj_scan_token(OUTER)) return true; - if (jj_scan_token(APPLY)) return true; - return false; - } - - private boolean jj_3R_178() { - return false; - } - - private boolean jj_3_576() { - if (jj_scan_token(FINAL)) return true; - return false; - } - - private boolean jj_3_575() { - if (jj_scan_token(RUNNING)) return true; - return false; - } - - private boolean jj_3R_143() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_575()) { - jj_scanpos = xsp; - if (jj_3_576()) { - jj_scanpos = xsp; - if (jj_3R_178()) return true; - } - } - xsp = jj_scanpos; - if (jj_3_577()) { - jj_scanpos = xsp; - if (jj_3_578()) return true; - } - return false; - } - - private boolean jj_3_130() { - if (jj_scan_token(CROSS)) return true; - if (jj_scan_token(APPLY)) return true; - return false; - } - - private boolean jj_3_129() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_72()) return true; - return false; - } - - private boolean jj_3_574() { - if (jj_scan_token(FINAL)) return true; - return false; - } - - private boolean jj_3_573() { - if (jj_scan_token(RUNNING)) return true; - return false; - } - - private boolean jj_3R_145() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_573()) { - jj_scanpos = xsp; - if (jj_3_574()) return true; - } - if (jj_3R_179()) return true; - return false; - } - - private boolean jj_3_572() { - if (jj_3R_145()) return true; - return false; - } - - private boolean jj_3_571() { - if (jj_3R_144()) return true; - return false; - } - - private boolean jj_3_570() { - if (jj_3R_143()) return true; - return false; - } - - private boolean jj_3_569() { - if (jj_scan_token(MATCH_NUMBER)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_127() { - if (jj_scan_token(USING)) return true; - if (jj_3R_68()) return true; - return false; - } - - private boolean jj_3_568() { - if (jj_scan_token(CLASSIFIER)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_142() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_568()) { - jj_scanpos = xsp; - if (jj_3_569()) { - jj_scanpos = xsp; - if (jj_3_570()) { - jj_scanpos = xsp; - if (jj_3_571()) { - jj_scanpos = xsp; - if (jj_3_572()) return true; - } - } - } - } - return false; - } - - private boolean jj_3_126() { - if (jj_scan_token(ON)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_128() { - if (jj_3R_70()) return true; - if (jj_3R_71()) return true; - return false; - } - - private boolean jj_3_125() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_128()) { - jj_scanpos = xsp; - if (jj_3_129()) { - jj_scanpos = xsp; - if (jj_3_130()) { - jj_scanpos = xsp; - if (jj_3_131()) return true; - } - } - } - return false; - } - - private boolean jj_3R_140() { - if (jj_scan_token(TIMESTAMPDIFF)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_59() { - if (jj_3R_72()) return true; - return false; - } - - private boolean jj_3R_139() { - if (jj_scan_token(TIMESTAMPADD)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_567() { - if (jj_3R_142()) return true; - return false; - } - - private boolean jj_3_566() { - if (jj_3R_141()) return true; - return false; - } - - private boolean jj_3_565() { - if (jj_3R_140()) return true; - return false; - } - - private boolean jj_3_124() { - if (jj_scan_token(USING)) return true; - if (jj_3R_68()) return true; - return false; - } - - private boolean jj_3_564() { - if (jj_3R_139()) return true; - return false; - } - - private boolean jj_3_123() { - if (jj_scan_token(ON)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_552() { - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_116() { - if (jj_scan_token(OUTER)) return true; - return false; - } - - private boolean jj_3_115() { - if (jj_scan_token(OUTER)) return true; - return false; - } - - private boolean jj_3_551() { - if (jj_scan_token(FROM)) return true; - return false; - } - - private boolean jj_3_114() { - if (jj_scan_token(OUTER)) return true; - return false; - } - - private boolean jj_3_550() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_122() { - if (jj_scan_token(CROSS)) return true; - if (jj_scan_token(JOIN)) return true; - return false; - } - - private boolean jj_3_121() { - if (jj_scan_token(FULL)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_116()) jj_scanpos = xsp; - if (jj_scan_token(JOIN)) return true; - return false; - } - - private boolean jj_3_548() { - if (jj_scan_token(LEADING)) return true; - return false; - } - - private boolean jj_3_120() { - if (jj_scan_token(RIGHT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_115()) jj_scanpos = xsp; - if (jj_scan_token(JOIN)) return true; - return false; - } - - private boolean jj_3_119() { - if (jj_scan_token(LEFT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_114()) jj_scanpos = xsp; - if (jj_scan_token(JOIN)) return true; - return false; - } - - private boolean jj_3_547() { - if (jj_scan_token(TRAILING)) return true; - return false; - } - - private boolean jj_3_118() { - if (jj_scan_token(INNER)) return true; - if (jj_scan_token(JOIN)) return true; - return false; - } - - private boolean jj_3_117() { - if (jj_scan_token(JOIN)) return true; - return false; - } - - private boolean jj_3_549() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_546()) { - jj_scanpos = xsp; - if (jj_3_547()) { - jj_scanpos = xsp; - if (jj_3_548()) return true; - } - } - return false; - } - - private boolean jj_3_546() { - if (jj_scan_token(BOTH)) return true; - return false; - } - - private boolean jj_3R_71() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_117()) { - jj_scanpos = xsp; - if (jj_3_118()) { - jj_scanpos = xsp; - if (jj_3_119()) { - jj_scanpos = xsp; - if (jj_3_120()) { - jj_scanpos = xsp; - if (jj_3_121()) { - jj_scanpos = xsp; - if (jj_3_122()) return true; - } - } - } - } - } - return false; - } - - private boolean jj_3_553() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_549()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_550()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_551()) { - jj_scanpos = xsp; - if (jj_3_552()) return true; - } - return false; - } - - private boolean jj_3R_165() { - return false; - } - - private boolean jj_3_113() { - if (jj_scan_token(NATURAL)) return true; - return false; - } - - private boolean jj_3R_70() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_113()) { - jj_scanpos = xsp; - if (jj_3R_165()) return true; - } - return false; - } - - private boolean jj_3_544() { - if (jj_scan_token(COMMA)) return true; - return false; - } - - private boolean jj_3_563() { - if (jj_scan_token(TRIM)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_542() { - if (jj_scan_token(COMMA)) return true; - return false; - } - - private boolean jj_3_543() { - if (jj_scan_token(FOR)) return true; - return false; - } - - private boolean jj_3_112() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_545() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_543()) { - jj_scanpos = xsp; - if (jj_3_544()) return true; - } - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_164() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_111()) { - jj_scanpos = xsp; - if (jj_3_112()) return true; - } - return false; - } - - private boolean jj_3_111() { - if (jj_scan_token(STAR)) return true; - return false; - } - - private boolean jj_3_541() { - if (jj_scan_token(FROM)) return true; - return false; - } - - private boolean jj_3_540() { - if (jj_scan_token(CEILING)) return true; - return false; - } - - private boolean jj_3_562() { - if (jj_scan_token(SUBSTRING)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_539() { - if (jj_scan_token(CEIL)) return true; - return false; - } - - private boolean jj_3_109() { - if (jj_scan_token(AS)) return true; - return false; - } - - private boolean jj_3_561() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_539()) { - jj_scanpos = xsp; - if (jj_3_540()) return true; - } - if (jj_3R_138()) return true; - return false; - } - - private boolean jj_3_110() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_109()) jj_scanpos = xsp; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_560() { - if (jj_scan_token(FLOOR)) return true; - if (jj_3R_138()) return true; - return false; - } - - private boolean jj_3R_69() { - if (jj_3R_164()) return true; - return false; - } - - private boolean jj_3_538() { - if (jj_scan_token(FOR)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_108() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_69()) return true; - return false; - } - - private boolean jj_3_559() { - if (jj_scan_token(OVERLAY)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_535() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_537() { - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_535()) { jj_scanpos = xsp; break; } - } - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_536() { - if (jj_scan_token(USING)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_107() { - if (jj_scan_token(RPAREN)) return true; - return false; - } - - private boolean jj_3_558() { - if (jj_scan_token(TRANSLATE)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_106() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_105() { - if (jj_3R_68()) return true; - return false; - } - - private boolean jj_3_557() { - if (jj_scan_token(CONVERT)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_66() { - if (jj_scan_token(WHEN)) return true; - if (jj_scan_token(NOT)) return true; - return false; - } - - private boolean jj_3_534() { - if (jj_scan_token(FROM)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_556() { - if (jj_scan_token(POSITION)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_104() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_555() { - if (jj_scan_token(EXTRACT)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_533() { - if (jj_scan_token(INTERVAL)) return true; - if (jj_3R_108()) return true; - return false; - } - - private boolean jj_3_532() { - if (jj_3R_80()) return true; - return false; - } - - private boolean jj_3R_67() { - if (jj_scan_token(WHEN)) return true; - if (jj_scan_token(MATCHED)) return true; - return false; - } - - private boolean jj_3_554() { - if (jj_scan_token(CAST)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3R_112() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_554()) { - jj_scanpos = xsp; - if (jj_3_555()) { - jj_scanpos = xsp; - if (jj_3_556()) { - jj_scanpos = xsp; - if (jj_3_557()) { - jj_scanpos = xsp; - if (jj_3_558()) { - jj_scanpos = xsp; - if (jj_3_559()) { - jj_scanpos = xsp; - if (jj_3_560()) { - jj_scanpos = xsp; - if (jj_3_561()) { - jj_scanpos = xsp; - if (jj_3_562()) { - jj_scanpos = xsp; - if (jj_3_563()) { - jj_scanpos = xsp; - if (jj_3_564()) { - jj_scanpos = xsp; - if (jj_3_565()) { - jj_scanpos = xsp; - if (jj_3_566()) { - jj_scanpos = xsp; - if (jj_3_567()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_103() { - if (jj_3R_66()) return true; - return false; - } - - private boolean jj_3_101() { - if (jj_3R_66()) return true; - return false; - } - - private boolean jj_3_102() { - if (jj_3R_67()) return true; - return false; - } - - private boolean jj_3_99() { - if (jj_scan_token(AS)) return true; - return false; - } - - private boolean jj_3_100() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_99()) jj_scanpos = xsp; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_97() { - if (jj_scan_token(EXTEND)) return true; - return false; - } - - private boolean jj_3_98() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_97()) jj_scanpos = xsp; - if (jj_3R_64()) return true; - return false; - } - - private boolean jj_3R_54() { - if (jj_scan_token(MERGE)) return true; - if (jj_scan_token(INTO)) return true; - return false; - } - - private boolean jj_3R_110() { - if (jj_scan_token(CURSOR)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_134() { - if (jj_scan_token(MULTISET)) return true; - return false; - } - - private boolean jj_3_96() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_94() { - if (jj_scan_token(AS)) return true; - return false; - } - - private boolean jj_3_95() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_94()) jj_scanpos = xsp; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_501() { - if (jj_scan_token(FLOAT)) return true; - return false; - } - - private boolean jj_3_499() { - if (jj_scan_token(DOUBLE)) return true; - return false; - } - - private boolean jj_3_92() { - if (jj_scan_token(EXTEND)) return true; - return false; - } - - private boolean jj_3_493() { - if (jj_scan_token(SMALLINT)) return true; - return false; - } - - private boolean jj_3_531() { - if (jj_scan_token(SQL_INTERVAL_SECOND)) return true; - return false; - } - - private boolean jj_3_495() { - if (jj_scan_token(BIGINT)) return true; - return false; - } - - private boolean jj_3_489() { - if (jj_scan_token(VARBINARY)) return true; - return false; - } - - private boolean jj_3_93() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_92()) jj_scanpos = xsp; - if (jj_3R_64()) return true; - return false; - } - - private boolean jj_3_530() { - if (jj_scan_token(SQL_INTERVAL_MINUTE_TO_SECOND)) return true; - return false; - } - - private boolean jj_3_491() { - if (jj_scan_token(TINYINT)) return true; - return false; - } - - private boolean jj_3_529() { - if (jj_scan_token(SQL_INTERVAL_MINUTE)) return true; - return false; - } - - private boolean jj_3_497() { - if (jj_scan_token(REAL)) return true; - return false; - } - - private boolean jj_3_528() { - if (jj_scan_token(SQL_INTERVAL_HOUR_TO_SECOND)) return true; - return false; - } - - private boolean jj_3_527() { - if (jj_scan_token(SQL_INTERVAL_HOUR_TO_MINUTE)) return true; - return false; - } - - private boolean jj_3_487() { - if (jj_scan_token(BINARY)) return true; - return false; - } - - private boolean jj_3_485() { - if (jj_scan_token(INTEGER)) return true; - return false; - } - - private boolean jj_3_526() { - if (jj_scan_token(SQL_INTERVAL_HOUR)) return true; - return false; - } - - private boolean jj_3_483() { - if (jj_scan_token(BOOLEAN)) return true; - return false; - } - - private boolean jj_3_525() { - if (jj_scan_token(SQL_INTERVAL_DAY_TO_SECOND)) return true; - return false; - } - - private boolean jj_3_481() { - if (jj_scan_token(NUMERIC)) return true; - return false; - } - - private boolean jj_3_477() { - if (jj_scan_token(TIMESTAMP)) return true; - return false; - } - - private boolean jj_3_524() { - if (jj_scan_token(SQL_INTERVAL_DAY_TO_MINUTE)) return true; - return false; - } - - private boolean jj_3_479() { - if (jj_scan_token(DECIMAL)) return true; - return false; - } - - private boolean jj_3_523() { - if (jj_scan_token(SQL_INTERVAL_DAY_TO_HOUR)) return true; - return false; - } - - private boolean jj_3_522() { - if (jj_scan_token(SQL_INTERVAL_DAY)) return true; - return false; - } - - private boolean jj_3_521() { - if (jj_scan_token(SQL_INTERVAL_MONTH)) return true; - return false; - } - - private boolean jj_3R_53() { - if (jj_scan_token(UPDATE)) return true; - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_520() { - if (jj_scan_token(SQL_INTERVAL_YEAR_TO_MONTH)) return true; - return false; - } - - private boolean jj_3_471() { - if (jj_scan_token(VARCHAR)) return true; - return false; - } - - private boolean jj_3_519() { - if (jj_scan_token(SQL_INTERVAL_YEAR)) return true; - return false; - } - - private boolean jj_3_500() { - if (jj_scan_token(SQL_FLOAT)) return true; - return false; - } - - private boolean jj_3_475() { - if (jj_scan_token(TIME)) return true; - return false; - } - - private boolean jj_3_518() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_500()) { - jj_scanpos = xsp; - if (jj_3_501()) return true; - } - return false; - } - - private boolean jj_3_498() { - if (jj_scan_token(SQL_DOUBLE)) return true; - return false; - } - - private boolean jj_3_473() { - if (jj_scan_token(DATE)) return true; - return false; - } - - private boolean jj_3_517() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_498()) { - jj_scanpos = xsp; - if (jj_3_499()) return true; - } - return false; - } - - private boolean jj_3_496() { - if (jj_scan_token(SQL_REAL)) return true; - return false; - } - - private boolean jj_3_516() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_496()) { - jj_scanpos = xsp; - if (jj_3_497()) return true; - } - return false; - } - - private boolean jj_3_494() { - if (jj_scan_token(SQL_BIGINT)) return true; - return false; - } - - private boolean jj_3_469() { - if (jj_scan_token(CHAR)) return true; - return false; - } - - private boolean jj_3_515() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_494()) { - jj_scanpos = xsp; - if (jj_3_495()) return true; - } - return false; - } - - private boolean jj_3_492() { - if (jj_scan_token(SQL_SMALLINT)) return true; - return false; - } - - private boolean jj_3_514() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_492()) { - jj_scanpos = xsp; - if (jj_3_493()) return true; - } - return false; - } - - private boolean jj_3_490() { - if (jj_scan_token(SQL_TINYINT)) return true; - return false; - } - - private boolean jj_3_513() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_490()) { - jj_scanpos = xsp; - if (jj_3_491()) return true; - } - return false; - } - - private boolean jj_3_488() { - if (jj_scan_token(SQL_VARBINARY)) return true; - return false; - } - - private boolean jj_3_512() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_488()) { - jj_scanpos = xsp; - if (jj_3_489()) return true; - } - return false; - } - - private boolean jj_3_486() { - if (jj_scan_token(SQL_BINARY)) return true; - return false; - } - - private boolean jj_3_511() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_486()) { - jj_scanpos = xsp; - if (jj_3_487()) return true; - } - return false; - } - - private boolean jj_3_484() { - if (jj_scan_token(SQL_INTEGER)) return true; - return false; - } - - private boolean jj_3_510() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_484()) { - jj_scanpos = xsp; - if (jj_3_485()) return true; - } - return false; - } - - private boolean jj_3_482() { - if (jj_scan_token(SQL_BOOLEAN)) return true; - return false; - } - - private boolean jj_3_509() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_482()) { - jj_scanpos = xsp; - if (jj_3_483()) return true; - } - return false; - } - - private boolean jj_3_480() { - if (jj_scan_token(SQL_NUMERIC)) return true; - return false; - } - - private boolean jj_3_508() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_480()) { - jj_scanpos = xsp; - if (jj_3_481()) return true; - } - return false; - } - - private boolean jj_3_478() { - if (jj_scan_token(SQL_DECIMAL)) return true; - return false; - } - - private boolean jj_3_507() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_478()) { - jj_scanpos = xsp; - if (jj_3_479()) return true; - } - return false; - } - - private boolean jj_3_476() { - if (jj_scan_token(SQL_TIMESTAMP)) return true; - return false; - } - - private boolean jj_3_506() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_476()) { - jj_scanpos = xsp; - if (jj_3_477()) return true; - } - return false; - } - - private boolean jj_3_474() { - if (jj_scan_token(SQL_TIME)) return true; - return false; - } - - private boolean jj_3_505() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_474()) { - jj_scanpos = xsp; - if (jj_3_475()) return true; - } - return false; - } - - private boolean jj_3_472() { - if (jj_scan_token(SQL_DATE)) return true; - return false; - } - - private boolean jj_3_504() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_472()) { - jj_scanpos = xsp; - if (jj_3_473()) return true; - } - return false; - } - - private boolean jj_3_470() { - if (jj_scan_token(SQL_VARCHAR)) return true; - return false; - } - - private boolean jj_3_503() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_470()) { - jj_scanpos = xsp; - if (jj_3_471()) return true; - } - return false; - } - - private boolean jj_3_468() { - if (jj_scan_token(SQL_CHAR)) return true; - return false; - } - - private boolean jj_3_502() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_468()) { - jj_scanpos = xsp; - if (jj_3_469()) return true; - } - return false; - } - - private boolean jj_3_90() { - if (jj_scan_token(AS)) return true; - return false; - } - - private boolean jj_3_91() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_90()) jj_scanpos = xsp; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_88() { - if (jj_scan_token(EXTEND)) return true; - return false; - } - - private boolean jj_3_89() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_88()) jj_scanpos = xsp; - if (jj_3R_64()) return true; - return false; - } - - private boolean jj_3_467() { - if (jj_scan_token(ANY)) return true; - return false; - } - - private boolean jj_3_466() { - if (jj_scan_token(FLOAT)) return true; - return false; - } - - private boolean jj_3_449() { - if (jj_scan_token(PRECISION)) return true; - return false; - } - - private boolean jj_3_465() { - if (jj_scan_token(DOUBLE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_449()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_464() { - if (jj_scan_token(REAL)) return true; - return false; - } - - private boolean jj_3_445() { - if (jj_scan_token(NUMERIC)) return true; - return false; - } - - private boolean jj_3R_52() { - if (jj_scan_token(DELETE)) return true; - if (jj_scan_token(FROM)) return true; - return false; - } - - private boolean jj_3_463() { - if (jj_scan_token(BIGINT)) return true; - return false; - } - - private boolean jj_3_447() { - if (jj_scan_token(INT)) return true; - return false; - } - - private boolean jj_3_462() { - if (jj_scan_token(SMALLINT)) return true; - return false; - } - - private boolean jj_3_461() { - if (jj_scan_token(TINYINT)) return true; - return false; - } - - private boolean jj_3R_137() { - return false; - } - - private boolean jj_3_460() { - if (jj_scan_token(VARBINARY)) return true; - return false; - } - - private boolean jj_3_444() { - if (jj_scan_token(DEC)) return true; - return false; - } - - private boolean jj_3_448() { - if (jj_scan_token(VARYING)) return true; - return false; - } - - private boolean jj_3_459() { - if (jj_scan_token(BINARY)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_448()) { - jj_scanpos = xsp; - if (jj_3R_137()) return true; - } - return false; - } - - private boolean jj_3_446() { - if (jj_scan_token(INTEGER)) return true; - return false; - } - - private boolean jj_3_458() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_446()) { - jj_scanpos = xsp; - if (jj_3_447()) return true; - } - return false; - } - - private boolean jj_3_457() { - if (jj_scan_token(BOOLEAN)) return true; - return false; - } - - private boolean jj_3_443() { - if (jj_scan_token(DECIMAL)) return true; - return false; - } - - private boolean jj_3_456() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_443()) { - jj_scanpos = xsp; - if (jj_3_444()) { - jj_scanpos = xsp; - if (jj_3_445()) return true; - } - } - return false; - } - - private boolean jj_3_455() { - if (jj_scan_token(GEOMETRY)) return true; - return false; - } - - private boolean jj_3_441() { - if (jj_scan_token(CHAR)) return true; - return false; - } - - private boolean jj_3_454() { - if (jj_scan_token(TIMESTAMP)) return true; - return false; - } - - private boolean jj_3_453() { - if (jj_scan_token(TIME)) return true; - return false; - } - - private boolean jj_3_87() { - if (jj_3R_65()) return true; - return false; - } - - private boolean jj_3_452() { - if (jj_scan_token(DATE)) return true; - return false; - } - - private boolean jj_3R_136() { - return false; - } - - private boolean jj_3_451() { - if (jj_scan_token(VARCHAR)) return true; - return false; - } - - private boolean jj_3_442() { - if (jj_scan_token(VARYING)) return true; - return false; - } - - private boolean jj_3_85() { - if (jj_scan_token(EXTEND)) return true; - return false; - } - - private boolean jj_3_86() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_85()) jj_scanpos = xsp; - if (jj_3R_64()) return true; - return false; - } - - private boolean jj_3_440() { - if (jj_scan_token(CHARACTER)) return true; - return false; - } - - private boolean jj_3_450() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_440()) { - jj_scanpos = xsp; - if (jj_3_441()) return true; - } - xsp = jj_scanpos; - if (jj_3_442()) { - jj_scanpos = xsp; - if (jj_3R_136()) return true; - } - return false; - } - - private boolean jj_3R_135() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_450()) { - jj_scanpos = xsp; - if (jj_3_451()) { - jj_scanpos = xsp; - if (jj_3_452()) { - jj_scanpos = xsp; - if (jj_3_453()) { - jj_scanpos = xsp; - if (jj_3_454()) { - jj_scanpos = xsp; - if (jj_3_455()) { - jj_scanpos = xsp; - if (jj_3_456()) { - jj_scanpos = xsp; - if (jj_3_457()) { - jj_scanpos = xsp; - if (jj_3_458()) { - jj_scanpos = xsp; - if (jj_3_459()) { - jj_scanpos = xsp; - if (jj_3_460()) { - jj_scanpos = xsp; - if (jj_3_461()) { - jj_scanpos = xsp; - if (jj_3_462()) { - jj_scanpos = xsp; - if (jj_3_463()) { - jj_scanpos = xsp; - if (jj_3_464()) { - jj_scanpos = xsp; - if (jj_3_465()) { - jj_scanpos = xsp; - if (jj_3_466()) { - jj_scanpos = xsp; - if (jj_3_467()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_84() { - if (jj_scan_token(UPSERT)) return true; - return false; - } - - private boolean jj_3_83() { - if (jj_scan_token(INSERT)) return true; - return false; - } - - private boolean jj_3_439() { - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_438() { - if (jj_3R_134()) return true; - return false; - } - - private boolean jj_3R_51() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_83()) { - jj_scanpos = xsp; - if (jj_3_84()) return true; - } - if (jj_3R_160()) return true; - return false; - } - - private boolean jj_3_437() { - if (jj_3R_135()) return true; - return false; - } - - private boolean jj_3R_168() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_437()) { - jj_scanpos = xsp; - if (jj_3_438()) { - jj_scanpos = xsp; - if (jj_3_439()) return true; - } - } - return false; - } - - private boolean jj_3_81() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_44()) return true; - return false; - } - - private boolean jj_3_82() { - if (jj_3R_63()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_81()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3_436() { - if (jj_3R_134()) return true; - return false; - } - - private boolean jj_3R_161() { - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_435() { - if (jj_scan_token(CHARACTER)) return true; - if (jj_scan_token(SET)) return true; - return false; - } - - private boolean jj_3_433() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_434() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3R_80() { - if (jj_3R_168()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_434()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_435()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_436()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3R_55() { - if (jj_scan_token(CALL)) return true; - if (jj_3R_161()) return true; - return false; - } - - private boolean jj_3_74() { - if (jj_scan_token(SCHEMA)) return true; - return false; - } - - private boolean jj_3_432() { - if (jj_scan_token(MINUS)) return true; - if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; - return false; - } - - private boolean jj_3_77() { - if (jj_scan_token(STATEMENT)) return true; - return false; - } - - private boolean jj_3_80() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_77()) jj_scanpos = xsp; - if (jj_3R_62()) return true; - return false; - } - - private boolean jj_3_79() { - Token xsp; - xsp = jj_scanpos; - if (jj_scan_token(561)) { - jj_scanpos = xsp; - if (jj_scan_token(706)) { - jj_scanpos = xsp; - if (jj_scan_token(703)) { - jj_scanpos = xsp; - if (jj_scan_token(704)) { - jj_scanpos = xsp; - if (jj_scan_token(702)) return true; - } - } - } - } - return false; - } - - private boolean jj_3_430() { - if (jj_scan_token(PLUS)) return true; - if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; - return false; - } - - private boolean jj_3_76() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_429() { - if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; - return false; - } - - private boolean jj_3_73() { - if (jj_scan_token(CATALOG)) return true; - return false; - } - - private boolean jj_3_75() { - if (jj_scan_token(TABLE)) return true; - return false; - } - - private boolean jj_3_431() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_429()) { - jj_scanpos = xsp; - if (jj_3_430()) return true; - } - return false; - } - - private boolean jj_3R_159() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_75()) jj_scanpos = xsp; - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_72() { - if (jj_scan_token(DATABASE)) return true; - return false; - } - - private boolean jj_3_78() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_72()) { - jj_scanpos = xsp; - if (jj_3_73()) { - jj_scanpos = xsp; - if (jj_3_74()) return true; - } - } - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3R_131() { - if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; - return false; - } - - private boolean jj_3R_50() { - if (jj_scan_token(DESCRIBE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_78()) { - jj_scanpos = xsp; - if (jj_3R_159()) { - jj_scanpos = xsp; - if (jj_3_80()) return true; - } - } - return false; - } - - private boolean jj_3R_120() { - if (jj_scan_token(NEW)) return true; - if (jj_3R_161()) return true; - return false; - } - - private boolean jj_3_69() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_71() { - if (jj_scan_token(INCLUDING)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_69()) jj_scanpos = xsp; - if (jj_scan_token(ATTRIBUTES)) return true; - return false; - } - - private boolean jj_3_70() { - if (jj_scan_token(EXCLUDING)) return true; - if (jj_scan_token(ATTRIBUTES)) return true; - return false; - } - - private boolean jj_3R_65() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_162()) return true; - return false; - } - - private boolean jj_3R_60() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_70()) { - jj_scanpos = xsp; - if (jj_3_71()) return true; - } - return false; - } - - private boolean jj_3_428() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_133()) return true; - return false; - } - - private boolean jj_3R_162() { - if (jj_3R_133()) return true; - return false; - } - - private boolean jj_3_68() { - if (jj_scan_token(WITHOUT)) return true; - if (jj_scan_token(IMPLEMENTATION)) return true; - return false; - } - - private boolean jj_3_67() { - if (jj_scan_token(WITH)) return true; - if (jj_scan_token(IMPLEMENTATION)) return true; - return false; - } - - private boolean jj_3_66() { - if (jj_scan_token(WITH)) return true; - if (jj_scan_token(TYPE)) return true; - return false; - } - - private boolean jj_3_427() { - if (jj_scan_token(DOT)) return true; - if (jj_scan_token(STAR)) return true; - return false; - } - - private boolean jj_3_426() { - if (jj_scan_token(DOT)) return true; - if (jj_3R_78()) return true; - return false; - } - - private boolean jj_3_65() { - if (jj_3R_54()) return true; - return false; - } - - private boolean jj_3_64() { - if (jj_3R_53()) return true; - return false; - } - - private boolean jj_3_63() { - if (jj_3R_52()) return true; - return false; - } - - private boolean jj_3_62() { - if (jj_3R_51()) return true; - return false; - } - - private boolean jj_3_61() { - if (jj_3R_42()) return true; - return false; - } - - private boolean jj_3R_61() { - if (jj_3R_78()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_426()) { jj_scanpos = xsp; break; } - } - xsp = jj_scanpos; - if (jj_3_427()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3R_62() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_61()) { - jj_scanpos = xsp; - if (jj_3_62()) { - jj_scanpos = xsp; - if (jj_3_63()) { - jj_scanpos = xsp; - if (jj_3_64()) { - jj_scanpos = xsp; - if (jj_3_65()) return true; - } - } - } - } - return false; - } - - private boolean jj_3R_68() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_163()) return true; - return false; - } - - private boolean jj_3_60() { - if (jj_scan_token(AS)) return true; - if (jj_scan_token(JSON)) return true; - return false; - } - - private boolean jj_3_59() { - if (jj_scan_token(AS)) return true; - if (jj_scan_token(XML)) return true; - return false; - } - - private boolean jj_3_58() { - if (jj_3R_60()) return true; - return false; - } - - private boolean jj_3_425() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3R_49() { - if (jj_scan_token(EXPLAIN)) return true; - if (jj_scan_token(PLAN)) return true; - return false; - } - - private boolean jj_3R_163() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3R_45() { - if (jj_3R_78()) return true; - return false; - } - - private boolean jj_3_424() { - if (jj_3R_132()) return true; - return false; - } - - private boolean jj_3_57() { - if (jj_scan_token(FROM)) return true; - if (jj_3R_59()) return true; - return false; - } - - private boolean jj_3_418() { - if (jj_scan_token(UESCAPE)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_55() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_54() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_56() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_54()) { - jj_scanpos = xsp; - if (jj_3_55()) return true; - } - return false; - } - - private boolean jj_3_423() { - if (jj_scan_token(UNICODE_QUOTED_IDENTIFIER)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_418()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_53() { - if (jj_scan_token(STREAM)) return true; - return false; - } - - private boolean jj_3_422() { - if (jj_scan_token(BRACKET_QUOTED_IDENTIFIER)) return true; - return false; - } - - private boolean jj_3_421() { - if (jj_scan_token(BACK_QUOTED_IDENTIFIER)) return true; - return false; - } - - private boolean jj_3R_38() { - if (jj_scan_token(SELECT)) return true; - if (jj_3R_155()) return true; - return false; - } - - private boolean jj_3_420() { - if (jj_scan_token(QUOTED_IDENTIFIER)) return true; - return false; - } - - private boolean jj_3_419() { - if (jj_scan_token(IDENTIFIER)) return true; - return false; - } - - private boolean jj_3_51() { - if (jj_scan_token(SEMICOLON)) return true; - if (jj_3R_58()) return true; - return false; - } - - private boolean jj_3R_78() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_419()) { - jj_scanpos = xsp; - if (jj_3_420()) { - jj_scanpos = xsp; - if (jj_3_421()) { - jj_scanpos = xsp; - if (jj_3_422()) { - jj_scanpos = xsp; - if (jj_3_423()) { - jj_scanpos = xsp; - if (jj_3_424()) return true; - } - } - } - } - } - return false; - } - - private boolean jj_3_52() { - if (jj_scan_token(SEMICOLON)) return true; - return false; - } - - private boolean jj_3R_111() { - if (jj_scan_token(HOOK)) return true; - return false; - } - - private boolean jj_3_417() { - if (jj_scan_token(SQL_TSI_YEAR)) return true; - return false; - } - - private boolean jj_3_416() { - if (jj_scan_token(YEAR)) return true; - return false; - } - - private boolean jj_3_415() { - if (jj_scan_token(SQL_TSI_QUARTER)) return true; - return false; - } - - private boolean jj_3_414() { - if (jj_scan_token(QUARTER)) return true; - return false; - } - - private boolean jj_3_413() { - if (jj_scan_token(SQL_TSI_MONTH)) return true; - return false; - } - - private boolean jj_3_412() { - if (jj_scan_token(MONTH)) return true; - return false; - } - - private boolean jj_3_411() { - if (jj_scan_token(SQL_TSI_WEEK)) return true; - return false; - } - - private boolean jj_3_410() { - if (jj_scan_token(WEEK)) return true; - return false; - } - - private boolean jj_3_409() { - if (jj_scan_token(SQL_TSI_DAY)) return true; - return false; - } - - private boolean jj_3_408() { - if (jj_scan_token(DAY)) return true; - return false; - } - - private boolean jj_3_50() { - if (jj_3R_57()) return true; - return false; - } - - private boolean jj_3_407() { - if (jj_scan_token(SQL_TSI_HOUR)) return true; - return false; - } - - private boolean jj_3_406() { - if (jj_scan_token(HOUR)) return true; - return false; - } - - private boolean jj_3_405() { - if (jj_scan_token(SQL_TSI_MINUTE)) return true; - return false; - } - - private boolean jj_3_404() { - if (jj_scan_token(MINUTE)) return true; - return false; - } - - private boolean jj_3_403() { - if (jj_scan_token(SQL_TSI_SECOND)) return true; - return false; - } - - private boolean jj_3_402() { - if (jj_scan_token(SECOND)) return true; - return false; - } - - private boolean jj_3_401() { - if (jj_scan_token(SQL_TSI_MICROSECOND)) return true; - return false; - } - - private boolean jj_3_400() { - if (jj_scan_token(SQL_TSI_FRAC_SECOND)) return true; - return false; - } - - private boolean jj_3_49() { - if (jj_3R_45()) return true; - if (jj_scan_token(DOT)) return true; - return false; - } - - private boolean jj_3_399() { - if (jj_scan_token(MICROSECOND)) return true; - return false; - } - - private boolean jj_3_398() { - if (jj_scan_token(FRAC_SECOND)) return true; - return false; - } - - private boolean jj_3R_46() { - if (jj_scan_token(CREATE)) return true; - if (jj_scan_token(FUNCTION)) return true; - return false; - } - - private boolean jj_3_397() { - if (jj_scan_token(MILLENNIUM)) return true; - return false; - } - - private boolean jj_3_396() { - if (jj_scan_token(CENTURY)) return true; - return false; - } - - private boolean jj_3_395() { - if (jj_scan_token(DECADE)) return true; - return false; - } - - private boolean jj_3_394() { - if (jj_scan_token(EPOCH)) return true; - return false; - } - - private boolean jj_3_393() { - if (jj_scan_token(YEAR)) return true; - return false; - } - - private boolean jj_3_392() { - if (jj_scan_token(QUARTER)) return true; - return false; - } - - private boolean jj_3_391() { - if (jj_scan_token(MONTH)) return true; - return false; - } - - private boolean jj_3_390() { - if (jj_scan_token(WEEK)) return true; - return false; - } - - private boolean jj_3_389() { - if (jj_scan_token(DOY)) return true; - return false; - } - - private boolean jj_3_388() { - if (jj_scan_token(DOW)) return true; - return false; - } - - private boolean jj_3_387() { - if (jj_scan_token(DAY)) return true; - return false; - } - - private boolean jj_3_386() { - if (jj_scan_token(HOUR)) return true; - return false; - } - - private boolean jj_3_385() { - if (jj_scan_token(MINUTE)) return true; - return false; - } - - private boolean jj_3_384() { - if (jj_scan_token(SECOND)) return true; - return false; - } - - private boolean jj_3R_148() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_384()) { - jj_scanpos = xsp; - if (jj_3_385()) { - jj_scanpos = xsp; - if (jj_3_386()) { - jj_scanpos = xsp; - if (jj_3_387()) { - jj_scanpos = xsp; - if (jj_3_388()) { - jj_scanpos = xsp; - if (jj_3_389()) { - jj_scanpos = xsp; - if (jj_3_390()) { - jj_scanpos = xsp; - if (jj_3_391()) { - jj_scanpos = xsp; - if (jj_3_392()) { - jj_scanpos = xsp; - if (jj_3_393()) { - jj_scanpos = xsp; - if (jj_3_394()) { - jj_scanpos = xsp; - if (jj_3_395()) { - jj_scanpos = xsp; - if (jj_3_396()) { - jj_scanpos = xsp; - if (jj_3_397()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_47() { - if (jj_scan_token(ARCHIVE)) return true; - return false; - } - - private boolean jj_3_48() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_56()) return true; - return false; - } - - private boolean jj_3R_57() { - if (jj_scan_token(USING)) return true; - if (jj_3R_56()) return true; - return false; - } - - private boolean jj_3_376() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_46() { - if (jj_scan_token(FILE)) return true; - return false; - } - - private boolean jj_3_377() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_374() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_373() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_383() { - if (jj_scan_token(SECOND)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_377()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_45() { - if (jj_scan_token(JAR)) return true; - return false; - } - - private boolean jj_3R_56() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_45()) { - jj_scanpos = xsp; - if (jj_3_46()) { - jj_scanpos = xsp; - if (jj_3_47()) return true; - } - } - return false; - } - - private boolean jj_3_369() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_375() { - if (jj_scan_token(TO)) return true; - if (jj_scan_token(SECOND)) return true; - return false; - } - - private boolean jj_3_371() { - if (jj_scan_token(SECOND)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_369()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_382() { - if (jj_scan_token(MINUTE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_373()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_375()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_370() { - if (jj_scan_token(MINUTE)) return true; - return false; - } - - private boolean jj_3_368() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_363() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_372() { - if (jj_scan_token(TO)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_370()) { - jj_scanpos = xsp; - if (jj_3_371()) return true; - } - return false; - } - - private boolean jj_3_366() { - if (jj_scan_token(SECOND)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_363()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_381() { - if (jj_scan_token(HOUR)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_368()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_372()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_365() { - if (jj_scan_token(MINUTE)) return true; - return false; - } - - private boolean jj_3_364() { - if (jj_scan_token(HOUR)) return true; - return false; - } - - private boolean jj_3_362() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_361() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_44() { - if (jj_3R_55()) return true; - return false; - } - - private boolean jj_3_43() { - if (jj_3R_54()) return true; - return false; - } - - private boolean jj_3_367() { - if (jj_scan_token(TO)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_364()) { - jj_scanpos = xsp; - if (jj_3_365()) { - jj_scanpos = xsp; - if (jj_3_366()) return true; - } - } - return false; - } - - private boolean jj_3_42() { - if (jj_3R_53()) return true; - return false; - } - - private boolean jj_3_380() { - if (jj_scan_token(DAY)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_362()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_367()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_41() { - if (jj_3R_52()) return true; - return false; - } - - private boolean jj_3_40() { - if (jj_3R_51()) return true; - return false; - } - - private boolean jj_3_379() { - if (jj_scan_token(MONTH)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_361()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_359() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_131()) return true; - return false; - } - - private boolean jj_3_39() { - if (jj_3R_50()) return true; - return false; - } - - private boolean jj_3_360() { - if (jj_scan_token(TO)) return true; - if (jj_scan_token(MONTH)) return true; - return false; - } - - private boolean jj_3_38() { - if (jj_3R_49()) return true; - return false; - } - - private boolean jj_3_37() { - if (jj_3R_42()) return true; - return false; - } - - private boolean jj_3_36() { - if (jj_3R_48()) return true; - return false; - } - - private boolean jj_3_378() { - if (jj_scan_token(YEAR)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_359()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_360()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_35() { - if (jj_3R_47()) return true; - return false; - } - - private boolean jj_3_34() { - if (jj_3R_46()) return true; - return false; - } - - private boolean jj_3R_108() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_378()) { - jj_scanpos = xsp; - if (jj_3_379()) { - jj_scanpos = xsp; - if (jj_3_380()) { - jj_scanpos = xsp; - if (jj_3_381()) { - jj_scanpos = xsp; - if (jj_3_382()) { - jj_scanpos = xsp; - if (jj_3_383()) return true; - } - } - } - } - } - return false; - } - - private boolean jj_3R_58() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_34()) { - jj_scanpos = xsp; - if (jj_3_35()) { - jj_scanpos = xsp; - if (jj_3_36()) { - jj_scanpos = xsp; - if (jj_3_37()) { - jj_scanpos = xsp; - if (jj_3_38()) { - jj_scanpos = xsp; - if (jj_3_39()) { - jj_scanpos = xsp; - if (jj_3_40()) { - jj_scanpos = xsp; - if (jj_3_41()) { - jj_scanpos = xsp; - if (jj_3_42()) { - jj_scanpos = xsp; - if (jj_3_43()) { - jj_scanpos = xsp; - if (jj_3_44()) return true; - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_357() { - if (jj_scan_token(PLUS)) return true; - return false; - } - - private boolean jj_3_358() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_356()) { - jj_scanpos = xsp; - if (jj_3_357()) return true; - } - return false; - } - - private boolean jj_3_356() { - if (jj_scan_token(MINUS)) return true; - return false; - } - - private boolean jj_3R_88() { - if (jj_scan_token(INTERVAL)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_358()) jj_scanpos = xsp; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3R_43() { - if (jj_scan_token(DEFAULT_)) return true; - return false; - } - - private boolean jj_3_33() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_117() { - if (jj_scan_token(PERIOD)) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_32() { - if (jj_3R_43()) return true; - return false; - } - - private boolean jj_3_31() { - if (jj_3R_45()) return true; - if (jj_scan_token(NAMED_ARGUMENT_ASSIGNMENT)) return true; - return false; - } - - private boolean jj_3R_44() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_31()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_32()) { - jj_scanpos = xsp; - if (jj_3_33()) return true; - } - return false; - } - - private boolean jj_3R_130() { - return false; - } - - private boolean jj_3_354() { - if (jj_3R_123()) return true; - return false; - } - - private boolean jj_3_355() { - if (jj_scan_token(LBRACKET)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_354()) { - jj_scanpos = xsp; - if (jj_3R_130()) return true; - } - return false; - } - - private boolean jj_3_30() { - if (jj_3R_42()) return true; - return false; - } - - private boolean jj_3_29() { - if (jj_3R_43()) return true; - return false; - } - - private boolean jj_3R_175() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_28() { - if (jj_3R_45()) return true; - if (jj_scan_token(NAMED_ARGUMENT_ASSIGNMENT)) return true; - return false; - } - - private boolean jj_3R_63() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_28()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_29()) { - jj_scanpos = xsp; - if (jj_3_30()) return true; - } - return false; - } - - private boolean jj_3R_116() { - if (jj_scan_token(MAP)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_175()) { - jj_scanpos = xsp; - if (jj_3_355()) return true; - } - return false; - } - - private boolean jj_3R_129() { - return false; - } - - private boolean jj_3_352() { - if (jj_3R_123()) return true; - return false; - } - - private boolean jj_3_353() { - if (jj_scan_token(LBRACKET)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_352()) { - jj_scanpos = xsp; - if (jj_3R_129()) return true; - } - return false; - } - - private boolean jj_3R_174() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_27() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_44()) return true; - return false; - } - - private boolean jj_3R_115() { - if (jj_scan_token(ARRAY)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_174()) { - jj_scanpos = xsp; - if (jj_3_353()) return true; - } - return false; - } - - private boolean jj_3_25() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_26() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_24()) { - jj_scanpos = xsp; - if (jj_3_25()) return true; - } - return false; - } - - private boolean jj_3_24() { - if (jj_scan_token(DISTINCT)) return true; - return false; - } - - private boolean jj_3_350() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_146() { - if (jj_scan_token(LPAREN)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_26()) jj_scanpos = xsp; - if (jj_3R_63()) return true; - return false; - } - - private boolean jj_3_351() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_173() { - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_23() { - if (jj_3R_43()) return true; - return false; - } - - private boolean jj_3_22() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_114() { - if (jj_scan_token(MULTISET)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_173()) { - jj_scanpos = xsp; - if (jj_3_351()) return true; - } - return false; - } - - private boolean jj_3_21() { - if (jj_scan_token(COMMA)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_22()) { - jj_scanpos = xsp; - if (jj_3_23()) return true; - } - return false; - } - - private boolean jj_3_349() { - if (jj_scan_token(TIMESTAMP)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_20() { - if (jj_3R_43()) return true; - return false; - } - - private boolean jj_3_19() { - if (jj_3R_42()) return true; - return false; - } - - private boolean jj_3_348() { - if (jj_scan_token(TIME)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_347() { - if (jj_scan_token(DATE)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_346() { - if (jj_scan_token(LBRACE_TS)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3R_82() { - if (jj_scan_token(LPAREN)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_19()) { - jj_scanpos = xsp; - if (jj_3_20()) return true; - } - return false; - } - - private boolean jj_3_345() { - if (jj_scan_token(LBRACE_T)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_344() { - if (jj_scan_token(LBRACE_D)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3R_128() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_344()) { - jj_scanpos = xsp; - if (jj_3_345()) { - jj_scanpos = xsp; - if (jj_3_346()) { - jj_scanpos = xsp; - if (jj_3_347()) { - jj_scanpos = xsp; - if (jj_3_348()) { - jj_scanpos = xsp; - if (jj_3_349()) return true; - } - } - } - } - } - return false; - } - - private boolean jj_3_18() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_341() { - if (jj_scan_token(UESCAPE)) return true; - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3R_76() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_42()) return true; - return false; - } - - private boolean jj_3_340() { - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_339() { - if (jj_scan_token(UNICODE_STRING_LITERAL)) return true; - return false; - } - - private boolean jj_3_338() { - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_337() { - if (jj_scan_token(PREFIXED_STRING_LITERAL)) return true; - return false; - } - - private boolean jj_3_7() { - if (jj_scan_token(ROWS)) return true; - return false; - } - - private boolean jj_3_343() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_337()) { - jj_scanpos = xsp; - if (jj_3_338()) { - jj_scanpos = xsp; - if (jj_3_339()) return true; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_3_340()) { jj_scanpos = xsp; break; } - } - xsp = jj_scanpos; - if (jj_3_341()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_8() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_6()) { - jj_scanpos = xsp; - if (jj_3_7()) return true; - } - return false; - } - - private boolean jj_3_6() { - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3R_75() { - if (jj_scan_token(LPAREN)) return true; - if (jj_3R_42()) return true; - return false; - } - - private boolean jj_3_336() { - if (jj_scan_token(QUOTED_STRING)) return true; - return false; - } - - private boolean jj_3_17() { - if (jj_3R_40()) return true; - return false; - } - - private boolean jj_3_16() { - if (jj_3R_39()) return true; - return false; - } - - private boolean jj_3_11() { - if (jj_scan_token(NEXT)) return true; - return false; - } - - private boolean jj_3_15() { - if (jj_3R_38()) return true; - return false; - } - - private boolean jj_3R_100() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_15()) { - jj_scanpos = xsp; - if (jj_3_16()) { - jj_scanpos = xsp; - if (jj_3_17()) return true; - } - } - return false; - } - - private boolean jj_3_342() { - if (jj_scan_token(BINARY_STRING_LITERAL)) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_336()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3R_126() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_342()) { - jj_scanpos = xsp; - if (jj_3_343()) return true; - } - return false; - } - - private boolean jj_3_13() { - if (jj_scan_token(ROWS)) return true; - return false; - } - - private boolean jj_3_10() { - if (jj_scan_token(FIRST)) return true; - return false; - } - - private boolean jj_3_12() { - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3_14() { - if (jj_scan_token(FETCH)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_10()) { - jj_scanpos = xsp; - if (jj_3_11()) return true; - } - return false; - } - - private boolean jj_3_9() { - if (jj_scan_token(OFFSET)) return true; - if (jj_3R_37()) return true; - return false; - } - - private boolean jj_3_4() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_3() { - if (jj_3R_37()) return true; - return false; - } - - private boolean jj_3_335() { - if (jj_scan_token(NULL)) return true; - return false; - } - - private boolean jj_3_334() { - if (jj_scan_token(UNKNOWN)) return true; - return false; - } - - private boolean jj_3_333() { - if (jj_scan_token(FALSE)) return true; - return false; - } - - private boolean jj_3_332() { - if (jj_scan_token(TRUE)) return true; - return false; - } - - private boolean jj_3R_127() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_332()) { - jj_scanpos = xsp; - if (jj_3_333()) { - jj_scanpos = xsp; - if (jj_3_334()) { - jj_scanpos = xsp; - if (jj_3_335()) return true; - } - } - } - return false; - } - - private boolean jj_3_2() { - if (jj_3R_37()) return true; - if (jj_scan_token(COMMA)) return true; - return false; - } - - private boolean jj_3_5() { - if (jj_scan_token(LIMIT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_2()) { - jj_scanpos = xsp; - if (jj_3_3()) { - jj_scanpos = xsp; - if (jj_3_4()) return true; - } - } - return false; - } - - private boolean jj_3_331() { - if (jj_3R_93()) return true; - return false; - } - - private boolean jj_3_1() { - if (jj_3R_36()) return true; - return false; - } - - private boolean jj_3_330() { - if (jj_scan_token(MINUS)) return true; - if (jj_3R_93()) return true; - return false; - } - - private boolean jj_3_329() { - if (jj_scan_token(PLUS)) return true; - if (jj_3R_93()) return true; - return false; - } - - private boolean jj_3R_125() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_329()) { - jj_scanpos = xsp; - if (jj_3_330()) { - jj_scanpos = xsp; - if (jj_3_331()) return true; - } - } - return false; - } - - private boolean jj_3R_42() { - if (jj_3R_157()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_1()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_5()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_9()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3_14()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_328() { - if (jj_scan_token(APPROX_NUMERIC_LITERAL)) return true; - return false; - } - - private boolean jj_3_327() { - if (jj_scan_token(DECIMAL_NUMERIC_LITERAL)) return true; - return false; - } - - private boolean jj_3_326() { - if (jj_scan_token(UNSIGNED_INTEGER_LITERAL)) return true; - return false; - } - - private boolean jj_3R_93() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_326()) { - jj_scanpos = xsp; - if (jj_3_327()) { - jj_scanpos = xsp; - if (jj_3_328()) return true; - } - } - return false; - } - - private boolean jj_3R_183() { - return false; - } - - private boolean jj_3_325() { - if (jj_3R_88()) return true; - return false; - } - - private boolean jj_3_324() { - if (jj_3R_128()) return true; - return false; - } - - private boolean jj_3_323() { - if (jj_3R_127()) return true; - return false; - } - - private boolean jj_3_322() { - if (jj_3R_126()) return true; - return false; - } - - private boolean jj_3_321() { - if (jj_3R_125()) return true; - return false; - } - - private boolean jj_3R_167() { - jj_lookingAhead = true; - jj_semLA = false; - jj_lookingAhead = false; - if (!jj_semLA || jj_3R_183()) return true; - if (jj_scan_token(ZONE)) return true; - return false; - } - - private boolean jj_3R_124() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_321()) { - jj_scanpos = xsp; - if (jj_3_322()) { - jj_scanpos = xsp; - if (jj_3_323()) { - jj_scanpos = xsp; - if (jj_3_324()) { - jj_scanpos = xsp; - if (jj_3_325()) return true; - } - } - } - } - return false; - } - - private boolean jj_3_320() { - if (jj_scan_token(SESSION)) return true; - return false; - } - - private boolean jj_3_319() { - if (jj_scan_token(SYSTEM)) return true; - return false; - } - - private boolean jj_3R_158() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_319()) { - jj_scanpos = xsp; - if (jj_3_320()) return true; - } - return false; - } - - private boolean jj_3R_48() { - if (jj_scan_token(ALTER)) return true; - if (jj_3R_158()) return true; - return false; - } - - private boolean jj_3_316() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_315() { - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_318() { - if (jj_scan_token(RESET)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_315()) { - jj_scanpos = xsp; - if (jj_3_316()) return true; - } - return false; - } - - private boolean jj_3_314() { - if (jj_scan_token(ON)) return true; - return false; - } - - private boolean jj_3_313() { - if (jj_3R_45()) return true; - return false; - } - - private boolean jj_3_312() { - if (jj_3R_124()) return true; - return false; - } - - private boolean jj_3_317() { - if (jj_scan_token(SET)) return true; - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3R_47() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_317()) { - jj_scanpos = xsp; - if (jj_3_318()) return true; - } - return false; - } - - private boolean jj_3_311() { - if (jj_scan_token(CURRENT)) return true; - return false; - } - - private boolean jj_3_310() { - if (jj_scan_token(NEXT)) return true; - return false; - } - - private boolean jj_3R_122() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_310()) { - jj_scanpos = xsp; - if (jj_3_311()) return true; - } - if (jj_scan_token(VALUE)) return true; - return false; - } - - private boolean jj_3_309() { - if (jj_scan_token(ELSE)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_308() { - if (jj_scan_token(WHEN)) return true; - if (jj_3R_123()) return true; - return false; - } - - private boolean jj_3_307() { - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3R_121() { - if (jj_scan_token(CASE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_307()) jj_scanpos = xsp; - if (jj_3_308()) return true; - while (true) { - xsp = jj_scanpos; - if (jj_3_308()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3_306() { - if (jj_3R_122()) return true; - return false; - } - - private boolean jj_3_301() { - Token xsp; - xsp = jj_scanpos; - if (jj_scan_token(483)) jj_scanpos = xsp; - if (jj_3R_118()) return true; - if (jj_scan_token(LPAREN)) return true; - return false; - } - - private boolean jj_3_305() { - if (jj_3R_121()) return true; - return false; - } - - private boolean jj_3_304() { - if (jj_3R_120()) return true; - return false; - } - - private boolean jj_3_303() { - if (jj_3R_61()) return true; - return false; - } - - private boolean jj_3_302() { - if (jj_3R_119()) return true; - return false; - } - - private boolean jj_3R_171() { - if (jj_3R_179()) return true; - return false; - } - - private boolean jj_3_300() { - if (jj_3R_117()) return true; - return false; - } - - private boolean jj_3_299() { - if (jj_3R_116()) return true; - return false; - } - - private boolean jj_3_298() { - if (jj_3R_115()) return true; - return false; - } - - private boolean jj_3_297() { - if (jj_3R_114()) return true; - return false; - } - - private boolean jj_3_296() { - if (jj_3R_113()) return true; - return false; - } - - private boolean jj_3_295() { - if (jj_3R_112()) return true; - return false; - } - - private boolean jj_3_294() { - if (jj_3R_111()) return true; - return false; - } - - private boolean jj_3R_170() { - if (jj_3R_124()) return true; - return false; - } - - private boolean jj_3R_109() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_170()) { - jj_scanpos = xsp; - if (jj_3_294()) { - jj_scanpos = xsp; - if (jj_3_295()) { - jj_scanpos = xsp; - if (jj_3_296()) { - jj_scanpos = xsp; - if (jj_3_297()) { - jj_scanpos = xsp; - if (jj_3_298()) { - jj_scanpos = xsp; - if (jj_3_299()) { - jj_scanpos = xsp; - if (jj_3_300()) { - jj_scanpos = xsp; - if (jj_3R_171()) { - jj_scanpos = xsp; - if (jj_3_302()) { - jj_scanpos = xsp; - if (jj_3_303()) { - jj_scanpos = xsp; - if (jj_3_304()) { - jj_scanpos = xsp; - if (jj_3_305()) { - jj_scanpos = xsp; - if (jj_3_306()) return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3_293() { - if (jj_3R_111()) return true; - return false; - } - - private boolean jj_3_292() { - if (jj_3R_93()) return true; - return false; - } - - private boolean jj_3R_37() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_292()) { - jj_scanpos = xsp; - if (jj_3_293()) return true; - } - return false; - } - - private boolean jj_3_291() { - if (jj_scan_token(EQUALS)) return true; - return false; - } - - private boolean jj_3_290() { - if (jj_scan_token(SUCCEEDS)) return true; - return false; - } - - private boolean jj_3_289() { - if (jj_scan_token(IMMEDIATELY)) return true; - if (jj_scan_token(SUCCEEDS)) return true; - return false; - } - - private boolean jj_3_288() { - if (jj_scan_token(PRECEDES)) return true; - return false; - } - - private boolean jj_3_287() { - if (jj_scan_token(IMMEDIATELY)) return true; - if (jj_scan_token(PRECEDES)) return true; - return false; - } - - private boolean jj_3_286() { - if (jj_scan_token(OVERLAPS)) return true; - return false; - } - - private boolean jj_3R_138() { - if (jj_3R_177()) return true; - return false; - } - - private boolean jj_3R_141() { - if (jj_3R_167()) return true; - return false; - } - - private boolean jj_3R_160() { - if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;} - return false; - } - - private boolean jj_3R_155() { - if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;} - return false; - } - - private boolean jj_3R_74() { - return false; - } - - private boolean jj_3_281() { - if (jj_3R_108()) return true; - return false; - } - - private boolean jj_3_1026() { - if (jj_scan_token(ZONE)) return true; - return false; - } - - private boolean jj_3R_77() { - if (jj_3R_167()) return true; - return false; - } - - private boolean jj_3_1025() { - if (jj_scan_token(XML)) return true; - return false; - } - - private boolean jj_3_1024() { - if (jj_scan_token(WRITE)) return true; - return false; - } - - private boolean jj_3_1023() { - if (jj_scan_token(WORK)) return true; - return false; - } - - private boolean jj_3_1022() { - if (jj_scan_token(WRAPPER)) return true; - return false; - } - - private boolean jj_3_1021() { - if (jj_scan_token(WEEK)) return true; - return false; - } - - private boolean jj_3_280() { - if (jj_scan_token(ROW)) return true; - return false; - } - - private boolean jj_3_1020() { - if (jj_scan_token(VIEW)) return true; - return false; - } - - private boolean jj_3_1019() { - if (jj_scan_token(VERSION)) return true; - return false; - } - - private boolean jj_3_1018() { - if (jj_scan_token(USER_DEFINED_TYPE_SCHEMA)) return true; - return false; - } - - private boolean jj_3_1017() { - if (jj_scan_token(USER_DEFINED_TYPE_NAME)) return true; - return false; - } - - private boolean jj_3_1016() { - if (jj_scan_token(USER_DEFINED_TYPE_CODE)) return true; - return false; - } - - private boolean jj_3_285() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_280()) jj_scanpos = xsp; - if (jj_3R_76()) return true; - return false; - } - - private boolean jj_3_1015() { - if (jj_scan_token(USER_DEFINED_TYPE_CATALOG)) return true; - return false; - } - - private boolean jj_3_1014() { - if (jj_scan_token(USAGE)) return true; - return false; - } - - private boolean jj_3_1013() { - if (jj_scan_token(UNNAMED)) return true; - return false; - } - - private boolean jj_3_1012() { - if (jj_scan_token(UNDER)) return true; - return false; - } - - private boolean jj_3R_132() { - if (jj_3R_176()) return true; - return false; - } - - private boolean jj_3_1011() { - if (jj_scan_token(UNCOMMITTED)) return true; - return false; - } - - private boolean jj_3_1010() { - if (jj_scan_token(UNBOUNDED)) return true; - return false; - } - - private boolean jj_3_1009() { - if (jj_scan_token(TYPE)) return true; - return false; - } - - private boolean jj_3_1008() { - if (jj_scan_token(TRIGGER_SCHEMA)) return true; - return false; - } - - private boolean jj_3_1007() { - if (jj_scan_token(TRIGGER_NAME)) return true; - return false; - } - - private boolean jj_3_1006() { - if (jj_scan_token(TRIGGER_CATALOG)) return true; - return false; - } - - private boolean jj_3_1005() { - if (jj_scan_token(TRANSFORMS)) return true; - return false; - } - - private boolean jj_3_1004() { - if (jj_scan_token(TRANSFORM)) return true; - return false; - } - - private boolean jj_3_1003() { - if (jj_scan_token(TRANSACTIONS_ROLLED_BACK)) return true; - return false; - } - - private boolean jj_3_1002() { - if (jj_scan_token(TRANSACTIONS_COMMITTED)) return true; - return false; - } - - private boolean jj_3_284() { - if (jj_scan_token(ROW)) return true; - if (jj_3R_68()) return true; - return false; - } - - private boolean jj_3_1001() { - if (jj_scan_token(TRANSACTIONS_ACTIVE)) return true; - return false; - } - - private boolean jj_3_1000() { - if (jj_scan_token(TRANSACTION)) return true; - return false; - } - - private boolean jj_3_283() { - if (jj_3R_110()) return true; - return false; - } - - private boolean jj_3_999() { - if (jj_scan_token(TOP_LEVEL_COUNT)) return true; - return false; - } - - private boolean jj_3_998() { - if (jj_scan_token(TIMESTAMPDIFF)) return true; - return false; - } - - private boolean jj_3_997() { - if (jj_scan_token(TIMESTAMPADD)) return true; - return false; - } - - private boolean jj_3_996() { - if (jj_scan_token(TIES)) return true; - return false; - } - - private boolean jj_3_995() { - if (jj_scan_token(TEMPORARY)) return true; - return false; - } - - private boolean jj_3_994() { - if (jj_scan_token(TABLE_NAME)) return true; - return false; - } - - private boolean jj_3_993() { - if (jj_scan_token(SUBSTITUTE)) return true; - return false; - } - - private boolean jj_3_282() { - if (jj_3R_109()) return true; - return false; - } - - private boolean jj_3R_103() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_282()) { - jj_scanpos = xsp; - if (jj_3_283()) { - jj_scanpos = xsp; - if (jj_3_284()) { - jj_scanpos = xsp; - if (jj_3_285()) return true; - } - } - } - return false; - } - - private boolean jj_3_992() { - if (jj_scan_token(SUBCLASS_ORIGIN)) return true; - return false; - } - - private boolean jj_3_991() { - if (jj_scan_token(STYLE)) return true; - return false; - } - - private boolean jj_3_990() { - if (jj_scan_token(STRUCTURE)) return true; - return false; - } - - private boolean jj_3_989() { - if (jj_scan_token(STATEMENT)) return true; - return false; - } - - private boolean jj_3_988() { - if (jj_scan_token(STATE)) return true; - return false; - } - - private boolean jj_3_987() { - if (jj_scan_token(SQL_VARCHAR)) return true; - return false; - } - - private boolean jj_3_986() { - if (jj_scan_token(SQL_VARBINARY)) return true; - return false; - } - - private boolean jj_3_985() { - if (jj_scan_token(SQL_TSI_YEAR)) return true; - return false; - } - - private boolean jj_3_984() { - if (jj_scan_token(SQL_TSI_WEEK)) return true; - return false; - } - - private boolean jj_3_983() { - if (jj_scan_token(SQL_TSI_SECOND)) return true; - return false; - } - - private boolean jj_3_982() { - if (jj_scan_token(SQL_TSI_QUARTER)) return true; - return false; - } - - private boolean jj_3_981() { - if (jj_scan_token(SQL_TSI_MONTH)) return true; - return false; - } - - private boolean jj_3_980() { - if (jj_scan_token(SQL_TSI_MINUTE)) return true; - return false; - } - - private boolean jj_3_979() { - if (jj_scan_token(SQL_TSI_MICROSECOND)) return true; - return false; - } - - private boolean jj_3_978() { - if (jj_scan_token(SQL_TSI_HOUR)) return true; - return false; - } - - private boolean jj_3_977() { - if (jj_scan_token(SQL_TSI_FRAC_SECOND)) return true; - return false; - } - - private boolean jj_3_976() { - if (jj_scan_token(SQL_TSI_DAY)) return true; - return false; - } - - private boolean jj_3_975() { - if (jj_scan_token(SQL_TINYINT)) return true; - return false; - } - - private boolean jj_3_974() { - if (jj_scan_token(SQL_TIMESTAMP)) return true; - return false; - } - - private boolean jj_3_973() { - if (jj_scan_token(SQL_TIME)) return true; - return false; - } - - private boolean jj_3_972() { - if (jj_scan_token(SQL_SMALLINT)) return true; - return false; - } - - private boolean jj_3_971() { - if (jj_scan_token(SQL_REAL)) return true; - return false; - } - - private boolean jj_3_970() { - if (jj_scan_token(SQL_NVARCHAR)) return true; - return false; - } - - private boolean jj_3_279() { - if (jj_scan_token(NE2)) return true; - return false; - } - - private boolean jj_3_969() { - if (jj_scan_token(SQL_NUMERIC)) return true; - return false; - } - - private boolean jj_3_968() { - if (jj_scan_token(SQL_NCLOB)) return true; - return false; - } - - private boolean jj_3_278() { - if (jj_scan_token(NE)) return true; - return false; - } - - private boolean jj_3_967() { - if (jj_scan_token(SQL_NCHAR)) return true; - return false; - } - - private boolean jj_3_966() { - if (jj_scan_token(SQL_LONGVARCHAR)) return true; - return false; - } - - private boolean jj_3_277() { - if (jj_scan_token(EQ)) return true; - return false; - } - - private boolean jj_3_965() { - if (jj_scan_token(SQL_LONGVARNCHAR)) return true; - return false; - } - - private boolean jj_3_964() { - if (jj_scan_token(SQL_LONGVARBINARY)) return true; - return false; - } - - private boolean jj_3_276() { - if (jj_scan_token(GE)) return true; - return false; - } - - private boolean jj_3_963() { - if (jj_scan_token(SQL_INTERVAL_YEAR_TO_MONTH)) return true; - return false; - } - - private boolean jj_3_962() { - if (jj_scan_token(SQL_INTERVAL_YEAR)) return true; - return false; - } - - private boolean jj_3_275() { - if (jj_scan_token(GT)) return true; - return false; - } - - private boolean jj_3_961() { - if (jj_scan_token(SQL_INTERVAL_SECOND)) return true; - return false; - } - - private boolean jj_3_960() { - if (jj_scan_token(SQL_INTERVAL_MONTH)) return true; - return false; - } - - private boolean jj_3_274() { - if (jj_scan_token(LE)) return true; - return false; - } - - private boolean jj_3_959() { - if (jj_scan_token(SQL_INTERVAL_MINUTE_TO_SECOND)) return true; - return false; - } - - private boolean jj_3_958() { - if (jj_scan_token(SQL_INTERVAL_MINUTE)) return true; - return false; - } - - private boolean jj_3_273() { - if (jj_scan_token(LT)) return true; - return false; - } - - private boolean jj_3R_102() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_273()) { - jj_scanpos = xsp; - if (jj_3_274()) { - jj_scanpos = xsp; - if (jj_3_275()) { - jj_scanpos = xsp; - if (jj_3_276()) { - jj_scanpos = xsp; - if (jj_3_277()) { - jj_scanpos = xsp; - if (jj_3_278()) { - jj_scanpos = xsp; - if (jj_3_279()) return true; - } - } - } - } - } - } - return false; - } - - private boolean jj_3_957() { - if (jj_scan_token(SQL_INTERVAL_HOUR_TO_SECOND)) return true; - return false; - } - - private boolean jj_3_956() { - if (jj_scan_token(SQL_INTERVAL_HOUR_TO_MINUTE)) return true; - return false; - } - - private boolean jj_3_955() { - if (jj_scan_token(SQL_INTERVAL_HOUR)) return true; - return false; - } - - private boolean jj_3_954() { - if (jj_scan_token(SQL_INTERVAL_DAY_TO_SECOND)) return true; - return false; - } - - private boolean jj_3_953() { - if (jj_scan_token(SQL_INTERVAL_DAY_TO_MINUTE)) return true; - return false; - } - - private boolean jj_3_952() { - if (jj_scan_token(SQL_INTERVAL_DAY_TO_HOUR)) return true; - return false; - } - - private boolean jj_3_951() { - if (jj_scan_token(SQL_INTERVAL_DAY)) return true; - return false; - } - - private boolean jj_3R_182() { - return false; - } - - private boolean jj_3_950() { - if (jj_scan_token(SQL_INTEGER)) return true; - return false; - } - - private boolean jj_3_949() { - if (jj_scan_token(SQL_FLOAT)) return true; - return false; - } - - private boolean jj_3_948() { - if (jj_scan_token(SQL_DOUBLE)) return true; - return false; - } - - private boolean jj_3_947() { - if (jj_scan_token(SQL_DECIMAL)) return true; - return false; - } - - private boolean jj_3_270() { - if (jj_3R_107()) return true; - return false; - } - - private boolean jj_3_946() { - if (jj_scan_token(SQL_DATE)) return true; - return false; - } - - private boolean jj_3_945() { - if (jj_scan_token(SQL_CLOB)) return true; - return false; - } - - private boolean jj_3_944() { - if (jj_scan_token(SQL_CHAR)) return true; - return false; - } - - private boolean jj_3_943() { - if (jj_scan_token(SQL_BOOLEAN)) return true; - return false; - } - - private boolean jj_3_942() { - if (jj_scan_token(SQL_BLOB)) return true; - return false; - } - - private boolean jj_3_264() { - if (jj_scan_token(DOT)) return true; - if (jj_3R_78()) return true; - return false; - } - - private boolean jj_3_941() { - if (jj_scan_token(SQL_BIT)) return true; - return false; - } - - private boolean jj_3_940() { - if (jj_scan_token(SQL_BINARY)) return true; - return false; - } - - private boolean jj_3_939() { - if (jj_scan_token(SQL_BIGINT)) return true; - return false; - } - - private boolean jj_3_938() { - if (jj_scan_token(SPECIFIC_NAME)) return true; - return false; - } - - private boolean jj_3_937() { - if (jj_scan_token(SPACE)) return true; - return false; - } - - private boolean jj_3_936() { - if (jj_scan_token(SOURCE)) return true; - return false; - } - - private boolean jj_3_935() { - if (jj_scan_token(SIZE)) return true; - return false; - } - - private boolean jj_3_934() { - if (jj_scan_token(SIMPLE)) return true; - return false; - } - - private boolean jj_3_933() { - if (jj_scan_token(SETS)) return true; - return false; - } - - private boolean jj_3_932() { - if (jj_scan_token(SESSION)) return true; - return false; - } - - private boolean jj_3_931() { - if (jj_scan_token(SERVER_NAME)) return true; - return false; - } - - private boolean jj_3_930() { - if (jj_scan_token(SERVER)) return true; - return false; - } - - private boolean jj_3_929() { - if (jj_scan_token(SERIALIZABLE)) return true; - return false; - } - - private boolean jj_3_269() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_41()) return true; - return false; - } - - private boolean jj_3_928() { - if (jj_scan_token(SEQUENCE)) return true; - return false; - } - - private boolean jj_3_927() { - if (jj_scan_token(SELF)) return true; - return false; - } - - private boolean jj_3_926() { - if (jj_scan_token(SECURITY)) return true; - return false; - } - - private boolean jj_3_925() { - if (jj_scan_token(SECTION)) return true; - return false; - } - - private boolean jj_3_924() { - if (jj_scan_token(SCOPE_SCHEMA)) return true; - return false; - } - - private boolean jj_3_923() { - if (jj_scan_token(SCOPE_NAME)) return true; - return false; - } - - private boolean jj_3_268() { - if (jj_3R_105()) return true; - if (jj_3R_106()) return true; - return false; - } - - private boolean jj_3_922() { - if (jj_scan_token(SCOPE_CATALOGS)) return true; - return false; - } - - private boolean jj_3_921() { - if (jj_scan_token(SCHEMA_NAME)) return true; - return false; - } - - private boolean jj_3_920() { - if (jj_scan_token(SCHEMA)) return true; - return false; - } - - private boolean jj_3_919() { - if (jj_scan_token(SCALE)) return true; - return false; - } - - private boolean jj_3_918() { - if (jj_scan_token(ROW_COUNT)) return true; - return false; - } - - private boolean jj_3_917() { - if (jj_scan_token(ROUTINE_SCHEMA)) return true; - return false; - } - - private boolean jj_3_263() { - if (jj_scan_token(ESCAPE)) return true; - if (jj_3R_103()) return true; - return false; - } - - private boolean jj_3_916() { - if (jj_scan_token(ROUTINE_NAME)) return true; - return false; - } - - private boolean jj_3_915() { - if (jj_scan_token(ROUTINE_CATALOG)) return true; - return false; - } - - private boolean jj_3_914() { - if (jj_scan_token(ROUTINE)) return true; - return false; - } - - private boolean jj_3_913() { - if (jj_scan_token(ROLE)) return true; - return false; - } - - private boolean jj_3_912() { - if (jj_scan_token(RETURNED_SQLSTATE)) return true; - return false; - } - - private boolean jj_3_911() { - if (jj_scan_token(RETURNED_OCTET_LENGTH)) return true; - return false; - } - - private boolean jj_3_910() { - if (jj_scan_token(RETURNED_LENGTH)) return true; - return false; - } - - private boolean jj_3_262() { - if (jj_scan_token(SIMILAR)) return true; - if (jj_scan_token(TO)) return true; - return false; - } - - private boolean jj_3_909() { - if (jj_scan_token(RETURNED_CARDINALITY)) return true; - return false; - } - - private boolean jj_3_259() { - if (jj_scan_token(SIMILAR)) return true; - if (jj_scan_token(TO)) return true; - return false; - } - - private boolean jj_3_908() { - if (jj_scan_token(RESTRICT)) return true; - return false; - } - - private boolean jj_3_261() { - if (jj_scan_token(LIKE)) return true; - return false; - } - - private boolean jj_3_907() { - if (jj_scan_token(RESTART)) return true; - return false; - } - - private boolean jj_3_258() { - if (jj_scan_token(LIKE)) return true; - return false; - } - - private boolean jj_3_906() { - if (jj_scan_token(REPLACE)) return true; - return false; - } - - private boolean jj_3_905() { - if (jj_scan_token(REPEATABLE)) return true; - return false; - } - - private boolean jj_3_904() { - if (jj_scan_token(RELATIVE)) return true; - return false; - } - - private boolean jj_3_903() { - if (jj_scan_token(READ)) return true; - return false; - } - - private boolean jj_3_902() { - if (jj_scan_token(QUARTER)) return true; - return false; - } - - private boolean jj_3_901() { - if (jj_scan_token(PUBLIC)) return true; - return false; - } - - private boolean jj_3_260() { - if (jj_scan_token(NOT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_258()) { - jj_scanpos = xsp; - if (jj_3_259()) return true; - } - return false; - } - - private boolean jj_3_900() { - if (jj_scan_token(PRIVILEGES)) return true; - return false; - } - - private boolean jj_3_899() { - if (jj_scan_token(PRIOR)) return true; - return false; - } - - private boolean jj_3_898() { - if (jj_scan_token(PRESERVE)) return true; - return false; - } - - private boolean jj_3_897() { - if (jj_scan_token(PRECEDING)) return true; - return false; - } - - private boolean jj_3_896() { - if (jj_scan_token(PLI)) return true; - return false; - } - - private boolean jj_3_895() { - if (jj_scan_token(PLAN)) return true; - return false; - } - - private boolean jj_3_894() { - if (jj_scan_token(PLACING)) return true; - return false; - } - - private boolean jj_3_893() { - if (jj_scan_token(PATH)) return true; - return false; - } - - private boolean jj_3_892() { - if (jj_scan_token(PAST)) return true; - return false; - } - - private boolean jj_3_254() { - if (jj_scan_token(ASYMMETRIC)) return true; - return false; - } - - private boolean jj_3_267() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_260()) { - jj_scanpos = xsp; - if (jj_3_261()) { - jj_scanpos = xsp; - if (jj_3_262()) return true; - } - } - if (jj_3R_104()) return true; - return false; - } - - private boolean jj_3_891() { - if (jj_scan_token(PASSTHROUGH)) return true; - return false; - } - - private boolean jj_3_890() { - if (jj_scan_token(PASCAL)) return true; - return false; - } - - private boolean jj_3_253() { - if (jj_scan_token(SYMMETRIC)) return true; - return false; - } - - private boolean jj_3_255() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_253()) { - jj_scanpos = xsp; - if (jj_3_254()) return true; - } - return false; - } - - private boolean jj_3_889() { - if (jj_scan_token(PARTIAL)) return true; - return false; - } - - private boolean jj_3_888() { - if (jj_scan_token(PARAMETER_SPECIFIC_SCHEMA)) return true; - return false; - } - - private boolean jj_3_887() { - if (jj_scan_token(PARAMETER_SPECIFIC_NAME)) return true; - return false; - } - - private boolean jj_3_886() { - if (jj_scan_token(PARAMETER_SPECIFIC_CATALOG)) return true; - return false; - } - - private boolean jj_3_885() { - if (jj_scan_token(PARAMETER_ORDINAL_POSITION)) return true; - return false; - } - - private boolean jj_3_884() { - if (jj_scan_token(PARAMETER_NAME)) return true; - return false; - } - - private boolean jj_3_883() { - if (jj_scan_token(PARAMETER_MODE)) return true; - return false; - } - - private boolean jj_3_882() { - if (jj_scan_token(PAD)) return true; - return false; - } - - private boolean jj_3_881() { - if (jj_scan_token(OVERRIDING)) return true; - return false; - } - - private boolean jj_3_251() { - if (jj_scan_token(ASYMMETRIC)) return true; - return false; - } - - private boolean jj_3_880() { - if (jj_scan_token(OUTPUT)) return true; - return false; - } - - private boolean jj_3_257() { - if (jj_scan_token(BETWEEN)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_255()) jj_scanpos = xsp; - return false; - } - - private boolean jj_3_879() { - if (jj_scan_token(OTHERS)) return true; - return false; - } - - private boolean jj_3_250() { - if (jj_scan_token(SYMMETRIC)) return true; - return false; - } - - private boolean jj_3_252() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_250()) { - jj_scanpos = xsp; - if (jj_3_251()) return true; - } - return false; - } - - private boolean jj_3_878() { - if (jj_scan_token(ORDINALITY)) return true; - return false; - } - - private boolean jj_3_877() { - if (jj_scan_token(ORDERING)) return true; - return false; - } - - private boolean jj_3_876() { - if (jj_scan_token(OPTIONS)) return true; - return false; - } - - private boolean jj_3_875() { - if (jj_scan_token(OPTION)) return true; - return false; - } - - private boolean jj_3_874() { - if (jj_scan_token(OCTETS)) return true; - return false; - } - - private boolean jj_3_873() { - if (jj_scan_token(OBJECT)) return true; - return false; - } - - private boolean jj_3_872() { - if (jj_scan_token(NUMBER)) return true; - return false; - } - - private boolean jj_3_871() { - if (jj_scan_token(NULLS)) return true; - return false; - } - - private boolean jj_3_870() { - if (jj_scan_token(NULLABLE)) return true; - return false; - } - - private boolean jj_3_256() { - if (jj_scan_token(NOT)) return true; - if (jj_scan_token(BETWEEN)) return true; - return false; - } - - private boolean jj_3_869() { - if (jj_scan_token(NORMALIZED)) return true; - return false; - } - - private boolean jj_3_868() { - if (jj_scan_token(NESTING)) return true; - return false; - } - - private boolean jj_3_867() { - if (jj_scan_token(NAMES)) return true; - return false; - } - - private boolean jj_3_866() { - if (jj_scan_token(NAME)) return true; - return false; - } - - private boolean jj_3_865() { - if (jj_scan_token(MUMPS)) return true; - return false; - } - - private boolean jj_3_864() { - if (jj_scan_token(MORE_)) return true; - return false; - } - - private boolean jj_3_863() { - if (jj_scan_token(MINVALUE)) return true; - return false; - } - - private boolean jj_3_862() { - if (jj_scan_token(MILLENNIUM)) return true; - return false; - } - - private boolean jj_3_266() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_256()) { - jj_scanpos = xsp; - if (jj_3_257()) return true; - } - if (jj_3R_103()) return true; - return false; - } - - private boolean jj_3_861() { - if (jj_scan_token(MESSAGE_TEXT)) return true; - return false; - } - - private boolean jj_3_860() { - if (jj_scan_token(MESSAGE_OCTET_LENGTH)) return true; - return false; - } - - private boolean jj_3_859() { - if (jj_scan_token(MESSAGE_LENGTH)) return true; - return false; - } - - private boolean jj_3_858() { - if (jj_scan_token(MICROSECOND)) return true; - return false; - } - - private boolean jj_3_857() { - if (jj_scan_token(MAXVALUE)) return true; - return false; - } - - private boolean jj_3_856() { - if (jj_scan_token(MATCHED)) return true; - return false; - } - - private boolean jj_3_855() { - if (jj_scan_token(MAP)) return true; - return false; - } - - private boolean jj_3_854() { - if (jj_scan_token(M)) return true; - return false; - } - - private boolean jj_3_853() { - if (jj_scan_token(LOCATOR)) return true; - return false; - } - - private boolean jj_3_852() { - if (jj_scan_token(LIBRARY)) return true; - return false; - } - - private boolean jj_3_851() { - if (jj_scan_token(LEVEL)) return true; - return false; - } - - private boolean jj_3_850() { - if (jj_scan_token(LENGTH)) return true; - return false; - } - - private boolean jj_3_849() { - if (jj_scan_token(LAST)) return true; - return false; - } - - private boolean jj_3_246() { - if (jj_scan_token(ALL)) return true; - return false; - } - - private boolean jj_3_848() { - if (jj_scan_token(LABEL)) return true; - return false; - } - - private boolean jj_3_847() { - if (jj_scan_token(KEY_TYPE)) return true; - return false; - } - - private boolean jj_3_245() { - if (jj_scan_token(ANY)) return true; - return false; - } - - private boolean jj_3_846() { - if (jj_scan_token(KEY_MEMBER)) return true; - return false; - } - - private boolean jj_3_845() { - if (jj_scan_token(KEY)) return true; - return false; - } - - private boolean jj_3_244() { - if (jj_scan_token(SOME)) return true; - return false; - } - - private boolean jj_3_844() { - if (jj_scan_token(K)) return true; - return false; - } - - private boolean jj_3_843() { - if (jj_scan_token(JSON)) return true; - return false; - } - - private boolean jj_3_842() { - if (jj_scan_token(JAVA)) return true; - return false; - } - - private boolean jj_3_841() { - if (jj_scan_token(ISOLATION)) return true; - return false; - } - - private boolean jj_3_840() { - if (jj_scan_token(INVOKER)) return true; - return false; - } - - private boolean jj_3_839() { - if (jj_scan_token(INSTANTIABLE)) return true; - return false; - } - - private boolean jj_3_838() { - if (jj_scan_token(INSTANCE)) return true; - return false; - } - - private boolean jj_3_249() { - if (jj_3R_102()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_244()) { - jj_scanpos = xsp; - if (jj_3_245()) { - jj_scanpos = xsp; - if (jj_3_246()) return true; - } - } - return false; - } - - private boolean jj_3_837() { - if (jj_scan_token(INPUT)) return true; - return false; - } - - private boolean jj_3_836() { - if (jj_scan_token(INITIALLY)) return true; - return false; - } - - private boolean jj_3_248() { - if (jj_scan_token(IN)) return true; - return false; - } - - private boolean jj_3_835() { - if (jj_scan_token(INCREMENT)) return true; - return false; - } - - private boolean jj_3_834() { - if (jj_scan_token(INCLUDING)) return true; - return false; - } - - private boolean jj_3_247() { - if (jj_scan_token(NOT)) return true; - if (jj_scan_token(IN)) return true; - return false; - } - - private boolean jj_3_833() { - if (jj_scan_token(IMPLEMENTATION)) return true; - return false; - } - - private boolean jj_3_832() { - if (jj_scan_token(IMMEDIATELY)) return true; - return false; - } - - private boolean jj_3_831() { - if (jj_scan_token(IMMEDIATE)) return true; - return false; - } - - private boolean jj_3_830() { - if (jj_scan_token(HIERARCHY)) return true; - return false; - } - - private boolean jj_3_829() { - if (jj_scan_token(GRANTED)) return true; - return false; - } - - private boolean jj_3_828() { - if (jj_scan_token(GOTO)) return true; - return false; - } - - private boolean jj_3_827() { - if (jj_scan_token(GO)) return true; - return false; - } - - private boolean jj_3_826() { - if (jj_scan_token(GEOMETRY)) return true; - return false; - } - - private boolean jj_3_265() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_247()) { - jj_scanpos = xsp; - if (jj_3_248()) { - jj_scanpos = xsp; - if (jj_3_249()) return true; - } - } - if (jj_3R_76()) return true; - return false; - } - - private boolean jj_3_825() { - if (jj_scan_token(GENERATED)) return true; - return false; - } - - private boolean jj_3_824() { - if (jj_scan_token(GENERAL)) return true; - return false; - } - - private boolean jj_3_823() { - if (jj_scan_token(G)) return true; - return false; - } - - private boolean jj_3_822() { - if (jj_scan_token(FRAC_SECOND)) return true; - return false; - } - - private boolean jj_3_821() { - if (jj_scan_token(FOUND)) return true; - return false; - } - - private boolean jj_3_820() { - if (jj_scan_token(FORTRAN)) return true; - return false; - } - - private boolean jj_3_819() { - if (jj_scan_token(FOLLOWING)) return true; - return false; - } - - private boolean jj_3_818() { - if (jj_scan_token(FIRST)) return true; - return false; - } - - private boolean jj_3_271() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_265()) { - jj_scanpos = xsp; - if (jj_3_266()) { - jj_scanpos = xsp; - if (jj_3_267()) { - jj_scanpos = xsp; - if (jj_3_268()) { - jj_scanpos = xsp; - if (jj_3_269()) { - jj_scanpos = xsp; - if (jj_3_270()) return true; - } - } - } - } - } - return false; - } - - private boolean jj_3_817() { - if (jj_scan_token(FINAL)) return true; - return false; - } - - private boolean jj_3_816() { - if (jj_scan_token(EXCLUDING)) return true; - return false; - } - - private boolean jj_3_815() { - if (jj_scan_token(EXCLUDE)) return true; - return false; - } - - private boolean jj_3_814() { - if (jj_scan_token(EXCEPTION)) return true; - return false; - } - - private boolean jj_3_813() { - if (jj_scan_token(EPOCH)) return true; - return false; - } - - private boolean jj_3_272() { - Token xsp; - if (jj_3_271()) return true; - while (true) { - xsp = jj_scanpos; - if (jj_3_271()) { jj_scanpos = xsp; break; } - } - return false; - } - - private boolean jj_3_812() { - if (jj_scan_token(DYNAMIC_FUNCTION_CODE)) return true; - return false; - } - - private boolean jj_3_811() { - if (jj_scan_token(DYNAMIC_FUNCTION)) return true; - return false; - } - - private boolean jj_3_810() { - if (jj_scan_token(DOY)) return true; - return false; - } - - private boolean jj_3_809() { - if (jj_scan_token(DOW)) return true; - return false; - } - - private boolean jj_3_808() { - if (jj_scan_token(DOMAIN)) return true; - return false; - } - - private boolean jj_3_807() { - if (jj_scan_token(DISPATCH)) return true; - return false; - } - - private boolean jj_3R_104() { - if (jj_3R_106()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3_272()) { - jj_scanpos = xsp; - if (jj_3R_182()) return true; - } - return false; - } - - private boolean jj_3_806() { - if (jj_scan_token(DIAGNOSTICS)) return true; - return false; - } - - private boolean jj_3_805() { - if (jj_scan_token(DESCRIPTOR)) return true; - return false; - } - - private boolean jj_3_804() { - if (jj_scan_token(DESCRIPTION)) return true; - return false; - } - - private boolean jj_3_803() { - if (jj_scan_token(DESC)) return true; - return false; - } - - private boolean jj_3_802() { - if (jj_scan_token(DERIVED)) return true; - return false; - } - - private boolean jj_3_801() { - if (jj_scan_token(DEPTH)) return true; - return false; - } - - private boolean jj_3_800() { - if (jj_scan_token(DEGREE)) return true; - return false; - } - - private boolean jj_3_799() { - if (jj_scan_token(DEFINER)) return true; - return false; - } - - private boolean jj_3_798() { - if (jj_scan_token(DEFINED)) return true; - return false; - } - - private boolean jj_3_797() { - if (jj_scan_token(DEFERRED)) return true; - return false; - } - - private boolean jj_3_796() { - if (jj_scan_token(DEFERRABLE)) return true; - return false; - } - - private boolean jj_3_795() { - if (jj_scan_token(DEFAULTS)) return true; - return false; - } - - private boolean jj_3_794() { - if (jj_scan_token(DECADE)) return true; - return false; - } - - private boolean jj_3_793() { - if (jj_scan_token(DATETIME_INTERVAL_PRECISION)) return true; - return false; - } - - private boolean jj_3_792() { - if (jj_scan_token(DATETIME_INTERVAL_CODE)) return true; - return false; - } - - private boolean jj_3_791() { - if (jj_scan_token(DATABASE)) return true; - return false; - } - - private boolean jj_3_790() { - if (jj_scan_token(DATA)) return true; - return false; - } - - private boolean jj_3_789() { - if (jj_scan_token(CURSOR_NAME)) return true; - return false; - } - - private boolean jj_3_788() { - if (jj_scan_token(CONTINUE)) return true; - return false; - } - - private boolean jj_3_787() { - if (jj_scan_token(CONSTRUCTOR)) return true; - return false; - } - - private boolean jj_3_786() { - if (jj_scan_token(CONSTRAINTS)) return true; - return false; - } - - private boolean jj_3_785() { - if (jj_scan_token(CONSTRAINT_SCHEMA)) return true; - return false; - } - - private boolean jj_3_784() { - if (jj_scan_token(CONSTRAINT_NAME)) return true; - return false; - } - - private boolean jj_3_783() { - if (jj_scan_token(CONSTRAINT_CATALOG)) return true; - return false; - } - - private boolean jj_3_782() { - if (jj_scan_token(CONNECTION_NAME)) return true; - return false; - } - - private boolean jj_3_781() { - if (jj_scan_token(CONNECTION)) return true; - return false; - } - - private boolean jj_3_780() { - if (jj_scan_token(CONDITION_NUMBER)) return true; - return false; - } - - private boolean jj_3_779() { - if (jj_scan_token(COMMITTED)) return true; - return false; - } - - private boolean jj_3_778() { - if (jj_scan_token(COMMAND_FUNCTION_CODE)) return true; - return false; - } - - private boolean jj_3_777() { - if (jj_scan_token(COMMAND_FUNCTION)) return true; - return false; - } - - private boolean jj_3_776() { - if (jj_scan_token(COLUMN_NAME)) return true; - return false; - } - - private boolean jj_3_243() { - if (jj_3R_101()) return true; - return false; - } - - private boolean jj_3_775() { - if (jj_scan_token(COLLATION_SCHEMA)) return true; - return false; - } - - /** Generated Token Manager. */ - public SqlParserImplTokenManager token_source; - SimpleCharStream 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; - /** Whether we are looking ahead. */ - private boolean jj_lookingAhead = false; - private boolean jj_semLA; - private int jj_gen; - final private int[] jj_la1 = new int[5]; - 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 private int[] jj_la1_8; - static private int[] jj_la1_9; - static private int[] jj_la1_10; - static private int[] jj_la1_11; - static private int[] jj_la1_12; - static private int[] jj_la1_13; - static private int[] jj_la1_14; - static private int[] jj_la1_15; - static private int[] jj_la1_16; - static private int[] jj_la1_17; - static private int[] jj_la1_18; - static private int[] jj_la1_19; - static private int[] jj_la1_20; - static private int[] jj_la1_21; - static private int[] jj_la1_22; - 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(); - jj_la1_init_8(); - jj_la1_init_9(); - jj_la1_init_10(); - jj_la1_init_11(); - jj_la1_init_12(); - jj_la1_init_13(); - jj_la1_init_14(); - jj_la1_init_15(); - jj_la1_init_16(); - jj_la1_init_17(); - jj_la1_init_18(); - jj_la1_init_19(); - jj_la1_init_20(); - jj_la1_init_21(); - jj_la1_init_22(); - } - private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_4() { - jj_la1_4 = new int[] {0x1,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_5() { - jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_6() { - jj_la1_6 = new int[] {0x1,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_7() { - jj_la1_7 = new int[] {0x8000000,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_8() { - jj_la1_8 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_9() { - jj_la1_9 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_10() { - jj_la1_10 = new int[] {0x200,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_11() { - jj_la1_11 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_12() { - jj_la1_12 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_13() { - jj_la1_13 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_14() { - jj_la1_14 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_15() { - jj_la1_15 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_16() { - jj_la1_16 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_17() { - jj_la1_17 = new int[] {0x1800000,0x0,0x0,0x0,0x2000000,}; - } - private static void jj_la1_init_18() { - jj_la1_18 = new int[] {0x4020000,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_19() { - jj_la1_19 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_20() { - jj_la1_20 = new int[] {0x1c3c70,0x10000,0x10000,0x10000,0x0,}; - } - private static void jj_la1_init_21() { - jj_la1_21 = new int[] {0xc0,0x0,0x0,0x0,0x0,}; - } - private static void jj_la1_init_22() { - jj_la1_22 = new int[] {0x0,0x0,0x0,0x0,0x0,}; - } - final private JJCalls[] jj_2_rtns = new JJCalls[1026]; - private boolean jj_rescan = false; - private int jj_gc = 0; - - /** Constructor with InputStream. */ - public SqlParserImpl(java.io.InputStream stream) { - this(stream, null); - } - /** Constructor with InputStream and supplied encoding */ - public SqlParserImpl(java.io.InputStream stream, String encoding) { - try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } - token_source = new SqlParserImplTokenManager(jj_input_stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 5; 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; - jj_gen = 0; - for (int i = 0; i < 5; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); - } - - /** Constructor. */ - public SqlParserImpl(java.io.Reader stream) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - token_source = new SqlParserImplTokenManager(jj_input_stream); - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 5; 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; - jj_gen = 0; - for (int i = 0; i < 5; 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 SqlParserImpl(SqlParserImplTokenManager tm) { - token_source = tm; - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 5; 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(SqlParserImplTokenManager tm) { - token_source = tm; - token = new Token(); - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 5; 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 = jj_lookingAhead ? jj_scanpos : 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 jj_expentries = new java.util.ArrayList(); - 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[711]; - if (jj_kind >= 0) { - la1tokens[jj_kind] = true; - jj_kind = -1; - } - for (int i = 0; i < 5; i++) { - if (jj_la1[i] == jj_gen) { - for (int j = 0; j < 32; j++) { - if ((jj_la1_0[i] & (1< 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; - case 20: jj_3_21(); break; - case 21: jj_3_22(); break; - case 22: jj_3_23(); break; - case 23: jj_3_24(); break; - case 24: jj_3_25(); break; - case 25: jj_3_26(); break; - case 26: jj_3_27(); break; - case 27: jj_3_28(); break; - case 28: jj_3_29(); break; - case 29: jj_3_30(); break; - case 30: jj_3_31(); break; - case 31: jj_3_32(); break; - case 32: jj_3_33(); break; - case 33: jj_3_34(); break; - case 34: jj_3_35(); break; - case 35: jj_3_36(); break; - case 36: jj_3_37(); break; - case 37: jj_3_38(); break; - case 38: jj_3_39(); break; - case 39: jj_3_40(); break; - case 40: jj_3_41(); break; - case 41: jj_3_42(); break; - case 42: jj_3_43(); break; - case 43: jj_3_44(); break; - case 44: jj_3_45(); break; - case 45: jj_3_46(); break; - case 46: jj_3_47(); break; - case 47: jj_3_48(); break; - case 48: jj_3_49(); break; - case 49: jj_3_50(); break; - case 50: jj_3_51(); break; - case 51: jj_3_52(); break; - case 52: jj_3_53(); break; - case 53: jj_3_54(); break; - case 54: jj_3_55(); break; - case 55: jj_3_56(); break; - case 56: jj_3_57(); break; - case 57: jj_3_58(); break; - case 58: jj_3_59(); break; - case 59: jj_3_60(); break; - case 60: jj_3_61(); break; - case 61: jj_3_62(); break; - case 62: jj_3_63(); break; - case 63: jj_3_64(); break; - case 64: jj_3_65(); break; - case 65: jj_3_66(); break; - case 66: jj_3_67(); break; - case 67: jj_3_68(); break; - case 68: jj_3_69(); break; - case 69: jj_3_70(); break; - case 70: jj_3_71(); break; - case 71: jj_3_72(); break; - case 72: jj_3_73(); break; - case 73: jj_3_74(); break; - case 74: jj_3_75(); break; - case 75: jj_3_76(); break; - case 76: jj_3_77(); break; - case 77: jj_3_78(); break; - case 78: jj_3_79(); break; - case 79: jj_3_80(); break; - case 80: jj_3_81(); break; - case 81: jj_3_82(); break; - case 82: jj_3_83(); break; - case 83: jj_3_84(); break; - case 84: jj_3_85(); break; - case 85: jj_3_86(); break; - case 86: jj_3_87(); break; - case 87: jj_3_88(); break; - case 88: jj_3_89(); break; - case 89: jj_3_90(); break; - case 90: jj_3_91(); break; - case 91: jj_3_92(); break; - case 92: jj_3_93(); break; - case 93: jj_3_94(); break; - case 94: jj_3_95(); break; - case 95: jj_3_96(); break; - case 96: jj_3_97(); break; - case 97: jj_3_98(); break; - case 98: jj_3_99(); break; - case 99: jj_3_100(); break; - case 100: jj_3_101(); break; - case 101: jj_3_102(); break; - case 102: jj_3_103(); break; - case 103: jj_3_104(); break; - case 104: jj_3_105(); break; - case 105: jj_3_106(); break; - case 106: jj_3_107(); break; - case 107: jj_3_108(); break; - case 108: jj_3_109(); break; - case 109: jj_3_110(); break; - case 110: jj_3_111(); break; - case 111: jj_3_112(); break; - case 112: jj_3_113(); break; - case 113: jj_3_114(); break; - case 114: jj_3_115(); break; - case 115: jj_3_116(); break; - case 116: jj_3_117(); break; - case 117: jj_3_118(); break; - case 118: jj_3_119(); break; - case 119: jj_3_120(); break; - case 120: jj_3_121(); break; - case 121: jj_3_122(); break; - case 122: jj_3_123(); break; - case 123: jj_3_124(); break; - case 124: jj_3_125(); break; - case 125: jj_3_126(); break; - case 126: jj_3_127(); break; - case 127: jj_3_128(); break; - case 128: jj_3_129(); break; - case 129: jj_3_130(); break; - case 130: jj_3_131(); break; - case 131: jj_3_132(); break; - case 132: jj_3_133(); break; - case 133: jj_3_134(); break; - case 134: jj_3_135(); break; - case 135: jj_3_136(); break; - case 136: jj_3_137(); break; - case 137: jj_3_138(); break; - case 138: jj_3_139(); break; - case 139: jj_3_140(); break; - case 140: jj_3_141(); break; - case 141: jj_3_142(); break; - case 142: jj_3_143(); break; - case 143: jj_3_144(); break; - case 144: jj_3_145(); break; - case 145: jj_3_146(); break; - case 146: jj_3_147(); break; - case 147: jj_3_148(); break; - case 148: jj_3_149(); break; - case 149: jj_3_150(); break; - case 150: jj_3_151(); break; - case 151: jj_3_152(); break; - case 152: jj_3_153(); break; - case 153: jj_3_154(); break; - case 154: jj_3_155(); break; - case 155: jj_3_156(); break; - case 156: jj_3_157(); break; - case 157: jj_3_158(); break; - case 158: jj_3_159(); break; - case 159: jj_3_160(); break; - case 160: jj_3_161(); break; - case 161: jj_3_162(); break; - case 162: jj_3_163(); break; - case 163: jj_3_164(); break; - case 164: jj_3_165(); break; - case 165: jj_3_166(); break; - case 166: jj_3_167(); break; - case 167: jj_3_168(); break; - case 168: jj_3_169(); break; - case 169: jj_3_170(); break; - case 170: jj_3_171(); break; - case 171: jj_3_172(); break; - case 172: jj_3_173(); break; - case 173: jj_3_174(); break; - case 174: jj_3_175(); break; - case 175: jj_3_176(); break; - case 176: jj_3_177(); break; - case 177: jj_3_178(); break; - case 178: jj_3_179(); break; - case 179: jj_3_180(); break; - case 180: jj_3_181(); break; - case 181: jj_3_182(); break; - case 182: jj_3_183(); break; - case 183: jj_3_184(); break; - case 184: jj_3_185(); break; - case 185: jj_3_186(); break; - case 186: jj_3_187(); break; - case 187: jj_3_188(); break; - case 188: jj_3_189(); break; - case 189: jj_3_190(); break; - case 190: jj_3_191(); break; - case 191: jj_3_192(); break; - case 192: jj_3_193(); break; - case 193: jj_3_194(); break; - case 194: jj_3_195(); break; - case 195: jj_3_196(); break; - case 196: jj_3_197(); break; - case 197: jj_3_198(); break; - case 198: jj_3_199(); break; - case 199: jj_3_200(); break; - case 200: jj_3_201(); break; - case 201: jj_3_202(); break; - case 202: jj_3_203(); break; - case 203: jj_3_204(); break; - case 204: jj_3_205(); break; - case 205: jj_3_206(); break; - case 206: jj_3_207(); break; - case 207: jj_3_208(); break; - case 208: jj_3_209(); break; - case 209: jj_3_210(); break; - case 210: jj_3_211(); break; - case 211: jj_3_212(); break; - case 212: jj_3_213(); break; - case 213: jj_3_214(); break; - case 214: jj_3_215(); break; - case 215: jj_3_216(); break; - case 216: jj_3_217(); break; - case 217: jj_3_218(); break; - case 218: jj_3_219(); break; - case 219: jj_3_220(); break; - case 220: jj_3_221(); break; - case 221: jj_3_222(); break; - case 222: jj_3_223(); break; - case 223: jj_3_224(); break; - case 224: jj_3_225(); break; - case 225: jj_3_226(); break; - case 226: jj_3_227(); break; - case 227: jj_3_228(); break; - case 228: jj_3_229(); break; - case 229: jj_3_230(); break; - case 230: jj_3_231(); break; - case 231: jj_3_232(); break; - case 232: jj_3_233(); break; - case 233: jj_3_234(); break; - case 234: jj_3_235(); break; - case 235: jj_3_236(); break; - case 236: jj_3_237(); break; - case 237: jj_3_238(); break; - case 238: jj_3_239(); break; - case 239: jj_3_240(); break; - case 240: jj_3_241(); break; - case 241: jj_3_242(); break; - case 242: jj_3_243(); break; - case 243: jj_3_244(); break; - case 244: jj_3_245(); break; - case 245: jj_3_246(); break; - case 246: jj_3_247(); break; - case 247: jj_3_248(); break; - case 248: jj_3_249(); break; - case 249: jj_3_250(); break; - case 250: jj_3_251(); break; - case 251: jj_3_252(); break; - case 252: jj_3_253(); break; - case 253: jj_3_254(); break; - case 254: jj_3_255(); break; - case 255: jj_3_256(); break; - case 256: jj_3_257(); break; - case 257: jj_3_258(); break; - case 258: jj_3_259(); break; - case 259: jj_3_260(); break; - case 260: jj_3_261(); break; - case 261: jj_3_262(); break; - case 262: jj_3_263(); break; - case 263: jj_3_264(); break; - case 264: jj_3_265(); break; - case 265: jj_3_266(); break; - case 266: jj_3_267(); break; - case 267: jj_3_268(); break; - case 268: jj_3_269(); break; - case 269: jj_3_270(); break; - case 270: jj_3_271(); break; - case 271: jj_3_272(); break; - case 272: jj_3_273(); break; - case 273: jj_3_274(); break; - case 274: jj_3_275(); break; - case 275: jj_3_276(); break; - case 276: jj_3_277(); break; - case 277: jj_3_278(); break; - case 278: jj_3_279(); break; - case 279: jj_3_280(); break; - case 280: jj_3_281(); break; - case 281: jj_3_282(); break; - case 282: jj_3_283(); break; - case 283: jj_3_284(); break; - case 284: jj_3_285(); break; - case 285: jj_3_286(); break; - case 286: jj_3_287(); break; - case 287: jj_3_288(); break; - case 288: jj_3_289(); break; - case 289: jj_3_290(); break; - case 290: jj_3_291(); break; - case 291: jj_3_292(); break; - case 292: jj_3_293(); break; - case 293: jj_3_294(); break; - case 294: jj_3_295(); break; - case 295: jj_3_296(); break; - case 296: jj_3_297(); break; - case 297: jj_3_298(); break; - case 298: jj_3_299(); break; - case 299: jj_3_300(); break; - case 300: jj_3_301(); break; - case 301: jj_3_302(); break; - case 302: jj_3_303(); break; - case 303: jj_3_304(); break; - case 304: jj_3_305(); break; - case 305: jj_3_306(); break; - case 306: jj_3_307(); break; - case 307: jj_3_308(); break; - case 308: jj_3_309(); break; - case 309: jj_3_310(); break; - case 310: jj_3_311(); break; - case 311: jj_3_312(); break; - case 312: jj_3_313(); break; - case 313: jj_3_314(); break; - case 314: jj_3_315(); break; - case 315: jj_3_316(); break; - case 316: jj_3_317(); break; - case 317: jj_3_318(); break; - case 318: jj_3_319(); break; - case 319: jj_3_320(); break; - case 320: jj_3_321(); break; - case 321: jj_3_322(); break; - case 322: jj_3_323(); break; - case 323: jj_3_324(); break; - case 324: jj_3_325(); break; - case 325: jj_3_326(); break; - case 326: jj_3_327(); break; - case 327: jj_3_328(); break; - case 328: jj_3_329(); break; - case 329: jj_3_330(); break; - case 330: jj_3_331(); break; - case 331: jj_3_332(); break; - case 332: jj_3_333(); break; - case 333: jj_3_334(); break; - case 334: jj_3_335(); break; - case 335: jj_3_336(); break; - case 336: jj_3_337(); break; - case 337: jj_3_338(); break; - case 338: jj_3_339(); break; - case 339: jj_3_340(); break; - case 340: jj_3_341(); break; - case 341: jj_3_342(); break; - case 342: jj_3_343(); break; - case 343: jj_3_344(); break; - case 344: jj_3_345(); break; - case 345: jj_3_346(); break; - case 346: jj_3_347(); break; - case 347: jj_3_348(); break; - case 348: jj_3_349(); break; - case 349: jj_3_350(); break; - case 350: jj_3_351(); break; - case 351: jj_3_352(); break; - case 352: jj_3_353(); break; - case 353: jj_3_354(); break; - case 354: jj_3_355(); break; - case 355: jj_3_356(); break; - case 356: jj_3_357(); break; - case 357: jj_3_358(); break; - case 358: jj_3_359(); break; - case 359: jj_3_360(); break; - case 360: jj_3_361(); break; - case 361: jj_3_362(); break; - case 362: jj_3_363(); break; - case 363: jj_3_364(); break; - case 364: jj_3_365(); break; - case 365: jj_3_366(); break; - case 366: jj_3_367(); break; - case 367: jj_3_368(); break; - case 368: jj_3_369(); break; - case 369: jj_3_370(); break; - case 370: jj_3_371(); break; - case 371: jj_3_372(); break; - case 372: jj_3_373(); break; - case 373: jj_3_374(); break; - case 374: jj_3_375(); break; - case 375: jj_3_376(); break; - case 376: jj_3_377(); break; - case 377: jj_3_378(); break; - case 378: jj_3_379(); break; - case 379: jj_3_380(); break; - case 380: jj_3_381(); break; - case 381: jj_3_382(); break; - case 382: jj_3_383(); break; - case 383: jj_3_384(); break; - case 384: jj_3_385(); break; - case 385: jj_3_386(); break; - case 386: jj_3_387(); break; - case 387: jj_3_388(); break; - case 388: jj_3_389(); break; - case 389: jj_3_390(); break; - case 390: jj_3_391(); break; - case 391: jj_3_392(); break; - case 392: jj_3_393(); break; - case 393: jj_3_394(); break; - case 394: jj_3_395(); break; - case 395: jj_3_396(); break; - case 396: jj_3_397(); break; - case 397: jj_3_398(); break; - case 398: jj_3_399(); break; - case 399: jj_3_400(); break; - case 400: jj_3_401(); break; - case 401: jj_3_402(); break; - case 402: jj_3_403(); break; - case 403: jj_3_404(); break; - case 404: jj_3_405(); break; - case 405: jj_3_406(); break; - case 406: jj_3_407(); break; - case 407: jj_3_408(); break; - case 408: jj_3_409(); break; - case 409: jj_3_410(); break; - case 410: jj_3_411(); break; - case 411: jj_3_412(); break; - case 412: jj_3_413(); break; - case 413: jj_3_414(); break; - case 414: jj_3_415(); break; - case 415: jj_3_416(); break; - case 416: jj_3_417(); break; - case 417: jj_3_418(); break; - case 418: jj_3_419(); break; - case 419: jj_3_420(); break; - case 420: jj_3_421(); break; - case 421: jj_3_422(); break; - case 422: jj_3_423(); break; - case 423: jj_3_424(); break; - case 424: jj_3_425(); break; - case 425: jj_3_426(); break; - case 426: jj_3_427(); break; - case 427: jj_3_428(); break; - case 428: jj_3_429(); break; - case 429: jj_3_430(); break; - case 430: jj_3_431(); break; - case 431: jj_3_432(); break; - case 432: jj_3_433(); break; - case 433: jj_3_434(); break; - case 434: jj_3_435(); break; - case 435: jj_3_436(); break; - case 436: jj_3_437(); break; - case 437: jj_3_438(); break; - case 438: jj_3_439(); break; - case 439: jj_3_440(); break; - case 440: jj_3_441(); break; - case 441: jj_3_442(); break; - case 442: jj_3_443(); break; - case 443: jj_3_444(); break; - case 444: jj_3_445(); break; - case 445: jj_3_446(); break; - case 446: jj_3_447(); break; - case 447: jj_3_448(); break; - case 448: jj_3_449(); break; - case 449: jj_3_450(); break; - case 450: jj_3_451(); break; - case 451: jj_3_452(); break; - case 452: jj_3_453(); break; - case 453: jj_3_454(); break; - case 454: jj_3_455(); break; - case 455: jj_3_456(); break; - case 456: jj_3_457(); break; - case 457: jj_3_458(); break; - case 458: jj_3_459(); break; - case 459: jj_3_460(); break; - case 460: jj_3_461(); break; - case 461: jj_3_462(); break; - case 462: jj_3_463(); break; - case 463: jj_3_464(); break; - case 464: jj_3_465(); break; - case 465: jj_3_466(); break; - case 466: jj_3_467(); break; - case 467: jj_3_468(); break; - case 468: jj_3_469(); break; - case 469: jj_3_470(); break; - case 470: jj_3_471(); break; - case 471: jj_3_472(); break; - case 472: jj_3_473(); break; - case 473: jj_3_474(); break; - case 474: jj_3_475(); break; - case 475: jj_3_476(); break; - case 476: jj_3_477(); break; - case 477: jj_3_478(); break; - case 478: jj_3_479(); break; - case 479: jj_3_480(); break; - case 480: jj_3_481(); break; - case 481: jj_3_482(); break; - case 482: jj_3_483(); break; - case 483: jj_3_484(); break; - case 484: jj_3_485(); break; - case 485: jj_3_486(); break; - case 486: jj_3_487(); break; - case 487: jj_3_488(); break; - case 488: jj_3_489(); break; - case 489: jj_3_490(); break; - case 490: jj_3_491(); break; - case 491: jj_3_492(); break; - case 492: jj_3_493(); break; - case 493: jj_3_494(); break; - case 494: jj_3_495(); break; - case 495: jj_3_496(); break; - case 496: jj_3_497(); break; - case 497: jj_3_498(); break; - case 498: jj_3_499(); break; - case 499: jj_3_500(); break; - case 500: jj_3_501(); break; - case 501: jj_3_502(); break; - case 502: jj_3_503(); break; - case 503: jj_3_504(); break; - case 504: jj_3_505(); break; - case 505: jj_3_506(); break; - case 506: jj_3_507(); break; - case 507: jj_3_508(); break; - case 508: jj_3_509(); break; - case 509: jj_3_510(); break; - case 510: jj_3_511(); break; - case 511: jj_3_512(); break; - case 512: jj_3_513(); break; - case 513: jj_3_514(); break; - case 514: jj_3_515(); break; - case 515: jj_3_516(); break; - case 516: jj_3_517(); break; - case 517: jj_3_518(); break; - case 518: jj_3_519(); break; - case 519: jj_3_520(); break; - case 520: jj_3_521(); break; - case 521: jj_3_522(); break; - case 522: jj_3_523(); break; - case 523: jj_3_524(); break; - case 524: jj_3_525(); break; - case 525: jj_3_526(); break; - case 526: jj_3_527(); break; - case 527: jj_3_528(); break; - case 528: jj_3_529(); break; - case 529: jj_3_530(); break; - case 530: jj_3_531(); break; - case 531: jj_3_532(); break; - case 532: jj_3_533(); break; - case 533: jj_3_534(); break; - case 534: jj_3_535(); break; - case 535: jj_3_536(); break; - case 536: jj_3_537(); break; - case 537: jj_3_538(); break; - case 538: jj_3_539(); break; - case 539: jj_3_540(); break; - case 540: jj_3_541(); break; - case 541: jj_3_542(); break; - case 542: jj_3_543(); break; - case 543: jj_3_544(); break; - case 544: jj_3_545(); break; - case 545: jj_3_546(); break; - case 546: jj_3_547(); break; - case 547: jj_3_548(); break; - case 548: jj_3_549(); break; - case 549: jj_3_550(); break; - case 550: jj_3_551(); break; - case 551: jj_3_552(); break; - case 552: jj_3_553(); break; - case 553: jj_3_554(); break; - case 554: jj_3_555(); break; - case 555: jj_3_556(); break; - case 556: jj_3_557(); break; - case 557: jj_3_558(); break; - case 558: jj_3_559(); break; - case 559: jj_3_560(); break; - case 560: jj_3_561(); break; - case 561: jj_3_562(); break; - case 562: jj_3_563(); break; - case 563: jj_3_564(); break; - case 564: jj_3_565(); break; - case 565: jj_3_566(); break; - case 566: jj_3_567(); break; - case 567: jj_3_568(); break; - case 568: jj_3_569(); break; - case 569: jj_3_570(); break; - case 570: jj_3_571(); break; - case 571: jj_3_572(); break; - case 572: jj_3_573(); break; - case 573: jj_3_574(); break; - case 574: jj_3_575(); break; - case 575: jj_3_576(); break; - case 576: jj_3_577(); break; - case 577: jj_3_578(); break; - case 578: jj_3_579(); break; - case 579: jj_3_580(); break; - case 580: jj_3_581(); break; - case 581: jj_3_582(); break; - case 582: jj_3_583(); break; - case 583: jj_3_584(); break; - case 584: jj_3_585(); break; - case 585: jj_3_586(); break; - case 586: jj_3_587(); break; - case 587: jj_3_588(); break; - case 588: jj_3_589(); break; - case 589: jj_3_590(); break; - case 590: jj_3_591(); break; - case 591: jj_3_592(); break; - case 592: jj_3_593(); break; - case 593: jj_3_594(); break; - case 594: jj_3_595(); break; - case 595: jj_3_596(); break; - case 596: jj_3_597(); break; - case 597: jj_3_598(); break; - case 598: jj_3_599(); break; - case 599: jj_3_600(); break; - case 600: jj_3_601(); break; - case 601: jj_3_602(); break; - case 602: jj_3_603(); break; - case 603: jj_3_604(); break; - case 604: jj_3_605(); break; - case 605: jj_3_606(); break; - case 606: jj_3_607(); break; - case 607: jj_3_608(); break; - case 608: jj_3_609(); break; - case 609: jj_3_610(); break; - case 610: jj_3_611(); break; - case 611: jj_3_612(); break; - case 612: jj_3_613(); break; - case 613: jj_3_614(); break; - case 614: jj_3_615(); break; - case 615: jj_3_616(); break; - case 616: jj_3_617(); break; - case 617: jj_3_618(); break; - case 618: jj_3_619(); break; - case 619: jj_3_620(); break; - case 620: jj_3_621(); break; - case 621: jj_3_622(); break; - case 622: jj_3_623(); break; - case 623: jj_3_624(); break; - case 624: jj_3_625(); break; - case 625: jj_3_626(); break; - case 626: jj_3_627(); break; - case 627: jj_3_628(); break; - case 628: jj_3_629(); break; - case 629: jj_3_630(); break; - case 630: jj_3_631(); break; - case 631: jj_3_632(); break; - case 632: jj_3_633(); break; - case 633: jj_3_634(); break; - case 634: jj_3_635(); break; - case 635: jj_3_636(); break; - case 636: jj_3_637(); break; - case 637: jj_3_638(); break; - case 638: jj_3_639(); break; - case 639: jj_3_640(); break; - case 640: jj_3_641(); break; - case 641: jj_3_642(); break; - case 642: jj_3_643(); break; - case 643: jj_3_644(); break; - case 644: jj_3_645(); break; - case 645: jj_3_646(); break; - case 646: jj_3_647(); break; - case 647: jj_3_648(); break; - case 648: jj_3_649(); break; - case 649: jj_3_650(); break; - case 650: jj_3_651(); break; - case 651: jj_3_652(); break; - case 652: jj_3_653(); break; - case 653: jj_3_654(); break; - case 654: jj_3_655(); break; - case 655: jj_3_656(); break; - case 656: jj_3_657(); break; - case 657: jj_3_658(); break; - case 658: jj_3_659(); break; - case 659: jj_3_660(); break; - case 660: jj_3_661(); break; - case 661: jj_3_662(); break; - case 662: jj_3_663(); break; - case 663: jj_3_664(); break; - case 664: jj_3_665(); break; - case 665: jj_3_666(); break; - case 666: jj_3_667(); break; - case 667: jj_3_668(); break; - case 668: jj_3_669(); break; - case 669: jj_3_670(); break; - case 670: jj_3_671(); break; - case 671: jj_3_672(); break; - case 672: jj_3_673(); break; - case 673: jj_3_674(); break; - case 674: jj_3_675(); break; - case 675: jj_3_676(); break; - case 676: jj_3_677(); break; - case 677: jj_3_678(); break; - case 678: jj_3_679(); break; - case 679: jj_3_680(); break; - case 680: jj_3_681(); break; - case 681: jj_3_682(); break; - case 682: jj_3_683(); break; - case 683: jj_3_684(); break; - case 684: jj_3_685(); break; - case 685: jj_3_686(); break; - case 686: jj_3_687(); break; - case 687: jj_3_688(); break; - case 688: jj_3_689(); break; - case 689: jj_3_690(); break; - case 690: jj_3_691(); break; - case 691: jj_3_692(); break; - case 692: jj_3_693(); break; - case 693: jj_3_694(); break; - case 694: jj_3_695(); break; - case 695: jj_3_696(); break; - case 696: jj_3_697(); break; - case 697: jj_3_698(); break; - case 698: jj_3_699(); break; - case 699: jj_3_700(); break; - case 700: jj_3_701(); break; - case 701: jj_3_702(); break; - case 702: jj_3_703(); break; - case 703: jj_3_704(); break; - case 704: jj_3_705(); break; - case 705: jj_3_706(); break; - case 706: jj_3_707(); break; - case 707: jj_3_708(); break; - case 708: jj_3_709(); break; - case 709: jj_3_710(); break; - case 710: jj_3_711(); break; - case 711: jj_3_712(); break; - case 712: jj_3_713(); break; - case 713: jj_3_714(); break; - case 714: jj_3_715(); break; - case 715: jj_3_716(); break; - case 716: jj_3_717(); break; - case 717: jj_3_718(); break; - case 718: jj_3_719(); break; - case 719: jj_3_720(); break; - case 720: jj_3_721(); break; - case 721: jj_3_722(); break; - case 722: jj_3_723(); break; - case 723: jj_3_724(); break; - case 724: jj_3_725(); break; - case 725: jj_3_726(); break; - case 726: jj_3_727(); break; - case 727: jj_3_728(); break; - case 728: jj_3_729(); break; - case 729: jj_3_730(); break; - case 730: jj_3_731(); break; - case 731: jj_3_732(); break; - case 732: jj_3_733(); break; - case 733: jj_3_734(); break; - case 734: jj_3_735(); break; - case 735: jj_3_736(); break; - case 736: jj_3_737(); break; - case 737: jj_3_738(); break; - case 738: jj_3_739(); break; - case 739: jj_3_740(); break; - case 740: jj_3_741(); break; - case 741: jj_3_742(); break; - case 742: jj_3_743(); break; - case 743: jj_3_744(); break; - case 744: jj_3_745(); break; - case 745: jj_3_746(); break; - case 746: jj_3_747(); break; - case 747: jj_3_748(); break; - case 748: jj_3_749(); break; - case 749: jj_3_750(); break; - case 750: jj_3_751(); break; - case 751: jj_3_752(); break; - case 752: jj_3_753(); break; - case 753: jj_3_754(); break; - case 754: jj_3_755(); break; - case 755: jj_3_756(); break; - case 756: jj_3_757(); break; - case 757: jj_3_758(); break; - case 758: jj_3_759(); break; - case 759: jj_3_760(); break; - case 760: jj_3_761(); break; - case 761: jj_3_762(); break; - case 762: jj_3_763(); break; - case 763: jj_3_764(); break; - case 764: jj_3_765(); break; - case 765: jj_3_766(); break; - case 766: jj_3_767(); break; - case 767: jj_3_768(); break; - case 768: jj_3_769(); break; - case 769: jj_3_770(); break; - case 770: jj_3_771(); break; - case 771: jj_3_772(); break; - case 772: jj_3_773(); break; - case 773: jj_3_774(); break; - case 774: jj_3_775(); break; - case 775: jj_3_776(); break; - case 776: jj_3_777(); break; - case 777: jj_3_778(); break; - case 778: jj_3_779(); break; - case 779: jj_3_780(); break; - case 780: jj_3_781(); break; - case 781: jj_3_782(); break; - case 782: jj_3_783(); break; - case 783: jj_3_784(); break; - case 784: jj_3_785(); break; - case 785: jj_3_786(); break; - case 786: jj_3_787(); break; - case 787: jj_3_788(); break; - case 788: jj_3_789(); break; - case 789: jj_3_790(); break; - case 790: jj_3_791(); break; - case 791: jj_3_792(); break; - case 792: jj_3_793(); break; - case 793: jj_3_794(); break; - case 794: jj_3_795(); break; - case 795: jj_3_796(); break; - case 796: jj_3_797(); break; - case 797: jj_3_798(); break; - case 798: jj_3_799(); break; - case 799: jj_3_800(); break; - case 800: jj_3_801(); break; - case 801: jj_3_802(); break; - case 802: jj_3_803(); break; - case 803: jj_3_804(); break; - case 804: jj_3_805(); break; - case 805: jj_3_806(); break; - case 806: jj_3_807(); break; - case 807: jj_3_808(); break; - case 808: jj_3_809(); break; - case 809: jj_3_810(); break; - case 810: jj_3_811(); break; - case 811: jj_3_812(); break; - case 812: jj_3_813(); break; - case 813: jj_3_814(); break; - case 814: jj_3_815(); break; - case 815: jj_3_816(); break; - case 816: jj_3_817(); break; - case 817: jj_3_818(); break; - case 818: jj_3_819(); break; - case 819: jj_3_820(); break; - case 820: jj_3_821(); break; - case 821: jj_3_822(); break; - case 822: jj_3_823(); break; - case 823: jj_3_824(); break; - case 824: jj_3_825(); break; - case 825: jj_3_826(); break; - case 826: jj_3_827(); break; - case 827: jj_3_828(); break; - case 828: jj_3_829(); break; - case 829: jj_3_830(); break; - case 830: jj_3_831(); break; - case 831: jj_3_832(); break; - case 832: jj_3_833(); break; - case 833: jj_3_834(); break; - case 834: jj_3_835(); break; - case 835: jj_3_836(); break; - case 836: jj_3_837(); break; - case 837: jj_3_838(); break; - case 838: jj_3_839(); break; - case 839: jj_3_840(); break; - case 840: jj_3_841(); break; - case 841: jj_3_842(); break; - case 842: jj_3_843(); break; - case 843: jj_3_844(); break; - case 844: jj_3_845(); break; - case 845: jj_3_846(); break; - case 846: jj_3_847(); break; - case 847: jj_3_848(); break; - case 848: jj_3_849(); break; - case 849: jj_3_850(); break; - case 850: jj_3_851(); break; - case 851: jj_3_852(); break; - case 852: jj_3_853(); break; - case 853: jj_3_854(); break; - case 854: jj_3_855(); break; - case 855: jj_3_856(); break; - case 856: jj_3_857(); break; - case 857: jj_3_858(); break; - case 858: jj_3_859(); break; - case 859: jj_3_860(); break; - case 860: jj_3_861(); break; - case 861: jj_3_862(); break; - case 862: jj_3_863(); break; - case 863: jj_3_864(); break; - case 864: jj_3_865(); break; - case 865: jj_3_866(); break; - case 866: jj_3_867(); break; - case 867: jj_3_868(); break; - case 868: jj_3_869(); break; - case 869: jj_3_870(); break; - case 870: jj_3_871(); break; - case 871: jj_3_872(); break; - case 872: jj_3_873(); break; - case 873: jj_3_874(); break; - case 874: jj_3_875(); break; - case 875: jj_3_876(); break; - case 876: jj_3_877(); break; - case 877: jj_3_878(); break; - case 878: jj_3_879(); break; - case 879: jj_3_880(); break; - case 880: jj_3_881(); break; - case 881: jj_3_882(); break; - case 882: jj_3_883(); break; - case 883: jj_3_884(); break; - case 884: jj_3_885(); break; - case 885: jj_3_886(); break; - case 886: jj_3_887(); break; - case 887: jj_3_888(); break; - case 888: jj_3_889(); break; - case 889: jj_3_890(); break; - case 890: jj_3_891(); break; - case 891: jj_3_892(); break; - case 892: jj_3_893(); break; - case 893: jj_3_894(); break; - case 894: jj_3_895(); break; - case 895: jj_3_896(); break; - case 896: jj_3_897(); break; - case 897: jj_3_898(); break; - case 898: jj_3_899(); break; - case 899: jj_3_900(); break; - case 900: jj_3_901(); break; - case 901: jj_3_902(); break; - case 902: jj_3_903(); break; - case 903: jj_3_904(); break; - case 904: jj_3_905(); break; - case 905: jj_3_906(); break; - case 906: jj_3_907(); break; - case 907: jj_3_908(); break; - case 908: jj_3_909(); break; - case 909: jj_3_910(); break; - case 910: jj_3_911(); break; - case 911: jj_3_912(); break; - case 912: jj_3_913(); break; - case 913: jj_3_914(); break; - case 914: jj_3_915(); break; - case 915: jj_3_916(); break; - case 916: jj_3_917(); break; - case 917: jj_3_918(); break; - case 918: jj_3_919(); break; - case 919: jj_3_920(); break; - case 920: jj_3_921(); break; - case 921: jj_3_922(); break; - case 922: jj_3_923(); break; - case 923: jj_3_924(); break; - case 924: jj_3_925(); break; - case 925: jj_3_926(); break; - case 926: jj_3_927(); break; - case 927: jj_3_928(); break; - case 928: jj_3_929(); break; - case 929: jj_3_930(); break; - case 930: jj_3_931(); break; - case 931: jj_3_932(); break; - case 932: jj_3_933(); break; - case 933: jj_3_934(); break; - case 934: jj_3_935(); break; - case 935: jj_3_936(); break; - case 936: jj_3_937(); break; - case 937: jj_3_938(); break; - case 938: jj_3_939(); break; - case 939: jj_3_940(); break; - case 940: jj_3_941(); break; - case 941: jj_3_942(); break; - case 942: jj_3_943(); break; - case 943: jj_3_944(); break; - case 944: jj_3_945(); break; - case 945: jj_3_946(); break; - case 946: jj_3_947(); break; - case 947: jj_3_948(); break; - case 948: jj_3_949(); break; - case 949: jj_3_950(); break; - case 950: jj_3_951(); break; - case 951: jj_3_952(); break; - case 952: jj_3_953(); break; - case 953: jj_3_954(); break; - case 954: jj_3_955(); break; - case 955: jj_3_956(); break; - case 956: jj_3_957(); break; - case 957: jj_3_958(); break; - case 958: jj_3_959(); break; - case 959: jj_3_960(); break; - case 960: jj_3_961(); break; - case 961: jj_3_962(); break; - case 962: jj_3_963(); break; - case 963: jj_3_964(); break; - case 964: jj_3_965(); break; - case 965: jj_3_966(); break; - case 966: jj_3_967(); break; - case 967: jj_3_968(); break; - case 968: jj_3_969(); break; - case 969: jj_3_970(); break; - case 970: jj_3_971(); break; - case 971: jj_3_972(); break; - case 972: jj_3_973(); break; - case 973: jj_3_974(); break; - case 974: jj_3_975(); break; - case 975: jj_3_976(); break; - case 976: jj_3_977(); break; - case 977: jj_3_978(); break; - case 978: jj_3_979(); break; - case 979: jj_3_980(); break; - case 980: jj_3_981(); break; - case 981: jj_3_982(); break; - case 982: jj_3_983(); break; - case 983: jj_3_984(); break; - case 984: jj_3_985(); break; - case 985: jj_3_986(); break; - case 986: jj_3_987(); break; - case 987: jj_3_988(); break; - case 988: jj_3_989(); break; - case 989: jj_3_990(); break; - case 990: jj_3_991(); break; - case 991: jj_3_992(); break; - case 992: jj_3_993(); break; - case 993: jj_3_994(); break; - case 994: jj_3_995(); break; - case 995: jj_3_996(); break; - case 996: jj_3_997(); break; - case 997: jj_3_998(); break; - case 998: jj_3_999(); break; - case 999: jj_3_1000(); break; - case 1000: jj_3_1001(); break; - case 1001: jj_3_1002(); break; - case 1002: jj_3_1003(); break; - case 1003: jj_3_1004(); break; - case 1004: jj_3_1005(); break; - case 1005: jj_3_1006(); break; - case 1006: jj_3_1007(); break; - case 1007: jj_3_1008(); break; - case 1008: jj_3_1009(); break; - case 1009: jj_3_1010(); break; - case 1010: jj_3_1011(); break; - case 1011: jj_3_1012(); break; - case 1012: jj_3_1013(); break; - case 1013: jj_3_1014(); break; - case 1014: jj_3_1015(); break; - case 1015: jj_3_1016(); break; - case 1016: jj_3_1017(); break; - case 1017: jj_3_1018(); break; - case 1018: jj_3_1019(); break; - case 1019: jj_3_1020(); break; - case 1020: jj_3_1021(); break; - case 1021: jj_3_1022(); break; - case 1022: jj_3_1023(); break; - case 1023: jj_3_1024(); break; - case 1024: jj_3_1025(); break; - case 1025: jj_3_1026(); 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; - } - -} \ No newline at end of file From c7257becc2db0177f4283f656fbef8d1d080fbb1 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 20 Aug 2018 19:18:18 +0800 Subject: [PATCH 06/31] =?UTF-8?q?sql=E5=86=85=E5=AE=B9=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E4=B8=BAsource,sink,view,dml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 34 ++ README.md | 12 +- blink-client/pom.xml | 25 + .../pingle/wang/api/common/ApiResult.java | 44 ++ .../wang/api/common/sql/SqlConstant.java | 20 + .../api/common/sql/SqlInputException.java | 16 + .../common/sql/SqlParserResDescriptor.java | 79 +++ .../wang/api/sqlserver/SqlConvertService.java | 58 +++ blink-common/pom.xml | 149 ++++++ blink-sqlserver/pom.xml | 281 +++++++++++ blink-sqlserver/src/codegen/config.fmpp | 22 + blink-sqlserver/src/codegen/data/Parser.tdd | 74 +++ .../src/codegen/includes/parserImpls.ftl | 104 ++++ .../sqlserver/impl/SqlConvertServiceImpl.java | 391 +++++++++++++++ .../sql/parser/SqlCreateFunction.java | 66 +++ .../sqlserver/sql/parser/UnparseUtil.java | 45 ++ .../sqlserver/impl/SqlConvertServiceTest.java | 101 ++++ pom.xml | 473 ++++++++++++++++++ 18 files changed, 1986 insertions(+), 8 deletions(-) create mode 100644 .gitignore create mode 100644 blink-client/pom.xml create mode 100644 blink-client/src/main/java/pingle/wang/api/common/ApiResult.java create mode 100644 blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java create mode 100644 blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java create mode 100644 blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java create mode 100644 blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java create mode 100644 blink-common/pom.xml create mode 100644 blink-sqlserver/pom.xml create mode 100755 blink-sqlserver/src/codegen/config.fmpp create mode 100755 blink-sqlserver/src/codegen/data/Parser.tdd create mode 100755 blink-sqlserver/src/codegen/includes/parserImpls.ftl create mode 100644 blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java create mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/SqlCreateFunction.java create mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/UnparseUtil.java create mode 100644 blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c42093e --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +.cache +scalastyle-output.xml +.classpath +.idea +.idea/modules.xml +.idea/misc.xml +.metadata +.settings +.project +.version.properties +filter.properties +logs.zip +target +tmp +*.class +*.iml +*.swp +*.jar +*.log +.DS_Store +build-target +out/ +/docs/api +/docs/content +/docs/.bundle +/docs/.rubydeps +/docs/ruby2/.bundle +/docs/ruby2/.rubydeps +/docs/.jekyll-metadata +*.ipr +*.iws +tools/flink +tools/flink-* +tools/releasing/release diff --git a/README.md b/README.md index 08f3023..98a328d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -在阿里工作的时候是使用Blink进行流数据处理和计算,通过编写sql实现Blink的计算job,开发简单高效,产品易用。目前想尝试实现Flink产品化,类似Blink这种产品。 +阿里工作的时候是使用Blink进行流数据处理和计算,通过编写sql实现Blink的计算job,开发简单高效,产品易用。目前想尝试实现Flink产品化,类似Blink这种产品。 1.使用SQL为统一开发规范,SQL语言的好处是:声明式,易理解,稳定可靠,自动优化。如果采用API开发的话,最大的问题是对于job调优依赖程序员经验,比较困难,同时API开发方式侵入性太强(数据安全,集群安装等)。而sql可以自动调优,避免这两个问题的产生。 @@ -19,26 +19,22 @@ --> 封装为api对应Flink的Job:env.sqlQuery/env.sqlUpdate;table.writeToSink; - --> Job提交执行 streamGraph.getJobGraph; ClusterClient client = descriptor.deploy();client.runDetached(job, null); + --> Job提交执行 streamGraph.getJobGraph(); 二.开发过程 - 1.SqlConvert是将用户sql语句解析为不同类型,安装ddl,source和sink等返回; + 1.SqlConvertService是将用户sql语句解析为不同类型,source,sink,view,dml(目前只支持insert into) 2.ddl类型的sql语句,实现Flink的Source和Sink; - 三.代码关注 - -apache calcite 的sql引擎源码解读 - - apache Flink sql实现 +apache calcite 的sql引擎源码解读 apache hive \ No newline at end of file diff --git a/blink-client/pom.xml b/blink-client/pom.xml new file mode 100644 index 0000000..2cda70d --- /dev/null +++ b/blink-client/pom.xml @@ -0,0 +1,25 @@ + + + + blink + pingle.wang + 0.0.1-SNAPSHOT + + 4.0.0 + + blink-client + 0.0.1-SNAPSHOT + + + + com.github.jsqlparser + jsqlparser + + + org.apache.flink + flink-core + + + \ No newline at end of file diff --git a/blink-client/src/main/java/pingle/wang/api/common/ApiResult.java b/blink-client/src/main/java/pingle/wang/api/common/ApiResult.java new file mode 100644 index 0000000..862d16d --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/api/common/ApiResult.java @@ -0,0 +1,44 @@ +package pingle.wang.api.common; + +/** + * @Author: wpl + */ +public class ApiResult { + private String message; + private String code; + private T result; + + + public ApiResult() { + } + + public ApiResult(String message, String code, T result) { + this.message = message; + this.code = code; + this.result = result; + } + + public T getResult() { + return result; + } + + public void setResult(T result) { + this.result = result; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java b/blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java new file mode 100644 index 0000000..143ac3b --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java @@ -0,0 +1,20 @@ +package pingle.wang.api.common.sql; + +/** + * @Author: wpl + */ +public interface SqlConstant { + //sql相关 + String CREATE="CREATE"; + String FUNCTION="FUNCTION"; + String VIEW="VIEW"; + String TABLE="TABLE"; + String INDEXE="INDEXE"; + String INSERT_INTO="INSERT"; + String SQL_END_FLAG=" ;"; + + //Flink + String SINK="SINK"; + String SOURCE="SOURCE"; + +} diff --git a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java b/blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java new file mode 100644 index 0000000..87fb484 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java @@ -0,0 +1,16 @@ +package pingle.wang.api.common.sql; + +/** + * @Author: wpl + */ +public class SqlInputException extends Exception { + + public SqlInputException() { + super(); + } + + + public SqlInputException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java b/blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java new file mode 100644 index 0000000..f313ab6 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java @@ -0,0 +1,79 @@ +package pingle.wang.api.common.sql; + +import org.apache.flink.api.common.typeinfo.TypeInformation; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @Author: wpl + */ +public class SqlParserResDescriptor { + private Map parms = new LinkedHashMap<>(); + private Map> schemas = new LinkedHashMap<>(); + private String sourceType; + private String tableName; + private String sqlInfo; + + public SqlParserResDescriptor() { + } + + public SqlParserResDescriptor(Map parms, Map> schemas, String sourceType, String tableName, String sqlInfo) { + this.parms = parms; + this.schemas = schemas; + this.sourceType = sourceType; + this.tableName = tableName; + this.sqlInfo = sqlInfo; + } + + public Map getParms() { + return parms; + } + + public void setParms(Map parms) { + this.parms = parms; + } + + public Map> getSchemas() { + return schemas; + } + + public void setSchemas(Map> schemas) { + this.schemas = schemas; + } + + public String getSourceType() { + return sourceType; + } + + public void setSourceType(String sourceType) { + this.sourceType = sourceType; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getSqlInfo() { + return sqlInfo; + } + + public void setSqlInfo(String sqlInfo) { + this.sqlInfo = sqlInfo; + } + + @Override + public String toString() { + return "SqlParserResDescriptor{" + + "parms=" + parms + + ", schemas=" + schemas + + ", sourceType='" + sourceType + '\'' + + ", tableName='" + tableName + '\'' + + ", sqlInfo='" + sqlInfo + '\'' + + '}'; + } +} diff --git a/blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java b/blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java new file mode 100644 index 0000000..d18bcf6 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java @@ -0,0 +1,58 @@ +package pingle.wang.api.sqlserver; + +import pingle.wang.api.common.sql.SqlParserResDescriptor; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: wpl + */ +public interface SqlConvertService { + /** + * @param sqlContext sql语句集合 + * @return sql语句分类对应的集合 + * @throws Exception + */ + Map> transfromSqlClassify(String sqlContext) throws Exception; + + /** + * ddl语句解析 + * @param ddlSql + * @return + * @throws Exception + */ + SqlParserResDescriptor sqlDdlParser(String ddlSql) throws Exception; + + /** + * sql中视图sql解析 + * @param viewSql + * @return sql的封装信息类 + * @throws Exception + */ + SqlParserResDescriptor sqlViewParser(String viewSql) throws Exception; + + /** + * sql中的insert into内容 + * @param insertSql + * @return + * @throws Exception + */ + SqlParserResDescriptor sqlInsertInotParser(String insertSql) throws Exception; + + + /** + * 将用户输入的sql中获取封装source的信息 + * @return + * @throws Exception + */ + Map getCreateSourceSqlInfo(String sqlContext) throws Exception; + + /** + * 将用户输入的sql中获取封装source的信息 + * @return + * @throws Exception + */ + Map getCreateSinkSqlInfo(String sqlContext) throws Exception; +} diff --git a/blink-common/pom.xml b/blink-common/pom.xml new file mode 100644 index 0000000..2b5d8fa --- /dev/null +++ b/blink-common/pom.xml @@ -0,0 +1,149 @@ + + + + blink + pingle.wang + 0.0.1-SNAPSHOT + + 4.0.0 + + blink-common + + 0.0.1-SNAPSHOT + + + + + pingle.wang + blink-client + 0.0.1-SNAPSHOT + compile + + + + + com.github.jsqlparser + jsqlparser + 1.2 + + + commons-io + commons-io + 2.4 + test + + + junit + junit + 4.12 + test + + + org.hamcrest + hamcrest-library + 1.3 + test + + + org.mockito + mockito-core + 2.16.0 + test + + + + com.google.guava + guava + + + com.typesafe + config + + + org.mockito + mockito-core + test + + + org.scala-lang + scala-library + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + + + org.apache.commons + commons-lang3 + 3.5 + + + + org.apache.flink + flink-json + + + org.apache.flink + flink-metrics-jmx + + + org.apache.flink + flink-runtime_${scala.binary.version} + + + com.typesafe + config + + + + + org.apache.flink + flink-runtime_${scala.binary.version} + tests + test + + + org.apache.flink + flink-runtime-web_${scala.binary.version} + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + + + org.apache.flink + flink-streaming-scala_${scala.binary.version} + + + org.apache.flink + flink-table_${scala.binary.version} + + + org.apache.flink + flink-yarn_${scala.binary.version} + + + junit + junit + test + + + org.apache.flink + flink-connector-kafka-0.10_${scala.binary.version} + + + org.apache.flink + flink-json + ${flink.version} + + + + + \ No newline at end of file diff --git a/blink-sqlserver/pom.xml b/blink-sqlserver/pom.xml new file mode 100644 index 0000000..ab7e1d2 --- /dev/null +++ b/blink-sqlserver/pom.xml @@ -0,0 +1,281 @@ + + + + blink + pingle.wang + 0.0.1-SNAPSHOT + + 4.0.0 + + blink-sqlserver + 0.0.1-SNAPSHOT + + + + + pingle.wang + blink-client + 0.0.1-SNAPSHOT + compile + + + + + com.github.jsqlparser + jsqlparser + 1.2 + + + commons-io + commons-io + 2.4 + test + + + junit + junit + 4.12 + test + + + org.hamcrest + hamcrest-library + 1.3 + test + + + org.mockito + mockito-core + 2.16.0 + test + + + + com.google.guava + guava + + + com.typesafe + config + + + org.mockito + mockito-core + test + + + org.scala-lang + scala-library + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + + + org.apache.commons + commons-lang3 + 3.5 + + + + org.apache.flink + flink-json + + + org.apache.flink + flink-metrics-jmx + + + org.apache.flink + flink-runtime_${scala.binary.version} + + + com.typesafe + config + + + + + org.apache.flink + flink-runtime_${scala.binary.version} + tests + test + + + org.apache.flink + flink-runtime-web_${scala.binary.version} + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + + + org.apache.flink + flink-streaming-scala_${scala.binary.version} + + + org.apache.flink + flink-table_${scala.binary.version} + + + org.apache.flink + flink-yarn_${scala.binary.version} + + + junit + junit + test + + + org.apache.flink + flink-connector-kafka-0.10_${scala.binary.version} + + + org.apache.flink + flink-json + ${flink.version} + + + + + + maven-resources-plugin + + + copy-fmpp-resources + initialize + + copy-resources + + + ${project.build.directory}/codegen + + + src/codegen + false + + + + + + copy-java-sources + process-sources + + copy-resources + + + ${basedir}/target/classes/ + + + src/main/java + true + + + src/mian/test + true + + + target/generated-sources + + true + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack-parser-template + initialize + + unpack + + + + + org.apache.calcite + calcite-core + jar + true + ${project.build.directory}/ + **/Parser.jj + + + + + + + + com.googlecode.fmpp-maven-plugin + fmpp-maven-plugin + + + generate-fmpp-sources + generate-sources + + generate + + + ${project.build.directory}/codegen/config.fmpp + target/generated-sources + ${project.build.directory}/codegen/templates + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-generated-sources + process-sources + + add-source + + + + ${project.build.directory}/generated-sources + + + + + + + org.codehaus.mojo + javacc-maven-plugin + + + generate-sources + javacc + + javacc + + + ${project.build.directory}/generated-sources/ + + **/Parser.jj + + 2 + false + ${project.build.directory}/generated-sources/ + + + + + + + \ No newline at end of file diff --git a/blink-sqlserver/src/codegen/config.fmpp b/blink-sqlserver/src/codegen/config.fmpp new file mode 100755 index 0000000..d2a7a50 --- /dev/null +++ b/blink-sqlserver/src/codegen/config.fmpp @@ -0,0 +1,22 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to you under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License . + +data: { + parser: tdd(../data/Parser.tdd) +} + +freemarkerLinks: { + includes: includes/ +} \ No newline at end of file diff --git a/blink-sqlserver/src/codegen/data/Parser.tdd b/blink-sqlserver/src/codegen/data/Parser.tdd new file mode 100755 index 0000000..3e2ba16 --- /dev/null +++ b/blink-sqlserver/src/codegen/data/Parser.tdd @@ -0,0 +1,74 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to you under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License . + +{ + package: "pingle.wang.sqlserver.sql.parser.impl", + class: "SqlParserImpl", + + imports: [ + "pingle.wang.sqlserver.sql.parser.*", + "java.util.*", + ], + + # List of keywords. + keywords: [ + "JAR", + "FILE", + "ARCHIVE", + ], + + nonReservedKeywords: [ + ], + + statementParserMethods: [ + "SqlCreateFunction()" + ], + + # List of methods for parsing custom literals. + literalParserMethods: [ + ], + + # List of methods for parsing custom data types. + dataTypeParserMethods: [ + ], + + # List of methods for parsing extensions to "ALTER " calls. + # Each must accept arguments "(SqlParserPos pos, String scope)". + # Example: "SqlUploadJarNode" + alterStatementParserMethods: [ + ] + + # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. + # Each must accept arguments "(SqlParserPos pos, boolean replace)". + createStatementParserMethods: [ + ] + + # List of methods for parsing extensions to "DROP" calls. + # Each must accept arguments "(SqlParserPos pos)". + dropStatementParserMethods: [ + ] + + # List of files in @includes directory that have parser method + # implementations for custom SQL statements, literals or types + # given as part of "statementParserMethods", "literalParserMethods" or + # "dataTypeParserMethods". + implementationFiles: [ + "parserImpls.ftl" + ], + + includeCompoundIdentifier: true, + includeBraces: true, + includeAdditionalDeclarations: false +} \ No newline at end of file diff --git a/blink-sqlserver/src/codegen/includes/parserImpls.ftl b/blink-sqlserver/src/codegen/includes/parserImpls.ftl new file mode 100755 index 0000000..3af7734 --- /dev/null +++ b/blink-sqlserver/src/codegen/includes/parserImpls.ftl @@ -0,0 +1,104 @@ +<#-- +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to you under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License . +--> + +private void FunctionJarDef(List list) : +{ + SqlParserPos pos; + SqlNode uri; +} +{ + ( | | ) + { + pos = getPos(); + list.add(StringLiteral()); + } +} + +SqlNodeList FunctionJarDefList() : +{ + SqlParserPos pos; + List list = Lists.newArrayList(); +} +{ + { pos = getPos(); } + { pos = getPos(); } + FunctionJarDef(list) + ( FunctionJarDef(list) )* + { + return new SqlNodeList(list, pos.plus(getPos())); + } +} + +/** + * CREATE FUNCTION [db_name.]function_name AS class_name + * [USING JAR|FILE|ARCHIVE 'file_uri' [, JAR|FILE|ARCHIVE 'file_uri'] + */ +SqlCreateFunction SqlCreateFunction() : +{ + SqlParserPos pos; + SqlIdentifier dbName = null; + SqlIdentifier funcName; + SqlNode className; + SqlNodeList jarList = null; +} +{ + { pos = getPos(); } + + [ + dbName = SimpleIdentifier() + + ] + + funcName = SimpleIdentifier() + + className = StringLiteral() + [ + jarList = FunctionJarDefList() + ] + { + return new SqlCreateFunction(pos, dbName, funcName, className, jarList); + } +} + + +private void SqlStmtList(SqlNodeList list) : +{ +} +{ + { + list.add(SqlStmt()); + } +} + +SqlNodeList SqlStmtsEof() : +{ + SqlParserPos pos; + SqlNodeList stmts; +} +{ + { + pos = getPos(); + stmts = new SqlNodeList(pos); + stmts.add(SqlStmt()); + } + ( LOOKAHEAD(2, SqlStmt()) SqlStmtList(stmts) )* + [ ] + { + return stmts; + } +} + diff --git a/blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java b/blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java new file mode 100644 index 0000000..cc2872f --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java @@ -0,0 +1,391 @@ +package pingle.wang.api.sqlserver.impl; + +import com.google.common.base.Joiner; +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.parser.CCJSqlParserManager; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.create.table.ColDataType; +import net.sf.jsqlparser.statement.create.table.ColumnDefinition; +import net.sf.jsqlparser.statement.create.table.CreateTable; +import net.sf.jsqlparser.statement.create.table.Index; +import net.sf.jsqlparser.statement.create.view.CreateView; +import net.sf.jsqlparser.statement.insert.Insert; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.flink.api.common.typeinfo.BasicTypeInfo; +import org.apache.flink.api.common.typeinfo.SqlTimeTypeInfo; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import pingle.wang.api.common.sql.SqlInputException; +import pingle.wang.api.common.sql.SqlParserResDescriptor; +import pingle.wang.api.sqlserver.SqlConvertService; + +import java.io.StringReader; +import java.util.*; + +import static pingle.wang.api.common.sql.SqlConstant.*; + + +/** + * @Author: wpl + */ +public class SqlConvertServiceImpl implements SqlConvertService { + private static final Logger logger = LoggerFactory.getLogger(SqlConvertServiceImpl.class); + + private final String flag = "="; + + public SqlConvertServiceImpl() { + + } + + @Override + public Map getCreateSourceSqlInfo(String sqlContext) throws Exception { + if (StringUtils.isBlank(sqlContext)){ + logger.warn("sql is null"); + throw new SqlInputException("sql not null "); + } + + Map result = new LinkedHashMap<>(); + + Map> listMap = transfromSqlClassify(sqlContext); + Map ddlSqls = getDdlSqls(listMap); + Set tableNames = ddlSqls.keySet(); + + //通过Sink来获取Source +// TODO: 优化点 + Map sinkSqlInfo = getCreateSinkSqlInfo(sqlContext); + Set sinkNames = sinkSqlInfo.keySet(); + + if (CollectionUtils.isNotEmpty(sinkNames)){ + tableNames.removeAll(sinkNames); + } + + for (String tableName : tableNames) { + String ddlSql = ddlSqls.get(tableName); + result.put(tableName, ddlSql); + } + + return result; + } + + @Override + public Map getCreateSinkSqlInfo(String sqlContext) throws Exception { + if (StringUtils.isBlank(sqlContext)){ + logger.warn("sql is null"); + throw new SqlInputException("sql not null "); + } + + Map result = new LinkedHashMap<>(); + Map> listMap = transfromSqlClassify(sqlContext); + + List sinkNames = new LinkedList<>(); + //通过insert into判断sink + List lists = listMap.get(INSERT_INTO); + if (CollectionUtils.isNotEmpty(lists)){ + for (String str : lists){ + SqlParserResDescriptor insertInotParser = sqlInsertInotParser(str); + sinkNames.add(insertInotParser.getTableName()); + } + } + + Map ddlSqls = getDdlSqls(listMap); + for (String sinkName : sinkNames) { + String ddlSql = ddlSqls.get(sinkName); + result.put(sinkName,ddlSql); + } + + return result; + } + + @Override + public SqlParserResDescriptor sqlDdlParser(String ddlSql) throws Exception { + if (null == ddlSql){ + throw new SqlInputException("sql not null "); + } + + SqlParserResDescriptor sqlParserResDescriptor = new SqlParserResDescriptor(); + Map parms = new LinkedHashMap<>(); + Map> schemas = new LinkedHashMap<>(); + + Statement stmt = getSqlStatement(ddlSql); + if (stmt instanceof CreateTable) { + CreateTable table = (CreateTable) stmt; + + //字段名和类型解析 + List columnDefinitionList = table.getColumnDefinitions(); + if (CollectionUtils.isNotEmpty(columnDefinitionList)){ + for (ColumnDefinition colInfo : columnDefinitionList) { + String columnName = colInfo.getColumnName(); + ColDataType colDataType = colInfo.getColDataType(); + String dataType = colDataType.getDataType().trim().toLowerCase(); + schemas.put(columnName.trim().replace("`",""),getColumnType(dataType)); + } + } + + //索引解析 + List indexes = table.getIndexes(); + List indexNames = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(indexes)){ + for (Index index : indexes) { + List indexColumnsNames = index.getColumnsNames(); + for (String indexColumnsName : indexColumnsNames) { + indexNames.add(0,indexColumnsName.trim().replace("`","")); + } + } + } + parms.put(INDEXE,Joiner.on(",").join(indexNames)); + + //with参数获取 + List optionsStrings = (List) table.getTableOptionsStrings(); + if (CollectionUtils.isNotEmpty(optionsStrings)){ + String options = optionsStrings.get(1); + if (StringUtils.isNotBlank(options)){ + String[] values = options.trim().substring(1, options.length() - 1).split(","); + for (String value : values) { + if (value.contains(flag)){ + String[] keyValue = value.split(flag); + parms.put(keyValue[0],keyValue[1]); + } + } + } + } + + sqlParserResDescriptor.setTableName(table.getTable().getName()); + sqlParserResDescriptor.setSqlInfo(stmt.toString()); + } + + sqlParserResDescriptor.setSchemas(schemas); + sqlParserResDescriptor.setParms(parms); + + return sqlParserResDescriptor; + } + + @Override + public SqlParserResDescriptor sqlViewParser(String viewSql) throws Exception { + if (null == viewSql){ + throw new SqlInputException("sql not null "); + } + SqlParserResDescriptor sqlParserResDescriptor = new SqlParserResDescriptor(); + Statement stmt = getSqlStatement(viewSql); + if (stmt instanceof CreateView) { + CreateView view = (CreateView) stmt; + Table table = view.getView(); + sqlParserResDescriptor.setTableName(table.getName()); + sqlParserResDescriptor.setSqlInfo(view.getSelectBody().toString()); + } + + return sqlParserResDescriptor; + } + + @Override + public SqlParserResDescriptor sqlInsertInotParser(String insertSql) throws Exception { + if (null == insertSql){ + throw new SqlInputException("sql not null "); + } + + SqlParserResDescriptor sqlParserResDescriptor = new SqlParserResDescriptor(); + Statement stmt = getSqlStatement(insertSql); + if (stmt instanceof Insert) { + Insert insert = (Insert) stmt; + Table table = insert.getTable(); + sqlParserResDescriptor.setTableName(table.getName()); + sqlParserResDescriptor.setSqlInfo(insert.toString()); + } + + return sqlParserResDescriptor; + } + + @Override + public Map> transfromSqlClassify(String sqlContext) throws Exception { + if (StringUtils.isBlank(sqlContext)){ + logger.warn("sql is null"); + throw new SqlInputException("sql not null "); + } + + logger.warn("user input sql is : "+sqlContext); + + //sql拆解 + List sqls = splitSemiColon(sqlContext); + if (CollectionUtils.isEmpty(sqls)){ + logger.warn("sqls is null"); + throw new SqlInputException("sqls is null"); + } + + Map> result = new HashMap<>(); + //sql顺序的一致 + List funList = new LinkedList<>(); + List tableList = new LinkedList<>(); + List viewList = new LinkedList<>(); + List insertList = new LinkedList<>(); + + for (String sql: sqls) { + if (StringUtils.isNotBlank(sql)){ + //替换多余的空格 + String newSql = sql.trim().replaceAll(" +", " ").replaceAll("\\s+", " "); + + if (newSql.toUpperCase().startsWith(CREATE)){ + if (newSql.toUpperCase().contains(TABLE)){ + tableList.add(newSql+SQL_END_FLAG); + } + + if (newSql.toUpperCase().contains(FUNCTION)){ + funList.add(newSql+SQL_END_FLAG); + } + + if (newSql.toUpperCase().contains(VIEW)){ + viewList.add(newSql+SQL_END_FLAG); + } + }else { + insertList.add(newSql+SQL_END_FLAG); + } + + } + } + + if (CollectionUtils.isNotEmpty(funList)){ + result.put(FUNCTION,funList); + } + + if (CollectionUtils.isNotEmpty(insertList)){ + result.put(INSERT_INTO,insertList); + } + + if (CollectionUtils.isNotEmpty(viewList)){ + result.put(VIEW,viewList); + } + + if (CollectionUtils.isNotEmpty(tableList)){ + result.put(TABLE,tableList); + } + + return result; + } + + private Map getDdlSqls(Map> listMap) throws Exception { + Map tableMap = new HashMap<>(); + List tables = listMap.get(TABLE); + if (CollectionUtils.isNotEmpty(tables)){ + for (String str : tables){ + SqlParserResDescriptor sqlDdlParser = sqlDdlParser(str); + tableMap.put(sqlDdlParser.getTableName(),str); + } + } + return tableMap; + } + + private List splitSemiColon(String sqlContext) { + boolean inQuotes = false; + boolean escape = false; + + List ret = new ArrayList<>(); + + char quoteChar = '"'; + int beginIndex = 0; + for (int index = 0; index < sqlContext.length(); index++) { + char c = sqlContext.charAt(index); + switch (c) { + case ';': + if (!inQuotes) { + ret.add(sqlContext.substring(beginIndex, index)); + beginIndex = index + 1; + } + break; + case '"': + case '\'': + if (!escape) { + if (!inQuotes) { + quoteChar = c; + inQuotes = !inQuotes; + } else { + if (c == quoteChar) { + inQuotes = !inQuotes; + } + } + } + break; + default: + break; + } + + if (escape) { + escape = false; + } else if (c == '\\') { + escape = true; + } + } + + if (beginIndex < sqlContext.length()) { + ret.add(sqlContext.substring(beginIndex)); + } + + return ret; + } + + + + private Statement getSqlStatement(String sql){ + CCJSqlParserManager parser = new CCJSqlParserManager(); + try { + return parser.parse(new StringReader(sql)); + } catch (JSQLParserException e) { + e.printStackTrace(); + } + return null; + } + + private TypeInformation getColumnType(String type){ + TypeInformation basicTypeInfo = null ; + switch (type) { + case "string": + basicTypeInfo=BasicTypeInfo.STRING_TYPE_INFO; + break; + case "boolean": + basicTypeInfo=BasicTypeInfo.BOOLEAN_TYPE_INFO; + break; + case "byte": + basicTypeInfo=BasicTypeInfo.BYTE_TYPE_INFO; + break; + case "short": + basicTypeInfo=BasicTypeInfo.SHORT_TYPE_INFO; + break; + case "integer": + basicTypeInfo=BasicTypeInfo.INT_TYPE_INFO; + break; + case "long": + basicTypeInfo=BasicTypeInfo.LONG_TYPE_INFO; + break; + case "float": + basicTypeInfo=BasicTypeInfo.FLOAT_TYPE_INFO; + break; + case "double": + basicTypeInfo=BasicTypeInfo.DOUBLE_TYPE_INFO; + break; + case "character": + basicTypeInfo=BasicTypeInfo.CHAR_TYPE_INFO; + break; + case "void": + basicTypeInfo=BasicTypeInfo.VOID_TYPE_INFO; + break; + case "biginteger": + basicTypeInfo=BasicTypeInfo.BIG_INT_TYPE_INFO; + break; + case "bigdecimal": + basicTypeInfo=BasicTypeInfo.BIG_DEC_TYPE_INFO; + break; + case "date": + basicTypeInfo=SqlTimeTypeInfo.DATE; + break; + case "time": + basicTypeInfo=SqlTimeTypeInfo.TIME; + break; + case "timestamp": + basicTypeInfo=SqlTimeTypeInfo.TIMESTAMP; + break; + default: + break; + } + return basicTypeInfo; + } +} diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/SqlCreateFunction.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/SqlCreateFunction.java new file mode 100644 index 0000000..5d0651b --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/SqlCreateFunction.java @@ -0,0 +1,66 @@ +package pingle.wang.sqlserver.sql.parser; + +/** + * @Author: wpl + */ +import org.apache.calcite.sql.*; +import org.apache.calcite.sql.parser.SqlParserPos; + +import java.util.Arrays; +import java.util.List; + +public class SqlCreateFunction extends SqlCall { + private static final SqlSpecialOperator OPERATOR = new SqlSpecialOperator("UDF", SqlKind.OTHER_DDL); + private final SqlIdentifier dbName; + private final SqlIdentifier funcName; + private final SqlNode className; + private final SqlNodeList jarList; + + public SqlCreateFunction(SqlParserPos pos, SqlIdentifier dbName, + SqlIdentifier funcName, SqlNode className, SqlNodeList jarList) { + super(pos); + this.dbName = dbName; + this.funcName = funcName; + this.className = className; + this.jarList = jarList; + } + + @Override + public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { + UnparseUtil u = new UnparseUtil(writer, leftPrec, rightPrec); + u.keyword("CREATE", "FUNCTION"); + if (dbName != null) { + u.node(dbName).keyword("."); + } + u.node(funcName).keyword("AS").node(className); + if (jarList != null) { + u.keyword("USING").nodeList(jarList); + } + } + + @Override + public SqlOperator getOperator() { + return OPERATOR; + } + + @Override + public List getOperandList() { + return Arrays.asList(dbName, funcName, className, jarList); + } + + public SqlIdentifier dbName() { + return dbName; + } + + public SqlIdentifier funcName() { + return funcName; + } + + public SqlNode className() { + return className; + } + + public SqlNodeList jarList() { + return jarList; + } +} \ No newline at end of file diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/UnparseUtil.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/UnparseUtil.java new file mode 100644 index 0000000..990f088 --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/parser/UnparseUtil.java @@ -0,0 +1,45 @@ +package pingle.wang.sqlserver.sql.parser; + +import org.apache.calcite.sql.SqlNode; +import org.apache.calcite.sql.SqlNodeList; +import org.apache.calcite.sql.SqlWriter; + +import java.util.Arrays; + +/** + * @Author: wpl + */ +public class UnparseUtil { + private final SqlWriter writer; + private final int leftPrec; + private final int rightPrec; + + UnparseUtil(SqlWriter writer, int leftPrec, int rightPrec) { + this.writer = writer; + this.leftPrec = leftPrec; + this.rightPrec = rightPrec; + } + + UnparseUtil keyword(String... keywords) { + Arrays.stream(keywords).forEach(writer::keyword); + return this; + } + + UnparseUtil node(SqlNode n) { + n.unparse(writer, leftPrec, rightPrec); + return this; + } + + UnparseUtil nodeList(SqlNodeList l) { + writer.keyword("("); + if (l.size() > 0) { + l.get(0).unparse(writer, leftPrec, rightPrec); + for (int i = 1; i < l.size(); ++i) { + writer.keyword(","); + l.get(i).unparse(writer, leftPrec, rightPrec); + } + } + writer.keyword(")"); + return this; + } +} diff --git a/blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java b/blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java new file mode 100644 index 0000000..d043d6a --- /dev/null +++ b/blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java @@ -0,0 +1,101 @@ +package pingle.wang.api.sqlserver.impl; + +import com.google.common.base.Joiner; +import org.junit.Before; +import org.junit.Test; +import pingle.wang.api.sqlserver.SqlConvertService; + +import java.util.List; +import java.util.Map; + +import org.junit.Assert; + + +/** + * @Author: wpl + */ +public class SqlConvertServiceTest { + private String sqlContext; + private SqlConvertService sqlConvertService; + + @Test + public void testGetCreateSourceSqlInfo() throws Exception { + Map sourceSqlInfo = sqlConvertService.getCreateSourceSqlInfo(sqlContext); + Assert.assertEquals(sourceSqlInfo.size(),1); + } + + @Test + public void testGetCreateSinkSqlInfo() throws Exception { + Map sinkSqlInfo = sqlConvertService.getCreateSinkSqlInfo(sqlContext); + Assert.assertEquals(sinkSqlInfo.size(),1); + } + + @Test + public void testTransfromSqlClassify() throws Exception { + Map> map = sqlConvertService.transfromSqlClassify(sqlContext); + Assert.assertNotNull(map); + } + + @Before + public void init(){ + String udf = "CREATE FUNCTION " + + "demouf " + + "AS " + + "'pingle.wang.api.sql.function.DemoUDF' " + + "USING " + + "JAR 'hdfs://flink/udf/jedis.jar'," + + "JAR 'hdfs://flink/udf/customudf.jar';"; + + String source = "CREATE TABLE kafak_source (" + + "`date` string, " + + "amount float, " + + "proctime timestamp) " + + "with (" + + "type=kafka," + + "'flink.parallelism'=1," + + "'kafka.topic'='topic'," + + "'kafka.group.id'='flinks'," + + "'kafka.enable.auto.commit'=true," + + "'kafka.bootstrap.servers'='localhost:9092'" + + ");"; + + String sink = "CREATE TABLE mysql_sink (" + + "`date` string, " + + "amount float, " + + "PRIMARY KEY (`date`,amount)) " + + "with (" + + "type=mysql," + + "'mysql.connection'='localhost:3306'," + + "'mysql.db.name'=flink," + + "'mysql.batch.size'=0," + + "'mysql.table.name'=flink_table," + + "'mysql.user'=root," + + "'mysql.pass'=root" + + ");"; + + String view = "create view view_select as " + + "SELECT " + + "`date`, " + + "amount " + + "FROM " + + "kafak_source " + + "group by `date`,amount;"; + + + String result = "insert " + + "into mysql_sink " + + "SELECT " + + "`date`, " + + "sum(amount) " + + "FROM " + + "view_select " + + "group by `date`;"; + + sqlContext = + Joiner.on("").join( + udf,source,sink,view, result + ); + + sqlConvertService = new SqlConvertServiceImpl(); + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..729ff7b --- /dev/null +++ b/pom.xml @@ -0,0 +1,473 @@ + + + 4.0.0 + + pingle.wang + blink + 0.0.1-SNAPSHOT + pom + + + blink-client + blink-common + blink-sqlserver + + + + UTF-8 + UTF-8 + 1.8 + + + 1.2 + 1.16.0 + 1.18.0 + 20.0 + 3.6 + 1.2.3 + 3.9.1 + 3.4.6 + 1.0.29 + 1.2.47 + + 1.5.0 + 1.5.0 + 2.7.4 + 1.9.13 + 2.7.4 + 0.10.0.1 + 2.11 + 2.11.11 + 1.7.7 + + 3.0.2 + 3.0.1 + 2.6 + 2.5.2 + 2.8.2 + 3.5.1 + 2.5.4 + + + + + + com.github.jsqlparser + jsqlparser + ${jsqlparser.version} + + + org.projectlombok + lombok + ${lombok.version} + + + com.google.guava + guava + ${guava.version} + + + org.apache.commons + commons-lang3 + ${commons.lang3.version} + + + com.squareup.okhttp3 + okhttp + ${okhttp.version} + + + org.mybatis + mybatis + ${mybatis.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + ch.qos.logback + logback-core + ${logback.version} + + + commons-cli + commons-cli + 1.3.1 + + + commons-codec + commons-codec + 1.10 + + + commons-collections + commons-collections + 3.2.2 + + + org.apache.commons + commons-math3 + 3.6.1 + + + commons-lang + commons-lang + 2.6 + + + commons-logging + commons-logging + 1.1.3 + + + com.esotericsoftware.kryo + kryo + 2.24.0 + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson2.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson2.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson2.version} + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + ${jackson2.version} + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + ${jackson2.version} + + + com.google.code.findbugs + jsr305 + 1.3.9 + + + com.google.guava + guava + 20.0 + + + com.typesafe + config + 1.3.0 + + + io.netty + netty + 3.8.0.Final + + + io.netty + netty-all + 4.0.27.Final + + + io.swagger + swagger-jersey-jaxrs + 1.5.16 + + + junit + junit + 4.12 + test + + + javax.servlet + javax.servlet-api + 4.0.0 + + + log4j + log4j + 1.2.17 + + + org.apache.avro + avro + 1.7.7 + + + org.apache.calcite + calcite-core + ${calcite.version} + + + org.apache.calcite.avatica + avatica-core + + + + + org.apache.calcite + calcite-server + ${calcite.version} + + + org.apache.flink + flink-connector-kafka-0.10_${scala.binary.version} + ${flink.version} + + + org.apache.flink + flink-core + ${flink.version} + + + org.apache.flink + flink-metrics-jmx + ${flink.version} + + + org.apache.flink + flink-runtime_${scala.binary.version} + ${flink.version} + + + com.typesafe + config + + + + + org.apache.flink + flink-runtime_${scala.binary.version} + tests + ${flink.version} + test + + + org.apache.flink + flink-runtime-web_${scala.binary.version} + ${flink.version} + + + org.apache.flink + flink-shaded-hadoop2 + ${flink.shaded.version} + + + com.thoughtworks.paranamer + paranamer + + + commons-beanutils + commons-beanutils + + + org.tukaani + xz + + + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + ${flink.version} + + + org.apache.flink + flink-streaming-scala_${scala.binary.version} + ${flink.version} + + + org.apache.flink + flink-table_${scala.binary.version} + ${flink.version} + + + org.apache.flink + flink-yarn_${scala.binary.version} + ${flink.version} + + + org.apache.hadoop + hadoop-client + ${hadoop.version} + + + org.apache.hadoop + hadoop-yarn-server-tests + tests + ${hadoop.version} + test + + + org.apache.kafka + kafka_${scala.binary.version} + ${kafka.version} + + + org.scala-lang.modules + scala-xml_${scala.binary.version} + + + + + org.codehaus.jackson + jackson-mapper-asl + ${jackson.version} + + + org.codehaus.jackson + jackson-core-asl + ${jackson.version} + + + org.codehaus.jackson + jackson-jaxrs + ${jackson.version} + + + org.codehaus.jackson + jackson-xc + ${jackson.version} + + + org.fusesource.leveldbjni + leveldbjni-all + 1.8 + + + org.hamcrest + hamcrest-core + 1.3 + + + org.javassist + javassist + 3.21.0-GA + + + org.mockito + mockito-core + 1.10.8 + + + org.scala-lang + scala-library + ${scala.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + org.xerial.snappy + snappy-java + 1.1.4 + + + com.thoughtworks.paranamer + paranamer + 2.7 + + + commons-beanutils + commons-beanutils + 1.9.3 + + + org.tukaani + xz + 1.5 + + + com.alibaba + druid + ${druid.version} + + + com.alibaba + fastjson + ${fastjson.version} + + + + + + + + + + + org.apache.maven.plugins + maven-source-plugin + ${maven.source.plugin.version} + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + org.apache.maven.plugins + maven-install-plugin + ${maven.install.plugin.version} + + + org.apache.maven.plugins + maven-deploy-plugin + ${maven.deploy.plugin.version} + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven.compiler.plugin.version} + + true + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + + + maven-release-plugin + 2.4.2 + + false + true + false + v@{project.version} + + + + org.apache.maven.scm + maven-scm-api + 1.8.1 + + + org.apache.maven.scm + maven-scm-provider-gitexe + 1.8.1 + + + + + + + + \ No newline at end of file From 54b9527ad8218347dbb4003499b9db5d200e766d Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 20 Aug 2018 19:22:09 +0800 Subject: [PATCH 07/31] upgrade --- .idea/misc.xml | 6 -- .idea/modules.xml | 8 --- .idea/vcs.xml | 6 -- blink-common/pom.xml | 149 ------------------------------------------- 4 files changed, 169 deletions(-) delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 blink-common/pom.xml diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 8ed5f34..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 2c3bb68..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/blink-common/pom.xml b/blink-common/pom.xml deleted file mode 100644 index 2b5d8fa..0000000 --- a/blink-common/pom.xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - blink - pingle.wang - 0.0.1-SNAPSHOT - - 4.0.0 - - blink-common - - 0.0.1-SNAPSHOT - - - - - pingle.wang - blink-client - 0.0.1-SNAPSHOT - compile - - - - - com.github.jsqlparser - jsqlparser - 1.2 - - - commons-io - commons-io - 2.4 - test - - - junit - junit - 4.12 - test - - - org.hamcrest - hamcrest-library - 1.3 - test - - - org.mockito - mockito-core - 2.16.0 - test - - - - com.google.guava - guava - - - com.typesafe - config - - - org.mockito - mockito-core - test - - - org.scala-lang - scala-library - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.slf4j - slf4j-log4j12 - - - org.apache.commons - commons-lang3 - 3.5 - - - - org.apache.flink - flink-json - - - org.apache.flink - flink-metrics-jmx - - - org.apache.flink - flink-runtime_${scala.binary.version} - - - com.typesafe - config - - - - - org.apache.flink - flink-runtime_${scala.binary.version} - tests - test - - - org.apache.flink - flink-runtime-web_${scala.binary.version} - - - org.apache.flink - flink-streaming-java_${scala.binary.version} - - - org.apache.flink - flink-streaming-scala_${scala.binary.version} - - - org.apache.flink - flink-table_${scala.binary.version} - - - org.apache.flink - flink-yarn_${scala.binary.version} - - - junit - junit - test - - - org.apache.flink - flink-connector-kafka-0.10_${scala.binary.version} - - - org.apache.flink - flink-json - ${flink.version} - - - - - \ No newline at end of file From d571add87475980647bcfac93c8f8d905f60e791 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 21 Aug 2018 15:30:33 +0800 Subject: [PATCH 08/31] =?UTF-8?q?=E5=B0=81=E8=A3=85Flink=20job?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blink-client/pom.xml | 42 ++- .../{api => client}/common/ApiResult.java | 2 +- .../common/sql/SqlConstant.java | 2 +- .../common/sql/SqlInputException.java | 2 +- .../common/sql/SqlParserResDescriptor.java | 2 +- .../wang/client/job/CompilationResult.java | 113 +++++++++ .../pingle/wang/client/job/JobCompiler.java | 240 ++++++++++++++++++ .../pingle/wang/client/job/JobDescriptor.java | 94 +++++++ .../client/job/TableSinkProviderRegistry.java | 40 +++ .../pingle/wang/client/job/TableSinkType.java | 24 ++ .../sqlserver/SqlConvertService.java | 5 +- .../wang/client/table/FlinkTableCatalog.java | 41 +++ .../table/FlinkTableCatalogProvider.java | 25 ++ .../wang/client/table/FlinkTableSink.java | 68 +++++ .../client/table/FlinkTableSinkProvider.java | 22 ++ blink-job/pom.xml | 139 ++++++++++ blink-sqlserver/pom.xml | 1 - .../sqlserver}/SqlConvertServiceImpl.java | 9 +- .../flink/job/JobCompilationResult.java | 30 +++ .../wang/sqlserver/sql/plan/Planner.java | 88 +++++++ .../wang/sqlserver/sql/plan/Validator.java | 155 +++++++++++ .../sqlserver}/SqlConvertServiceTest.java | 3 +- pom.xml | 7 +- 23 files changed, 1137 insertions(+), 17 deletions(-) rename blink-client/src/main/java/pingle/wang/{api => client}/common/ApiResult.java (95%) rename blink-client/src/main/java/pingle/wang/{api => client}/common/sql/SqlConstant.java (89%) rename blink-client/src/main/java/pingle/wang/{api => client}/common/sql/SqlInputException.java (84%) rename blink-client/src/main/java/pingle/wang/{api => client}/common/sql/SqlParserResDescriptor.java (98%) create mode 100644 blink-client/src/main/java/pingle/wang/client/job/CompilationResult.java create mode 100644 blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java create mode 100644 blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java create mode 100644 blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java create mode 100644 blink-client/src/main/java/pingle/wang/client/job/TableSinkType.java rename blink-client/src/main/java/pingle/wang/{api => client}/sqlserver/SqlConvertService.java (91%) create mode 100644 blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java create mode 100644 blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java create mode 100644 blink-client/src/main/java/pingle/wang/client/table/FlinkTableSink.java create mode 100644 blink-client/src/main/java/pingle/wang/client/table/FlinkTableSinkProvider.java create mode 100644 blink-job/pom.xml rename blink-sqlserver/src/main/java/pingle/wang/{api/sqlserver/impl => client/sqlserver}/SqlConvertServiceImpl.java (98%) create mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java create mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java create mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java rename blink-sqlserver/src/test/java/pingle/wang/{api/sqlserver/impl => client/sqlserver}/SqlConvertServiceTest.java (97%) diff --git a/blink-client/pom.xml b/blink-client/pom.xml index 2cda70d..f17ea95 100644 --- a/blink-client/pom.xml +++ b/blink-client/pom.xml @@ -19,7 +19,47 @@ org.apache.flink - flink-core + flink-json + + + org.apache.flink + flink-metrics-jmx + + + org.apache.flink + flink-runtime_${scala.binary.version} + + + com.typesafe + config + + + + + org.apache.flink + flink-runtime_${scala.binary.version} + tests + test + + + org.apache.flink + flink-runtime-web_${scala.binary.version} + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + + + org.apache.flink + flink-streaming-scala_${scala.binary.version} + + + org.apache.flink + flink-table_${scala.binary.version} + + + org.apache.flink + flink-yarn_${scala.binary.version} \ No newline at end of file diff --git a/blink-client/src/main/java/pingle/wang/api/common/ApiResult.java b/blink-client/src/main/java/pingle/wang/client/common/ApiResult.java similarity index 95% rename from blink-client/src/main/java/pingle/wang/api/common/ApiResult.java rename to blink-client/src/main/java/pingle/wang/client/common/ApiResult.java index 862d16d..80414e4 100644 --- a/blink-client/src/main/java/pingle/wang/api/common/ApiResult.java +++ b/blink-client/src/main/java/pingle/wang/client/common/ApiResult.java @@ -1,4 +1,4 @@ -package pingle.wang.api.common; +package pingle.wang.client.common; /** * @Author: wpl diff --git a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java b/blink-client/src/main/java/pingle/wang/client/common/sql/SqlConstant.java similarity index 89% rename from blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java rename to blink-client/src/main/java/pingle/wang/client/common/sql/SqlConstant.java index 143ac3b..32c5757 100644 --- a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlConstant.java +++ b/blink-client/src/main/java/pingle/wang/client/common/sql/SqlConstant.java @@ -1,4 +1,4 @@ -package pingle.wang.api.common.sql; +package pingle.wang.client.common.sql; /** * @Author: wpl diff --git a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java b/blink-client/src/main/java/pingle/wang/client/common/sql/SqlInputException.java similarity index 84% rename from blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java rename to blink-client/src/main/java/pingle/wang/client/common/sql/SqlInputException.java index 87fb484..3ff749e 100644 --- a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlInputException.java +++ b/blink-client/src/main/java/pingle/wang/client/common/sql/SqlInputException.java @@ -1,4 +1,4 @@ -package pingle.wang.api.common.sql; +package pingle.wang.client.common.sql; /** * @Author: wpl diff --git a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java b/blink-client/src/main/java/pingle/wang/client/common/sql/SqlParserResDescriptor.java similarity index 98% rename from blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java rename to blink-client/src/main/java/pingle/wang/client/common/sql/SqlParserResDescriptor.java index f313ab6..31d33ca 100644 --- a/blink-client/src/main/java/pingle/wang/api/common/sql/SqlParserResDescriptor.java +++ b/blink-client/src/main/java/pingle/wang/client/common/sql/SqlParserResDescriptor.java @@ -1,4 +1,4 @@ -package pingle.wang.api.common.sql; +package pingle.wang.client.common.sql; import org.apache.flink.api.common.typeinfo.TypeInformation; diff --git a/blink-client/src/main/java/pingle/wang/client/job/CompilationResult.java b/blink-client/src/main/java/pingle/wang/client/job/CompilationResult.java new file mode 100644 index 0000000..e95a6fd --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/CompilationResult.java @@ -0,0 +1,113 @@ +package pingle.wang.client.job; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.List; + +import org.apache.flink.runtime.jobgraph.JobGraph; +import org.apache.hadoop.fs.Path; + +/** + * @Author: wpl + */ +public class CompilationResult implements Serializable { + private String name ; + private String queue; + private int numSlots ; + private int numContainers ; + private int memorysize; + private JobGraph jobGraph; + private Throwable remoteThrowable; + private List additionalJars; + + public CompilationResult() { + } + + public CompilationResult(String name, String queue, int numSlots, int numContainers, int memorysize, JobGraph jobGraph, Throwable remoteThrowable, List additionalJars) { + this.name = name; + this.queue = queue; + this.numSlots = numSlots; + this.numContainers = numContainers; + this.memorysize = memorysize; + this.jobGraph = jobGraph; + this.remoteThrowable = remoteThrowable; + this.additionalJars = additionalJars; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getQueue() { + return queue; + } + + public void setQueue(String queue) { + this.queue = queue; + } + + public int getNumSlots() { + return numSlots; + } + + public void setNumSlots(int numSlots) { + this.numSlots = numSlots; + } + + public int getNumContainers() { + return numContainers; + } + + public void setNumContainers(int numContainers) { + this.numContainers = numContainers; + } + + public int getMemorysize() { + return memorysize; + } + + public void setMemorysize(int memorysize) { + this.memorysize = memorysize; + } + + public JobGraph getJobGraph() { + return jobGraph; + } + + public void setJobGraph(JobGraph jobGraph) { + this.jobGraph = jobGraph; + } + + public Throwable getRemoteThrowable() { + return remoteThrowable; + } + + public void setRemoteThrowable(Throwable remoteThrowable) { + this.remoteThrowable = remoteThrowable; + } + + public List getAdditionalJars() { + return additionalJars; + } + + public void setAdditionalJars(List additionalJars) { + this.additionalJars = additionalJars; + } + + byte[] serialize() { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + try (ObjectOutputStream os = new ObjectOutputStream(bos)) { + os.writeObject(this); + } catch (IOException e) { + return null; + } + return bos.toByteArray(); + } + +} \ No newline at end of file diff --git a/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java b/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java new file mode 100644 index 0000000..165a80e --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java @@ -0,0 +1,240 @@ +package pingle.wang.client.job; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.flink.api.java.utils.ParameterTool; +import org.apache.flink.runtime.jobgraph.JobGraph; +import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; +import org.apache.flink.streaming.api.graph.StreamGraph; +import org.apache.flink.table.api.Table; +import org.apache.flink.table.api.java.StreamTableEnvironment; +import org.apache.flink.table.catalog.ExternalCatalogTable; +import org.apache.flink.table.functions.AggregateFunction; +import org.apache.flink.table.functions.ScalarFunction; +import org.apache.flink.table.functions.TableFunction; +import org.apache.flink.table.sinks.AppendStreamTableSink; +import org.apache.flink.table.sinks.BatchTableSink; +import org.apache.flink.table.sinks.UpsertStreamTableSink; +import org.apache.flink.table.sources.TableSource; +import org.apache.flink.types.Row; +import org.apache.flink.util.Preconditions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import pingle.wang.client.common.sql.SqlConstant; +import pingle.wang.client.table.FlinkTableSink; +import pingle.wang.client.table.FlinkTableSinkProvider; + +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.OutputStream; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.*; + +/** + * @Author: wpl + */ +public class JobCompiler { + private static final Logger logger = LoggerFactory.getLogger(JobCompiler.class); + private StreamTableEnvironment env; + private JobDescriptor job; + + public JobCompiler() { + } + + public JobCompiler(StreamTableEnvironment env, JobDescriptor job) { + this.env = env; + this.job = job; + } + + public static void main(String[] args) throws IOException { + + CompilationResult res = null; + try { + JobDescriptor job = getJobConf(System.in); + res = compileJob(job); + } catch (Throwable e) { + res = new CompilationResult(); + res.setRemoteThrowable(e); + } + + try (OutputStream out = chooseOutputStream(args)) { + out.write(res.serialize()); + } + } + + public static CompilationResult compileJob(JobDescriptor job) { + StreamExecutionEnvironment execEnv = StreamExecutionEnvironment.createLocalEnvironment(); + + StreamTableEnvironment env = StreamTableEnvironment.getTableEnvironment(execEnv); + CompilationResult res = new CompilationResult(); + + try { + res.setJobGraph(new JobCompiler(env, job).getJobGraph()); + } catch (IOException e) { + res.setRemoteThrowable(e); + } + + return res; + } + + private static OutputStream chooseOutputStream(String[] args) throws IOException { + if (args.length > 0) { + int port = Integer.parseInt(args[0]); + Socket sock = new Socket(); + sock.connect(new InetSocketAddress(InetAddress.getLocalHost(), port)); + return sock.getOutputStream(); + } else { + return System.out; + } + } + + JobGraph getJobGraph() throws IOException { + StreamExecutionEnvironment exeEnv = env.execEnv(); + Map extraProps = job.getExtraProps(); + + //1.设置flink的参数等信息 + Map jobProps = new HashMap<>(); + jobProps.putAll(extraProps); + ParameterTool parameter = ParameterTool.fromMap(jobProps); + exeEnv.getConfig().setGlobalJobParameters(parameter); + + //2.Source和Sink注册 + this.registerUdfs() + .registerInputTableSource() + .registerOutputTableSink(); + + + //3.sql操作 + Map> sqls = job.getSqls(); + + //3.1含有view的操作 + if (sqls.containsKey(SqlConstant.VIEW)){ + //视图名,对应查询 + LinkedHashMap viewMap = sqls.get(SqlConstant.VIEW); + Set viewNames = viewMap.keySet(); + for (String name:viewNames) { + String sql = viewMap.get(name); + Table table = env.sqlQuery(sql); + logger.info("sql view query is -----> "+sql); + env.registerTable(name,table); + } + } + + //3.2 insert inot操作 + if (sqls.containsKey(SqlConstant.INSERT_INTO)){ + LinkedHashMap updateMap = sqls.get(SqlConstant.INSERT_INTO); + Collection values = updateMap.values(); + for (String sql:values){ + logger.info("sql insert into is -----> "+sql); + env.sqlUpdate(sql); + } + } + + StreamGraph streamGraph = exeEnv.getStreamGraph(); + return streamGraph.getJobGraph(); + } + + private JobCompiler registerOutputTableSink() { + Map flinkTableSinks = job.getFlinkTableSinks(); + Collection tableSinks = flinkTableSinks.values(); + if (CollectionUtils.isNotEmpty(tableSinks)){ + for (FlinkTableSink sink:tableSinks) { + String typeName = sink.getTypeName(); + try { + //这里类型判断 + if(typeName.equalsIgnoreCase(TableSinkType.APPEND.getSinkType())){ + env.registerTableSink( + sink.getTableName(), + sink.getSchema().getColumnNames(), + sink.getSchema().getTypes(), + getAppendOutputTable(sink.getTableSink().getTable(sink.getTableName()))); + } + + if(typeName.equalsIgnoreCase(TableSinkType.UPSERT.getSinkType())){ + env.registerTableSink( + sink.getTableName(), + sink.getSchema().getColumnNames(), + sink.getSchema().getTypes(), + getUpsertOutputTable(sink.getTableSink().getTable(sink.getTableName()))); + } + + if(typeName.equalsIgnoreCase(TableSinkType.BATCH.getSinkType())){ + env.registerTableSink( + sink.getTableName(), + sink.getSchema().getColumnNames(), + sink.getSchema().getTypes(), + getUpsertOutputTable(sink.getTableSink().getTable(sink.getTableName()))); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + return this; + } + + private BatchTableSink getBatchTableSink( + ExternalCatalogTable output) throws IOException { + FlinkTableSinkProvider c = TableSinkProviderRegistry.getProvider(output); + Preconditions.checkNotNull(c, "Cannot find output connectors for " + output); + return c.getBatchTableSink(output); + } + + private UpsertStreamTableSink getUpsertOutputTable( + ExternalCatalogTable output) throws IOException { + FlinkTableSinkProvider c = TableSinkProviderRegistry.getProvider(output); + Preconditions.checkNotNull(c, "Cannot find output connectors for " + output); + return c.getUpsertStreamTableSink(output); + } + + private AppendStreamTableSink getAppendOutputTable( + ExternalCatalogTable output) throws IOException { + FlinkTableSinkProvider c = TableSinkProviderRegistry.getProvider(output); + Preconditions.checkNotNull(c, "Cannot find output connectors for " + output); + return c.getAppendStreamTableSink(output); + } + + private JobCompiler registerInputTableSource() { + for (Map.Entry e : job.getFlinkTableSources().entrySet() ){ + logger.info("Registering source table {}", e.getKey()); + env.registerTableSource(e.getKey(),e.getValue()); + } + return this; + } + + private JobCompiler registerUdfs() { + for (Map.Entry e : job.getUserDefineFunctions().entrySet()) { + final String name = e.getKey(); + String clazzName = e.getValue(); + logger.info("udf name = " + clazzName); + final Object udf; + try { + Class clazz = Class.forName(clazzName); + udf = clazz.newInstance(); + } catch (ClassNotFoundException | IllegalAccessException | InstantiationException ex) { + throw new IllegalArgumentException("Invalid UDF " + name, ex); + } + + if (udf instanceof ScalarFunction) { + env.registerFunction(name, (ScalarFunction) udf); + } else if (udf instanceof TableFunction) { + env.registerFunction(name, (TableFunction) udf); + } else if (udf instanceof AggregateFunction) { + env.registerFunction(name, (AggregateFunction) udf); + } else { + logger.warn("Unknown UDF {} was found.", clazzName); + } + } + return this; + } + + static JobDescriptor getJobConf(InputStream is) throws IOException, ClassNotFoundException { + try (ObjectInputStream ois = new ObjectInputStream(is)) { + return (JobDescriptor) ois.readObject(); + } + } +} diff --git a/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java b/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java new file mode 100644 index 0000000..12dcf48 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java @@ -0,0 +1,94 @@ +package pingle.wang.client.job; + +import org.apache.flink.table.sources.TableSource; +import pingle.wang.client.table.FlinkTableSink; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @Author: wpl + */ +public class JobDescriptor implements Serializable { + private static final long serialVersionUID = -1; + private Map userDefineFunctions; + private Map flinkTableSources; + private Map flinkTableSinks; + private int parallelism; + private Map extraProps; + private Map> sqls; + + public JobDescriptor() { + } + + public JobDescriptor(Map userDefineFunctions, Map flinkTableSources, Map flinkTableSinks, int parallelism, Map extraProps, Map> sqls) { + this.userDefineFunctions = userDefineFunctions; + this.flinkTableSources = flinkTableSources; + this.flinkTableSinks = flinkTableSinks; + this.parallelism = parallelism; + this.extraProps = extraProps; + this.sqls = sqls; + } + + public Map getUserDefineFunctions() { + return userDefineFunctions; + } + + public void setUserDefineFunctions(Map userDefineFunctions) { + this.userDefineFunctions = userDefineFunctions; + } + + public Map getFlinkTableSources() { + return flinkTableSources; + } + + public void setFlinkTableSources(Map flinkTableSources) { + this.flinkTableSources = flinkTableSources; + } + + public Map getFlinkTableSinks() { + return flinkTableSinks; + } + + public void setFlinkTableSinks(Map flinkTableSinks) { + this.flinkTableSinks = flinkTableSinks; + } + + public int getParallelism() { + return parallelism; + } + + public void setParallelism(int parallelism) { + this.parallelism = parallelism; + } + + public Map getExtraProps() { + return extraProps; + } + + public void setExtraProps(Map extraProps) { + this.extraProps = extraProps; + } + + public Map> getSqls() { + return sqls; + } + + public void setSqls(Map> sqls) { + this.sqls = sqls; + } + + byte[] serialize() { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + try (ObjectOutputStream os = new ObjectOutputStream(bos)) { + os.writeObject(this); + } catch (IOException e) { + return null; + } + return bos.toByteArray(); + } +} diff --git a/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java b/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java new file mode 100644 index 0000000..830d810 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java @@ -0,0 +1,40 @@ +package pingle.wang.client.job; + +import org.apache.flink.table.catalog.ExternalCatalogTable; +import org.apache.flink.table.descriptors.ConnectorDescriptorValidator; +import org.apache.flink.table.descriptors.DescriptorProperties; +import pingle.wang.client.table.FlinkTableSinkProvider; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.ServiceLoader; + +/** + * @Author: wpl + */ +public final class TableSinkProviderRegistry { + private static final Map PROVIDERS; + static { + HashMap providers = new HashMap<>(); + ServiceLoader loaders = + ServiceLoader.load(FlinkTableSinkProvider.class); + loaders.forEach(x -> providers.put(x.getType(), x)); + PROVIDERS = Collections.unmodifiableMap(providers); + } + + private TableSinkProviderRegistry() { + } + + /** + * + * @param table + * @return + */ + static FlinkTableSinkProvider getProvider(ExternalCatalogTable table) { + DescriptorProperties properties = new DescriptorProperties(true); + table.addProperties(properties); + String connectorType = properties.getString(ConnectorDescriptorValidator.CONNECTOR_TYPE()); + return PROVIDERS.get(connectorType); + } +} diff --git a/blink-client/src/main/java/pingle/wang/client/job/TableSinkType.java b/blink-client/src/main/java/pingle/wang/client/job/TableSinkType.java new file mode 100644 index 0000000..1227536 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/TableSinkType.java @@ -0,0 +1,24 @@ +package pingle.wang.client.job; + +/** + * @Author: wpl + */ +public enum TableSinkType { + UPSERT("Upsert"), + BATCH("Batch"), + APPEND("Append"); + + private String sinkType; + + TableSinkType(String sinkType){ + this.sinkType = sinkType; + } + + public String getSinkType() { + return sinkType; + } + + public void setSinkType(String sinkType) { + this.sinkType = sinkType; + } +} diff --git a/blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java b/blink-client/src/main/java/pingle/wang/client/sqlserver/SqlConvertService.java similarity index 91% rename from blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java rename to blink-client/src/main/java/pingle/wang/client/sqlserver/SqlConvertService.java index d18bcf6..53ff837 100644 --- a/blink-client/src/main/java/pingle/wang/api/sqlserver/SqlConvertService.java +++ b/blink-client/src/main/java/pingle/wang/client/sqlserver/SqlConvertService.java @@ -1,8 +1,7 @@ -package pingle.wang.api.sqlserver; +package pingle.wang.client.sqlserver; -import pingle.wang.api.common.sql.SqlParserResDescriptor; +import pingle.wang.client.common.sql.SqlParserResDescriptor; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java new file mode 100644 index 0000000..eada506 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java @@ -0,0 +1,41 @@ +package pingle.wang.client.table; + +import org.apache.flink.table.catalog.ExternalCatalog; +import org.apache.flink.table.catalog.ExternalCatalogTable; +import org.apache.flink.table.sinks.AppendStreamTableSink; +import org.apache.flink.table.sinks.BatchTableSink; +import org.apache.flink.table.sinks.UpsertStreamTableSink; +import org.apache.flink.types.Row; + +import java.io.IOException; + +/** + * @Author: wpl + */ +public interface FlinkTableCatalog extends ExternalCatalog { + String getType(); + + /** + * 获取Append类型的sink + * @param table + * @return + * @throws IOException + */ + AppendStreamTableSink getAppendStreamTableSink(ExternalCatalogTable table) throws IOException; + + /** + * 获取Upsert类型的sink + * @param table + * @return + * @throws IOException + */ + UpsertStreamTableSink getUpsertStreamTableSink(ExternalCatalogTable table) throws IOException; + + /** + * 获取Batch类型的sink + * @param table + * @return + * @throws IOException + */ + BatchTableSink getBatchTableSink(ExternalCatalogTable table) throws IOException; +} diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java new file mode 100644 index 0000000..c5b0524 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java @@ -0,0 +1,25 @@ +package pingle.wang.client.table; + +import org.apache.flink.table.api.TableSchema; +import org.apache.flink.table.sources.TableSource; + +import java.util.HashMap; + +/** + * @Author: wpl + */ +public interface FlinkTableCatalogProvider { + String getType(); + + FlinkTableCatalog getInputCatalog(HashMap props, TableSchema schema); + + /** + * @param props + * @param schema + * @return + */ + TableSource getInputTableSource(HashMap props, TableSchema schema); + + + FlinkTableCatalog getOutputCatalog(HashMap props,TableSchema schema); +} diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableSink.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableSink.java new file mode 100644 index 0000000..e21f4a3 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableSink.java @@ -0,0 +1,68 @@ +package pingle.wang.client.table; + +import org.apache.flink.table.api.TableSchema; +import org.apache.flink.table.catalog.ExternalCatalog; + +/** + * @Author: wpl + */ +public class FlinkTableSink { + private TableSchema schema; + private String tableName; + private ExternalCatalog tableSink; + //kafak,mysql + private String sinkType; + //append + private String typeName; + + public FlinkTableSink() { + } + + public FlinkTableSink(TableSchema schema, String tableName, ExternalCatalog tableSink, String sinkType, String typeName) { + this.schema = schema; + this.tableName = tableName; + this.tableSink = tableSink; + this.sinkType = sinkType; + this.typeName = typeName; + } + + public TableSchema getSchema() { + return schema; + } + + public void setSchema(TableSchema schema) { + this.schema = schema; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public ExternalCatalog getTableSink() { + return tableSink; + } + + public void setTableSink(ExternalCatalog tableSink) { + this.tableSink = tableSink; + } + + public String getSinkType() { + return sinkType; + } + + public void setSinkType(String sinkType) { + this.sinkType = sinkType; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } +} diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableSinkProvider.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableSinkProvider.java new file mode 100644 index 0000000..e5b502c --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableSinkProvider.java @@ -0,0 +1,22 @@ +package pingle.wang.client.table; + +import org.apache.flink.table.catalog.ExternalCatalogTable; +import org.apache.flink.table.sinks.AppendStreamTableSink; +import org.apache.flink.table.sinks.BatchTableSink; +import org.apache.flink.table.sinks.UpsertStreamTableSink; +import org.apache.flink.types.Row; + +import java.io.IOException; + +/** + * @Author: wpl + */ +public interface FlinkTableSinkProvider { + String getType(); + + AppendStreamTableSink getAppendStreamTableSink(ExternalCatalogTable table) throws IOException; + + UpsertStreamTableSink getUpsertStreamTableSink(ExternalCatalogTable table) throws IOException; + + BatchTableSink getBatchTableSink(ExternalCatalogTable table) throws IOException; +} diff --git a/blink-job/pom.xml b/blink-job/pom.xml new file mode 100644 index 0000000..afbed72 --- /dev/null +++ b/blink-job/pom.xml @@ -0,0 +1,139 @@ + + + + blink + pingle.wang + 0.0.1-SNAPSHOT + + 4.0.0 + + blink-job + 0.0.1-SNAPSHOT + + + + + pingle.wang + blink-client + 0.0.1-SNAPSHOT + compile + + + + junit + junit + 4.12 + test + + + org.hamcrest + hamcrest-library + 1.3 + test + + + org.mockito + mockito-core + 2.16.0 + test + + + + com.google.guava + guava + + + com.typesafe + config + + + org.mockito + mockito-core + test + + + org.scala-lang + scala-library + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + + + org.apache.commons + commons-lang3 + 3.5 + + + + org.apache.flink + flink-json + + + org.apache.flink + flink-metrics-jmx + + + org.apache.flink + flink-runtime_${scala.binary.version} + + + com.typesafe + config + + + + + org.apache.flink + flink-runtime_${scala.binary.version} + tests + test + + + org.apache.flink + flink-runtime-web_${scala.binary.version} + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + + + org.apache.flink + flink-streaming-scala_${scala.binary.version} + + + org.apache.flink + flink-table_${scala.binary.version} + + + org.apache.flink + flink-yarn_${scala.binary.version} + + + junit + junit + test + + + org.apache.flink + flink-connector-kafka-0.10_${scala.binary.version} + + + org.apache.flink + flink-json + ${flink.version} + + + + + + + + \ No newline at end of file diff --git a/blink-sqlserver/pom.xml b/blink-sqlserver/pom.xml index ab7e1d2..befe040 100644 --- a/blink-sqlserver/pom.xml +++ b/blink-sqlserver/pom.xml @@ -25,7 +25,6 @@ com.github.jsqlparser jsqlparser - 1.2 commons-io diff --git a/blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java similarity index 98% rename from blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java rename to blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java index cc2872f..3b1a923 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceImpl.java +++ b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java @@ -1,4 +1,4 @@ -package pingle.wang.api.sqlserver.impl; +package pingle.wang.client.sqlserver; import com.google.common.base.Joiner; import net.sf.jsqlparser.JSQLParserException; @@ -18,14 +18,13 @@ import org.apache.flink.api.common.typeinfo.TypeInformation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import pingle.wang.api.common.sql.SqlInputException; -import pingle.wang.api.common.sql.SqlParserResDescriptor; -import pingle.wang.api.sqlserver.SqlConvertService; +import pingle.wang.client.common.sql.SqlInputException; +import pingle.wang.client.common.sql.SqlParserResDescriptor; import java.io.StringReader; import java.util.*; -import static pingle.wang.api.common.sql.SqlConstant.*; +import static pingle.wang.client.common.sql.SqlConstant.*; /** diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java new file mode 100644 index 0000000..218ab4c --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java @@ -0,0 +1,30 @@ +package pingle.wang.sqlserver.flink.job; + +import org.apache.flink.runtime.jobgraph.JobGraph; +import org.apache.hadoop.fs.Path; + +import java.util.List; + +/** + * @Author: wpl + */ +public class JobCompilationResult { + private JobGraph jobGraph; + private List additionalJars; + + public JobCompilationResult() { + } + + JobCompilationResult(JobGraph jobGraph, List additionalJars) { + this.jobGraph = jobGraph; + this.additionalJars = additionalJars; + } + + public JobGraph jobGraph() { + return jobGraph; + } + + public List additionalJars() { + return additionalJars; + } +} diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java new file mode 100644 index 0000000..cff7e6c --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java @@ -0,0 +1,88 @@ +package pingle.wang.sqlserver.sql.plan; + +import org.apache.calcite.config.Lex; +import org.apache.calcite.sql.SqlNodeList; +import org.apache.flink.annotation.VisibleForTesting; +import org.apache.flink.table.sources.TableSource; +import pingle.wang.client.common.sql.SqlConstant; +import pingle.wang.client.job.CompilationResult; +import pingle.wang.client.job.JobCompiler; +import pingle.wang.client.job.JobDescriptor; +import pingle.wang.client.table.FlinkTableCatalog; +import pingle.wang.client.table.FlinkTableSink; +import pingle.wang.sqlserver.sql.parser.impl.SqlParserImpl; + +import java.io.StringReader; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.Map; + +/** + * @Author: wpl + */ +public class Planner { + private static final int DEFAULT_IDENTIFIER_MAX_LENGTH = 128; + + private Map inputs; + private Map tableSourceMap; + private LinkedList mlinkTableSinks; + private Map extraProps; + + //含有视图解析的sql部分 + public CompilationResult sqlPlanner(Map> sqls, int parallelism) throws Throwable { + Validator validator = new Validator(); + //视图验证 + if(sqls.containsKey(SqlConstant.VIEW)){ + //视图名,对应查询 + LinkedHashMap viewMap = sqls.get(SqlConstant.VIEW); + Collection views =viewMap.values(); + for (String sql:views) { + SqlNodeList stmts = parse(sql); + validator.validateQuery(stmts); + } + } + + if (sqls.containsKey(SqlConstant.INSERT_INTO)) { + LinkedHashMap updateMap = sqls.get(SqlConstant.INSERT_INTO); + Collection values = updateMap.values(); + for (String sql : values) { + SqlNodeList stmts = parse(sql); + validator.validateDml(stmts); + } + } + + JobDescriptor job = new JobDescriptor( + validator.userDefinedFunctions(), + tableSourceMap, + mlinkTableSinks, + parallelism, + extraProps, + sqls + ); + + CompilationResult res = JobCompiler.compileJob(job); + + res.setAdditionalJars(validator.additionalResources()); + if (res.getRemoteThrowable() != null) { + throw res.getRemoteThrowable(); + } + return res; + } + + @VisibleForTesting + static SqlNodeList parse(String sql) throws Exception { + // Keep the SQL syntax consistent with Flink + try (StringReader in = new StringReader(sql)) { + SqlParserImpl impl = new SqlParserImpl(in); + + // back tick as the quote + impl.switchTo("BTID"); + impl.setTabSize(1); + impl.setQuotedCasing(Lex.JAVA.quotedCasing); + impl.setUnquotedCasing(Lex.JAVA.unquotedCasing); + impl.setIdentifierMaxLength(DEFAULT_IDENTIFIER_MAX_LENGTH); + return impl.SqlStmtsEof(); + } + } +} diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java new file mode 100644 index 0000000..cca28f4 --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java @@ -0,0 +1,155 @@ +package pingle.wang.sqlserver.sql.plan; + +import org.apache.calcite.sql.*; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.flink.annotation.VisibleForTesting; +import org.apache.flink.util.Preconditions; +import org.apache.hadoop.fs.Path; +import pingle.wang.sqlserver.sql.parser.SqlCreateFunction; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +/** + * @Author: wpl + */ +public class Validator { + private final PropertiesConfiguration conf = new PropertiesConfiguration(); + private final ArrayList additionalResources = new ArrayList<>(); + private final HashMap userDefinedFunctions = new HashMap<>(); + + private SqlInsert statement; + private SqlSelect sqlQuery; + + public Configuration options() { + return conf; + } + + public ArrayList additionalResources() { + return additionalResources; + } + + public Map userDefinedFunctions() { + return userDefinedFunctions; + } + + public void validateQuery(SqlNodeList query) { + extract(query); + validateExactlyOnceSelect(query); + } + + public void validateDml(SqlNodeList query) { + extract(query); + validateExactlyOnceDml(query); + } + + /** + * Extract options and jars from the queries. + */ + @VisibleForTesting + void extract(SqlNodeList query) { + for (SqlNode n : query) { + if (n instanceof SqlSetOption) { + extract((SqlSetOption) n); + } else if (n instanceof SqlCreateFunction) { + extract((SqlCreateFunction) n); + } + } + } + + public void extract(SqlCreateFunction node) { + if (node.jarList() == null) { + return; + } + + for (SqlNode n : node.jarList()) { +// URI uri = URI.create(unwrapConstant(n)); + additionalResources.add(new Path(unwrapConstant(n))); + } + + String funcName = node.dbName() != null ? unwrapConstant(node.dbName()) + "." + unwrapConstant(node.funcName()) + : unwrapConstant(node.funcName()); + String clazzName = unwrapConstant(node.className()); + userDefinedFunctions.put(funcName, clazzName); + } + + public void extract(SqlSetOption node) { + Object value = unwrapConstant(node.getValue()); + String property = node.getName().toString(); + + Preconditions.checkArgument(!"SYSTEM".equals(node.getScope()), + "cannot set properties at the system level"); + conf.setProperty(property, value); + } + + @VisibleForTesting + void validateExactlyOnceSelect(SqlNodeList query) { + Preconditions.checkArgument(query.size() > 0); + long n = StreamSupport.stream(query.spliterator(), false) + .filter(x -> x instanceof SqlInsert) + .count(); + System.out.println(n); + Stream nodeStream = StreamSupport.stream(query.spliterator(), false) + .filter(x -> x instanceof SqlSelect); + Iterator iterator = nodeStream.iterator(); + for (Iterator it = iterator; it.hasNext(); ) { + SqlSelect node = (SqlSelect) it.next(); + sqlQuery = node; + } + Preconditions.checkArgument(n == 1 && sqlQuery instanceof SqlSelect, + "Only one top-level Insert statement is allowed"); + + } + + @VisibleForTesting + void validateExactlyOnceDml(SqlNodeList query) { + Preconditions.checkArgument(query.size() > 0); + long n = StreamSupport.stream(query.spliterator(), false) + .filter(x -> x instanceof SqlInsert) + .count(); + System.out.println(n); + Stream nodeStream = StreamSupport.stream(query.spliterator(), false) + .filter(x -> x instanceof SqlInsert); + Iterator iterator = nodeStream.iterator(); + for (Iterator it = iterator; it.hasNext(); ) { + SqlInsert node = (SqlInsert) it.next(); + statement = node; + } + Preconditions.checkArgument(n == 1 && statement instanceof SqlInsert, + "Only one top-level Insert statement is allowed"); + + } + + + public SqlInsert statement() { + return statement; + } + + public SqlSelect sqlQuery() { + return sqlQuery; + } + + /** + * Unwrap a constant in the AST as a Java Object. + * + *

The Calcite validator has folded all the constants by this point. + * Thus the function expects either a SqlLiteral or a SqlIdentifier but not a SqlCall.

+ */ + private static String unwrapConstant(SqlNode value) { + if (value == null) { + return null; + } else if (value instanceof SqlLiteral) { + return ((SqlLiteral) value).toValue(); + } else if (value instanceof SqlIdentifier) { + return value.toString(); + } else { + throw new IllegalArgumentException("Invalid constant " + value); + } + } +} + diff --git a/blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java b/blink-sqlserver/src/test/java/pingle/wang/client/sqlserver/SqlConvertServiceTest.java similarity index 97% rename from blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java rename to blink-sqlserver/src/test/java/pingle/wang/client/sqlserver/SqlConvertServiceTest.java index d043d6a..8f3590a 100644 --- a/blink-sqlserver/src/test/java/pingle/wang/api/sqlserver/impl/SqlConvertServiceTest.java +++ b/blink-sqlserver/src/test/java/pingle/wang/client/sqlserver/SqlConvertServiceTest.java @@ -1,9 +1,8 @@ -package pingle.wang.api.sqlserver.impl; +package pingle.wang.client.sqlserver; import com.google.common.base.Joiner; import org.junit.Before; import org.junit.Test; -import pingle.wang.api.sqlserver.SqlConvertService; import java.util.List; import java.util.Map; diff --git a/pom.xml b/pom.xml index 729ff7b..44193ae 100644 --- a/pom.xml +++ b/pom.xml @@ -9,8 +9,8 @@ blink-client - blink-common blink-sqlserver + blink-job @@ -275,6 +275,11 @@ + + org.apache.flink + flink-json + ${flink.version} + org.apache.flink flink-streaming-java_${scala.binary.version} From b2e40d34fc2f1429abd4258566b862ee842c3b04 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Wed, 22 Aug 2018 14:09:30 +0800 Subject: [PATCH 09/31] =?UTF-8?q?function,view,dml=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E7=9A=84=E9=AA=8C=E8=AF=81=E5=92=8CFlink=20job=E5=B0=81?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wang/sqlserver/sql/plan/Planner.java | 37 ++++++++++++++----- .../wang/sqlserver/sql/plan/Validator.java | 4 ++ 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java index cff7e6c..4053c73 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java @@ -13,10 +13,7 @@ import pingle.wang.sqlserver.sql.parser.impl.SqlParserImpl; import java.io.StringReader; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.Map; +import java.util.*; /** * @Author: wpl @@ -26,13 +23,32 @@ public class Planner { private Map inputs; private Map tableSourceMap; - private LinkedList mlinkTableSinks; - private Map extraProps; + private List flinkTableSinks; + private Map extraProps; - //含有视图解析的sql部分 - public CompilationResult sqlPlanner(Map> sqls, int parallelism) throws Throwable { + public Planner() { + } + + public Planner(Map inputs, Map tableSourceMap, List flinkTableSinks, Map extraProps) { + this.inputs = inputs; + this.tableSourceMap = tableSourceMap; + this.flinkTableSinks = flinkTableSinks; + this.extraProps = extraProps; + } + + public CompilationResult sqlPlanner(Map> funMap,Map> sqls, int parallelism) throws Throwable { Validator validator = new Validator(); - //视图验证 + + //方法 + if(funMap.containsKey(SqlConstant.FUNCTION)){ + List list = funMap.get(SqlConstant.FUNCTION); + for (String sql:list) { + SqlNodeList stmts = parse(sql); + validator.validateFunction(stmts); + } + } + + //视图 if(sqls.containsKey(SqlConstant.VIEW)){ //视图名,对应查询 LinkedHashMap viewMap = sqls.get(SqlConstant.VIEW); @@ -43,6 +59,7 @@ public CompilationResult sqlPlanner(Map> sql } } + //dml if (sqls.containsKey(SqlConstant.INSERT_INTO)) { LinkedHashMap updateMap = sqls.get(SqlConstant.INSERT_INTO); Collection values = updateMap.values(); @@ -55,7 +72,7 @@ public CompilationResult sqlPlanner(Map> sql JobDescriptor job = new JobDescriptor( validator.userDefinedFunctions(), tableSourceMap, - mlinkTableSinks, + flinkTableSinks, parallelism, extraProps, sqls diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java index cca28f4..9a7ac12 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java @@ -48,6 +48,10 @@ public void validateDml(SqlNodeList query) { validateExactlyOnceDml(query); } + public void validateFunction(SqlNodeList query) { + extract(query); + } + /** * Extract options and jars from the queries. */ From f321ec4b8579bca4ca3e419328f82de21ee3fb1a Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Wed, 22 Aug 2018 16:42:53 +0800 Subject: [PATCH 10/31] =?UTF-8?q?sql=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 98a328d..15dfd5a 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,68 @@ 三.代码关注 -apache Flink sql实现 +apache Flink sql -apache calcite 的sql引擎源码解读 +apache calcite -apache hive \ No newline at end of file +apache hive + + +四.样例 +```sql +CREATE FUNCTION demouf AS + 'pingle.wang.api.sql.function.DemoUDF' +USING JAR 'hdfs://flink/udf/jedis.jar', + JAR 'hdfs://flink/udf/customudf.jar'; + + +CREATE TABLE kafak_source ( + `date` string, + amount float, + proctime timestamp + ) +with ( + type=kafka, + 'flink.parallelism'=1, + 'kafka.topic'='topic', + 'kafka.group.id'='flinks', + 'kafka.enable.auto.commit'=true, + 'kafka.bootstrap.servers'='localhost:9092' +); + + +CREATE TABLE mysql_sink ( + `date` string, + amount float, + PRIMARY KEY (`date`,amount) + ) +with ( + type=mysql, + 'mysql.connection'='localhost:3306', + 'mysql.db.name'=flink, + 'mysql.batch.size'=0, + 'mysql.table.name'=flink_table, + 'mysql.user'=root, + 'mysql.pass'=root +); + + +CREATE VIEW view_select AS + SELECT `date`, + amount + FROM kafak_source + GROUP BY + `date`, + amount + ; + + +INSERT INTO mysql_sink + SELECT + `date`, + sum(amount) + FROM view_select + GROUP BY + `date` + ; +``` \ No newline at end of file From a2945840683b7fd89dbc704991d8195dd107cd2e Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Thu, 23 Aug 2018 14:48:43 +0800 Subject: [PATCH 11/31] =?UTF-8?q?=E5=B0=81=E8=A3=85Flink=20job=E7=9A=84api?= =?UTF-8?q?=E6=8F=90=E4=BE=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/common/job/FlinkJobException.java | 15 ++++++++++ .../java/pingle/wang/client/job/FlinkJob.java | 17 +++++++++++ .../pingle/wang/client/job/JobCompiler.java | 5 ++-- .../pingle/wang/client/job/JobDescriptor.java | 9 +++--- .../job/TableCatalogProviderRegistry.java | 30 +++++++++++++++++++ .../client/job/TableSinkProviderRegistry.java | 2 +- .../wang/client/table/FlinkTableCatalog.java | 25 ---------------- .../table/FlinkTableCatalogProvider.java | 13 +++----- 8 files changed, 74 insertions(+), 42 deletions(-) create mode 100644 blink-client/src/main/java/pingle/wang/client/common/job/FlinkJobException.java create mode 100644 blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java create mode 100644 blink-client/src/main/java/pingle/wang/client/job/TableCatalogProviderRegistry.java diff --git a/blink-client/src/main/java/pingle/wang/client/common/job/FlinkJobException.java b/blink-client/src/main/java/pingle/wang/client/common/job/FlinkJobException.java new file mode 100644 index 0000000..47b20b5 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/common/job/FlinkJobException.java @@ -0,0 +1,15 @@ +package pingle.wang.client.common.job; + +/** + * @Author: wpl + */ +public class FlinkJobException extends Exception { + + public FlinkJobException() { + super(); + } + + public FlinkJobException(String message) { + super(message); + } +} diff --git a/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java b/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java new file mode 100644 index 0000000..5b2004b --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java @@ -0,0 +1,17 @@ +package pingle.wang.client.job; + +import java.util.Map; + +/** + * @Author: wpl + */ +public interface FlinkJob { + + /** + * 封装的Flink job + * @param sqls sql内容 + * @param props 配置信息 + * @return + */ + CompilationResult getFlinkJob(String sqls,Map props) throws Exception; +} diff --git a/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java b/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java index 165a80e..98f057e 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java +++ b/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java @@ -137,8 +137,7 @@ JobGraph getJobGraph() throws IOException { } private JobCompiler registerOutputTableSink() { - Map flinkTableSinks = job.getFlinkTableSinks(); - Collection tableSinks = flinkTableSinks.values(); + List tableSinks = job.getFlinkTableSinks(); if (CollectionUtils.isNotEmpty(tableSinks)){ for (FlinkTableSink sink:tableSinks) { String typeName = sink.getTypeName(); @@ -165,7 +164,7 @@ private JobCompiler registerOutputTableSink() { sink.getTableName(), sink.getSchema().getColumnNames(), sink.getSchema().getTypes(), - getUpsertOutputTable(sink.getTableSink().getTable(sink.getTableName()))); + getBatchTableSink(sink.getTableSink().getTable(sink.getTableName()))); } } catch (IOException e) { diff --git a/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java b/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java index 12dcf48..2a538a9 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java +++ b/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java @@ -8,6 +8,7 @@ import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; /** @@ -17,7 +18,7 @@ public class JobDescriptor implements Serializable { private static final long serialVersionUID = -1; private Map userDefineFunctions; private Map flinkTableSources; - private Map flinkTableSinks; + private List flinkTableSinks; private int parallelism; private Map extraProps; private Map> sqls; @@ -25,7 +26,7 @@ public class JobDescriptor implements Serializable { public JobDescriptor() { } - public JobDescriptor(Map userDefineFunctions, Map flinkTableSources, Map flinkTableSinks, int parallelism, Map extraProps, Map> sqls) { + public JobDescriptor(Map userDefineFunctions, Map flinkTableSources, List flinkTableSinks, int parallelism, Map extraProps, Map> sqls) { this.userDefineFunctions = userDefineFunctions; this.flinkTableSources = flinkTableSources; this.flinkTableSinks = flinkTableSinks; @@ -50,11 +51,11 @@ public void setFlinkTableSources(Map flinkTableSources) { this.flinkTableSources = flinkTableSources; } - public Map getFlinkTableSinks() { + public List getFlinkTableSinks() { return flinkTableSinks; } - public void setFlinkTableSinks(Map flinkTableSinks) { + public void setFlinkTableSinks(List flinkTableSinks) { this.flinkTableSinks = flinkTableSinks; } diff --git a/blink-client/src/main/java/pingle/wang/client/job/TableCatalogProviderRegistry.java b/blink-client/src/main/java/pingle/wang/client/job/TableCatalogProviderRegistry.java new file mode 100644 index 0000000..1d34e75 --- /dev/null +++ b/blink-client/src/main/java/pingle/wang/client/job/TableCatalogProviderRegistry.java @@ -0,0 +1,30 @@ +package pingle.wang.client.job; + + +import pingle.wang.client.table.FlinkTableCatalogProvider; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.ServiceLoader; + +/** + * @Author: wpl + */ +public final class TableCatalogProviderRegistry { + private static final Map PROVIDERS; + + static { + HashMap providers = new HashMap<>(); + ServiceLoader loaders = + ServiceLoader.load(FlinkTableCatalogProvider.class); + loaders.forEach(x -> providers.put(x.getType(), x)); + PROVIDERS = Collections.unmodifiableMap(providers); + } + + private TableCatalogProviderRegistry() { + } + + public static FlinkTableCatalogProvider getProvider(String type) { + return PROVIDERS.get(type); + } +} diff --git a/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java b/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java index 830d810..e419aa4 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java +++ b/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java @@ -31,7 +31,7 @@ private TableSinkProviderRegistry() { * @param table * @return */ - static FlinkTableSinkProvider getProvider(ExternalCatalogTable table) { + public static FlinkTableSinkProvider getProvider(ExternalCatalogTable table) { DescriptorProperties properties = new DescriptorProperties(true); table.addProperties(properties); String connectorType = properties.getString(ConnectorDescriptorValidator.CONNECTOR_TYPE()); diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java index eada506..3bceb44 100644 --- a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalog.java @@ -13,29 +13,4 @@ * @Author: wpl */ public interface FlinkTableCatalog extends ExternalCatalog { - String getType(); - - /** - * 获取Append类型的sink - * @param table - * @return - * @throws IOException - */ - AppendStreamTableSink getAppendStreamTableSink(ExternalCatalogTable table) throws IOException; - - /** - * 获取Upsert类型的sink - * @param table - * @return - * @throws IOException - */ - UpsertStreamTableSink getUpsertStreamTableSink(ExternalCatalogTable table) throws IOException; - - /** - * 获取Batch类型的sink - * @param table - * @return - * @throws IOException - */ - BatchTableSink getBatchTableSink(ExternalCatalogTable table) throws IOException; } diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java index c5b0524..8de8edd 100644 --- a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java @@ -4,6 +4,7 @@ import org.apache.flink.table.sources.TableSource; import java.util.HashMap; +import java.util.Map; /** * @Author: wpl @@ -11,15 +12,9 @@ public interface FlinkTableCatalogProvider { String getType(); - FlinkTableCatalog getInputCatalog(HashMap props, TableSchema schema); + TableSource getInputTableSource(Map props, TableSchema schema); - /** - * @param props - * @param schema - * @return - */ - TableSource getInputTableSource(HashMap props, TableSchema schema); + FlinkTableCatalog getInputCatalog(Map props, TableSchema schema); - - FlinkTableCatalog getOutputCatalog(HashMap props,TableSchema schema); + FlinkTableCatalog getOutputCatalog(Map props, TableSchema schema); } From ad3128473237999b07dd262a3a69475d1d89c1c7 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 27 Aug 2018 16:39:37 +0800 Subject: [PATCH 12/31] =?UTF-8?q?Flink=20Job=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/pingle/wang/client/job/FlinkJob.java | 2 +- .../wang/flink/job/impl/FlinkJobImpl.java | 206 ++++++++++++++++++ .../wang/flink/job/sink/MysqlTableSink.java | 8 + .../flink/job/source/KafkaTableSource.java | 8 + .../sqlserver/flink/job/FlinkJobConstant.java | 8 + .../wang/sqlserver/sql/plan/Planner.java | 8 +- .../sqlserver/SqlConvertServiceTest.java | 3 + 7 files changed, 238 insertions(+), 5 deletions(-) create mode 100644 blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java create mode 100644 blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java create mode 100644 blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java create mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java diff --git a/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java b/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java index 5b2004b..fef1ee3 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java +++ b/blink-client/src/main/java/pingle/wang/client/job/FlinkJob.java @@ -13,5 +13,5 @@ public interface FlinkJob { * @param props 配置信息 * @return */ - CompilationResult getFlinkJob(String sqls,Map props) throws Exception; + CompilationResult getFlinkJob(String sqls,Map props) throws Throwable; } diff --git a/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java b/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java new file mode 100644 index 0000000..404a912 --- /dev/null +++ b/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java @@ -0,0 +1,206 @@ +package pingle.wang.flink.job.impl; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.table.api.TableSchema; +import org.apache.flink.table.sources.TableSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import pingle.wang.client.common.job.FlinkJobException; +import pingle.wang.client.common.sql.SqlConstant; +import pingle.wang.client.common.sql.SqlInputException; +import pingle.wang.client.common.sql.SqlParserResDescriptor; +import pingle.wang.client.job.*; +import pingle.wang.client.sqlserver.SqlConvertService; +import pingle.wang.client.sqlserver.SqlConvertServiceImpl; +import pingle.wang.client.table.FlinkTableCatalog; +import pingle.wang.client.table.FlinkTableSink; +import pingle.wang.client.table.FlinkTableCatalogProvider; +import pingle.wang.sqlserver.flink.job.FlinkJobConstant; +import pingle.wang.sqlserver.sql.plan.Planner; + +import java.util.*; + +import static pingle.wang.client.common.sql.SqlConstant.INDEXE; + +/** + * @Author: wpl + */ +public class FlinkJobImpl implements FlinkJob { + private static final Logger logger = LoggerFactory.getLogger(FlinkJobImpl.class); + + private Map sources = new LinkedHashMap<>(); + private List flinkTableSinks = new LinkedList<>(); + private Map> sqls = new LinkedHashMap<>(); + + private Map> userSqls; + private Map sqlInfoMap; + private Map> funMap; + + private SqlConvertService sqlConvertService = new SqlConvertServiceImpl(); + + @Override + public CompilationResult getFlinkJob(String sqlContext, Map jobProps) throws Throwable { + + if (StringUtils.isBlank(sqlContext)){ + logger.warn("sql is null"); + throw new SqlInputException("sql not null "); + } + + //source和sink + this.getUserSqls(sqlContext) + .getSqlInfoMap(sqlContext) + .getTableSources(sqlContext) + .getTableSinks(sqlContext) + .getFunctionSqls() + .getExecuteSqls(); + + + CompilationResult result = null; + Planner planner = new Planner(null, sources, flinkTableSinks, jobProps); + + if (jobProps.containsKey(FlinkJobConstant.PARALLELISM)){ + result = planner.sqlPlanner(funMap, + sqls, + Integer.valueOf(jobProps.getOrDefault(FlinkJobConstant.PARALLELISM, "2"))); + }else { + result = planner.sqlPlanner(funMap, + sqls, + Runtime.getRuntime().availableProcessors()); + } + + return result; + } + + private FlinkJobImpl getFunctionSqls(){ + funMap = new LinkedHashMap<>(); + List funtionSqls = userSqls.get(SqlConstant.FUNCTION); + if (CollectionUtils.isNotEmpty(funtionSqls)){ + funMap.put(SqlConstant.FUNCTION,funtionSqls); + } + return this; + } + + private FlinkJobImpl getExecuteSqls() throws Exception { + //视图sql + LinkedHashMap viewMap = new LinkedHashMap<>(); + List viewSqls = userSqls.get(SqlConstant.VIEW); + if (CollectionUtils.isNotEmpty(viewSqls)){ + for (String sql : viewSqls){ + SqlParserResDescriptor viewInfo = sqlConvertService.sqlViewParser(sql); + String tableName = viewInfo.getTableName(); + String selectBody = viewInfo.getSqlInfo(); + viewMap.put(tableName,selectBody); + } + sqls.put(SqlConstant.VIEW,viewMap); + } + + //insert into + LinkedHashMap queryMap = new LinkedHashMap<>(); + List querys = userSqls.get(SqlConstant.INSERT_INTO); + if (CollectionUtils.isNotEmpty(querys)){ + for (String sql : querys){ + SqlParserResDescriptor viewInfo = sqlConvertService.sqlInsertInotParser(sql); + String tableName = viewInfo.getTableName(); + String selectBody = viewInfo.getSqlInfo(); + queryMap.put(tableName,selectBody); + } + sqls.put(SqlConstant.INSERT_INTO,queryMap); + } + + return this; + } + + + + private FlinkJobImpl getTableSources(String sqlContext) throws Exception{ + sqlInfoMap = sqlConvertService.getCreateSourceSqlInfo(sqlContext); + + if (null == sqlInfoMap){ + logger.warn("source is null"); + throw new FlinkJobException("source is null,must not null "); + } + + Set sourceNames = sqlInfoMap.keySet(); + for (String name : sourceNames) { + String ddlSql = sqlInfoMap.get(name); + SqlParserResDescriptor sqlDdlParser = sqlConvertService.sqlDdlParser(ddlSql); + + String sourceType = sqlDdlParser.getSourceType(); + FlinkTableCatalogProvider sourceProvider = TableCatalogProviderRegistry.getProvider(sourceType); + + Map> schemas = sqlDdlParser.getSchemas(); + TableSchema inputSchema = new TableSchema( + schemas.keySet().toArray(new String[schemas.size()]), + schemas.values().toArray(new TypeInformation[schemas.size()]) + ); + + //job的参数信息内容 + Map parms = sqlDdlParser.getParms(); + //TODO: source创建需要的配置信息,如kafka的topic等信息 + + TableSource tableSource = sourceProvider.getInputTableSource(parms, inputSchema); + + String tableName = sqlDdlParser.getTableName(); + sources.put(tableName,tableSource); + } + + return this; + } + + private FlinkJobImpl getTableSinks(String sqlContext) throws Exception{ + sqlInfoMap = sqlConvertService.getCreateSinkSqlInfo(sqlContext); + + if (null == sqlInfoMap){ + logger.warn("sink is null"); + throw new FlinkJobException("sink is null,must not null "); + } + + Set sinkNames = sqlInfoMap.keySet(); + for (String name : sinkNames) { + String ddlSql = sqlInfoMap.get(name); + SqlParserResDescriptor sqlDdlParser = sqlConvertService.sqlDdlParser(ddlSql); + + String sinkType = sqlDdlParser.getSourceType(); + FlinkTableCatalogProvider sinkProvider = TableCatalogProviderRegistry.getProvider(sinkType); + + + Map> schemas = sqlDdlParser.getSchemas(); + TableSchema outputSchema = new TableSchema( + schemas.keySet().toArray(new String[schemas.size()]), + schemas.values().toArray(new TypeInformation[schemas.size()]) + ); + + //TODO: sink创建需要的配置信息,如mysql的服务器,用户名和密码等 + Map parms = sqlDdlParser.getParms(); + + FlinkTableCatalog tableSink = sinkProvider.getOutputCatalog(parms, outputSchema); + + String tableName = sqlDdlParser.getTableName(); + + String typeName = null; + if (parms.containsKey(INDEXE)){ + typeName= TableSinkType.UPSERT.name(); + } + + FlinkTableSink sink = new FlinkTableSink(outputSchema, tableName, tableSink, sinkType, typeName); + flinkTableSinks.add(sink); + } + + return this; + } + + + private FlinkJobImpl getUserSqls(String sqlContext) throws Exception { + userSqls = sqlConvertService.transfromSqlClassify(sqlContext); + return this; + } + + private FlinkJobImpl getSqlInfoMap(String sqlContext) throws Exception { + sqlInfoMap = sqlConvertService.getCreateSinkSqlInfo(sqlContext); + return this; + } + + +} diff --git a/blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java b/blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java new file mode 100644 index 0000000..3403623 --- /dev/null +++ b/blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java @@ -0,0 +1,8 @@ +package pingle.wang.flink.job.pingle.wang.flink.job.sink; + +/** + * @Author: wpl + * @Date: 2018/8/23 + */ +public class MysqlTableSink { +} diff --git a/blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java b/blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java new file mode 100644 index 0000000..8bb88bb --- /dev/null +++ b/blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java @@ -0,0 +1,8 @@ +package pingle.wang.flink.job.source; + +/** + * @Author: wpl + * @Date: 2018/8/23 + */ +public class KafkaTableSource { +} diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java new file mode 100644 index 0000000..71d620e --- /dev/null +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java @@ -0,0 +1,8 @@ +package pingle.wang.sqlserver.flink.job; + +/** + * @Author: wpl + */ +public interface FlinkJobConstant { + String PARALLELISM = "flink.parallelism"; +} diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java index 4053c73..ca1fc3e 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java @@ -24,16 +24,16 @@ public class Planner { private Map inputs; private Map tableSourceMap; private List flinkTableSinks; - private Map extraProps; + private Map jobProps; public Planner() { } - public Planner(Map inputs, Map tableSourceMap, List flinkTableSinks, Map extraProps) { + public Planner(Map inputs, Map tableSourceMap, List flinkTableSinks, Map jobProps) { this.inputs = inputs; this.tableSourceMap = tableSourceMap; this.flinkTableSinks = flinkTableSinks; - this.extraProps = extraProps; + this.jobProps = jobProps; } public CompilationResult sqlPlanner(Map> funMap,Map> sqls, int parallelism) throws Throwable { @@ -74,7 +74,7 @@ public CompilationResult sqlPlanner(Map> funMap,Map sourceSqlInfo = sqlConvertService.getCreateSourceSqlInfo(sqlContext); + System.out.println(sourceSqlInfo); Assert.assertEquals(sourceSqlInfo.size(),1); } @@ -95,6 +96,8 @@ public void init(){ udf,source,sink,view, result ); + System.out.println(sqlContext); + sqlConvertService = new SqlConvertServiceImpl(); } } From 91212128986cbc30214ea00b7316ace646cdec10 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 27 Aug 2018 16:41:34 +0800 Subject: [PATCH 13/31] modify --- blink-job/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/blink-job/pom.xml b/blink-job/pom.xml index afbed72..cb1bbfe 100644 --- a/blink-job/pom.xml +++ b/blink-job/pom.xml @@ -130,6 +130,12 @@ flink-json ${flink.version} + + pingle.wang + blink-sqlserver + 0.0.1-SNAPSHOT + compile + From 7cc02f44e9251dfb6db45e113426478296787a98 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 11:17:52 +0800 Subject: [PATCH 14/31] source provide modify --- .../pingle/wang/client/table/FlinkTableCatalogProvider.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java index 8de8edd..a53d951 100644 --- a/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java +++ b/blink-client/src/main/java/pingle/wang/client/table/FlinkTableCatalogProvider.java @@ -3,7 +3,6 @@ import org.apache.flink.table.api.TableSchema; import org.apache.flink.table.sources.TableSource; -import java.util.HashMap; import java.util.Map; /** @@ -14,7 +13,5 @@ public interface FlinkTableCatalogProvider { TableSource getInputTableSource(Map props, TableSchema schema); - FlinkTableCatalog getInputCatalog(Map props, TableSchema schema); - FlinkTableCatalog getOutputCatalog(Map props, TableSchema schema); } From be41cd5ae95b54fbc04fe58857df9a56fc8fbb70 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 11:18:12 +0800 Subject: [PATCH 15/31] sink provide modify --- .../pingle/wang/client/job/TableSinkProviderRegistry.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java b/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java index e419aa4..31587ee 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java +++ b/blink-client/src/main/java/pingle/wang/client/job/TableSinkProviderRegistry.java @@ -26,15 +26,11 @@ public final class TableSinkProviderRegistry { private TableSinkProviderRegistry() { } - /** - * - * @param table - * @return - */ public static FlinkTableSinkProvider getProvider(ExternalCatalogTable table) { DescriptorProperties properties = new DescriptorProperties(true); table.addProperties(properties); String connectorType = properties.getString(ConnectorDescriptorValidator.CONNECTOR_TYPE()); return PROVIDERS.get(connectorType); } + } From 51e1bcd1f08775129ecca452b9b82ec876a2ab5a Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 11:35:23 +0800 Subject: [PATCH 16/31] flink job upgrade --- .../wang/flink/job/impl/FlinkJobImpl.java | 38 +++++++- .../wang/flink/job/sink/MysqlTableSink.java | 8 -- .../flink/job/source/KafkaTableSource.java | 8 -- .../pingle/wang/flink/job/FlinkJobTest.java | 94 +++++++++++++++++++ 4 files changed, 127 insertions(+), 21 deletions(-) delete mode 100644 blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java delete mode 100644 blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java create mode 100644 blink-job/src/test/java/pingle/wang/flink/job/FlinkJobTest.java diff --git a/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java b/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java index 404a912..cda63a0 100644 --- a/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java +++ b/blink-job/src/main/java/pingle/wang/flink/job/impl/FlinkJobImpl.java @@ -23,6 +23,7 @@ import java.util.*; import static pingle.wang.client.common.sql.SqlConstant.INDEXE; +import static pingle.wang.sqlserver.flink.job.FlinkJobConstant.JOB_FLAG; /** * @Author: wpl @@ -38,6 +39,8 @@ public class FlinkJobImpl implements FlinkJob { private Map sqlInfoMap; private Map> funMap; + private Map jobCommonProps = new HashMap<>(); + private SqlConvertService sqlConvertService = new SqlConvertServiceImpl(); @Override @@ -56,20 +59,31 @@ public CompilationResult getFlinkJob(String sqlContext, Map jobP .getFunctionSqls() .getExecuteSqls(); + if (null != jobProps){ + jobCommonProps.putAll(jobProps); + } + CompilationResult result = null; - Planner planner = new Planner(null, sources, flinkTableSinks, jobProps); + Planner planner = new Planner(sources, flinkTableSinks, jobCommonProps); - if (jobProps.containsKey(FlinkJobConstant.PARALLELISM)){ + if (jobCommonProps.containsKey(FlinkJobConstant.PARALLELISM)){ result = planner.sqlPlanner(funMap, sqls, - Integer.valueOf(jobProps.getOrDefault(FlinkJobConstant.PARALLELISM, "2"))); + Integer.valueOf(jobCommonProps.getOrDefault(FlinkJobConstant.PARALLELISM, "2"))); }else { result = planner.sqlPlanner(funMap, sqls, Runtime.getRuntime().availableProcessors()); } + //设置flink的任务信息 + result.setName("Flink Job"); + result.setMemorysize(1024); + result.setNumSlots(2); + result.setNumContainers(3); + result.setQueue("default"); + return result; } @@ -138,8 +152,15 @@ private FlinkJobImpl getTableSources(String sqlContext) throws Exception{ //job的参数信息内容 Map parms = sqlDdlParser.getParms(); - //TODO: source创建需要的配置信息,如kafka的topic等信息 + Set keySet = parms.keySet(); + //1.flink开头的配置信息 + for (String key : keySet) { + if (key.startsWith(JOB_FLAG)){ + jobCommonProps.put(key,parms.get(key)); + } + } + //TODO: 2source创建需要的配置信息,如kafka的topic等信息,目前先不管,直接传递下去 TableSource tableSource = sourceProvider.getInputTableSource(parms, inputSchema); String tableName = sqlDdlParser.getTableName(); @@ -172,9 +193,16 @@ private FlinkJobImpl getTableSinks(String sqlContext) throws Exception{ schemas.values().toArray(new TypeInformation[schemas.size()]) ); - //TODO: sink创建需要的配置信息,如mysql的服务器,用户名和密码等 Map parms = sqlDdlParser.getParms(); + Set keySet = parms.keySet(); + //1.flink开头的配置信息 + for (String key : keySet) { + if (key.startsWith(JOB_FLAG)){ + jobCommonProps.put(key,parms.get(key)); + } + } + //TODO: 2.sink创建需要的配置信息,如mysql的服务器,用户名和密码等,先不处理,传递下去 FlinkTableCatalog tableSink = sinkProvider.getOutputCatalog(parms, outputSchema); String tableName = sqlDdlParser.getTableName(); diff --git a/blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java b/blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java deleted file mode 100644 index 3403623..0000000 --- a/blink-job/src/main/java/pingle/wang/flink/job/pingle/wang/flink/job/sink/MysqlTableSink.java +++ /dev/null @@ -1,8 +0,0 @@ -package pingle.wang.flink.job.pingle.wang.flink.job.sink; - -/** - * @Author: wpl - * @Date: 2018/8/23 - */ -public class MysqlTableSink { -} diff --git a/blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java b/blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java deleted file mode 100644 index 8bb88bb..0000000 --- a/blink-job/src/main/java/pingle/wang/flink/job/source/KafkaTableSource.java +++ /dev/null @@ -1,8 +0,0 @@ -package pingle.wang.flink.job.source; - -/** - * @Author: wpl - * @Date: 2018/8/23 - */ -public class KafkaTableSource { -} diff --git a/blink-job/src/test/java/pingle/wang/flink/job/FlinkJobTest.java b/blink-job/src/test/java/pingle/wang/flink/job/FlinkJobTest.java new file mode 100644 index 0000000..dcb96b7 --- /dev/null +++ b/blink-job/src/test/java/pingle/wang/flink/job/FlinkJobTest.java @@ -0,0 +1,94 @@ +package pingle.wang.flink.job; + +import com.google.common.base.Joiner; +import org.apache.flink.runtime.jobgraph.JobGraph; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import pingle.wang.client.job.CompilationResult; +import pingle.wang.client.job.FlinkJob; +import pingle.wang.flink.job.impl.FlinkJobImpl; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: wpl + */ +public class FlinkJobTest { + private String sqlContext; + private FlinkJob flinkJob; + + @Test + public void testGetFlinkJob() throws Throwable { + Map map = new HashMap<>(); + CompilationResult flinkJob = this.flinkJob.getFlinkJob(sqlContext, map); + JobGraph jobGraph = flinkJob.getJobGraph(); + Assert.assertNotNull(jobGraph); + } + + + @Before + public void init(){ + String udf = "CREATE FUNCTION " + + "demouf " + + "AS " + + "'pingle.wang.api.sql.function.DemoUDF' " + + "USING " + + "JAR 'hdfs://flink/udf/jedis.jar'," + + "JAR 'hdfs://flink/udf/customudf.jar';"; + + String source = "CREATE TABLE kafak_source (" + + "`date` string, " + + "amount float, " + + "proctime timestamp) " + + "with (" + + "type=kafka," + + "'flink.parallelism'=1," + + "'kafka.topic'=topic," + + "'kafka.group.id'=flinks," + + "'kafka.enable.auto.commit'=true," + + "'kafka.bootstrap.servers'='localhost:9092'" + + ");"; + + String sink = "CREATE TABLE mysql_sink (" + + "`date` string, " + + "amount float, " + + "PRIMARY KEY (`date`,amount)) " + + "with (" + + "type=mysql," + + "'mysql.connection'='localhost:3306'," + + "'mysql.db.name'=flink," + + "'mysql.batch.size'=0," + + "'mysql.table.name'=flink_table," + + "'mysql.user'=root," + + "'mysql.pass'=root" + + ");"; + + String view = "create view view_select as " + + "SELECT " + + "`date`, " + + "amount " + + "FROM " + + "kafak_source " + + "group by `date`,amount;"; + + + String result = "insert " + + "into mysql_sink " + + "SELECT " + + "`date`, " + + "sum(amount) " + + "FROM " + + "view_select " + + "group by `date`;"; + + sqlContext = + Joiner.on("").join( + source,sink,view, result + ); + + System.out.println(sqlContext); + flinkJob = new FlinkJobImpl(); + } +} From 3cc11b8f6fe8e13724bb52cf9287127a330362a1 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 11:37:40 +0800 Subject: [PATCH 17/31] =?UTF-8?q?sql=E9=AA=8C=E8=AF=81=EF=BC=8C=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E5=92=8C=E6=8E=A5=E5=8F=A3=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wang/client/sqlserver/SqlConvertServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java index 3b1a923..5edb77c 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java +++ b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java @@ -33,6 +33,7 @@ public class SqlConvertServiceImpl implements SqlConvertService { private static final Logger logger = LoggerFactory.getLogger(SqlConvertServiceImpl.class); + private final String type ="type"; private final String flag = "="; public SqlConvertServiceImpl() { @@ -141,11 +142,11 @@ public SqlParserResDescriptor sqlDdlParser(String ddlSql) throws Exception { if (CollectionUtils.isNotEmpty(optionsStrings)){ String options = optionsStrings.get(1); if (StringUtils.isNotBlank(options)){ - String[] values = options.trim().substring(1, options.length() - 1).split(","); + String[] values = options.substring(1, options.length() - 1).split(","); for (String value : values) { if (value.contains(flag)){ String[] keyValue = value.split(flag); - parms.put(keyValue[0],keyValue[1]); + parms.put(keyValue[0].replaceAll("'","").trim(),keyValue[1].replaceAll("'","").trim()); } } } @@ -157,6 +158,9 @@ public SqlParserResDescriptor sqlDdlParser(String ddlSql) throws Exception { sqlParserResDescriptor.setSchemas(schemas); sqlParserResDescriptor.setParms(parms); + if (parms.containsKey(type)){ + sqlParserResDescriptor.setSourceType(parms.get(type)); + } return sqlParserResDescriptor; } From f1ec2da68a354615dbca70c03cc01765fcac04b1 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 11:38:27 +0800 Subject: [PATCH 18/31] =?UTF-8?q?sql=E9=AA=8C=E8=AF=81=EF=BC=8C=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E5=92=8C=E6=8E=A5=E5=8F=A3=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqlserver/flink/job/FlinkJobConstant.java | 2 ++ .../wang/sqlserver/sql/plan/Planner.java | 10 ++------ .../wang/sqlserver/sql/plan/Validator.java | 23 +++++++------------ 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java index 71d620e..a6e9a1f 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java @@ -4,5 +4,7 @@ * @Author: wpl */ public interface FlinkJobConstant { + String JOB_FLAG = "flink."; + String PARALLELISM = "flink.parallelism"; } diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java index ca1fc3e..263ce6c 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java @@ -8,7 +8,6 @@ import pingle.wang.client.job.CompilationResult; import pingle.wang.client.job.JobCompiler; import pingle.wang.client.job.JobDescriptor; -import pingle.wang.client.table.FlinkTableCatalog; import pingle.wang.client.table.FlinkTableSink; import pingle.wang.sqlserver.sql.parser.impl.SqlParserImpl; @@ -21,16 +20,11 @@ public class Planner { private static final int DEFAULT_IDENTIFIER_MAX_LENGTH = 128; - private Map inputs; private Map tableSourceMap; private List flinkTableSinks; private Map jobProps; - public Planner() { - } - - public Planner(Map inputs, Map tableSourceMap, List flinkTableSinks, Map jobProps) { - this.inputs = inputs; + public Planner( Map tableSourceMap, List flinkTableSinks, Map jobProps) { this.tableSourceMap = tableSourceMap; this.flinkTableSinks = flinkTableSinks; this.jobProps = jobProps; @@ -55,7 +49,7 @@ public CompilationResult sqlPlanner(Map> funMap,Map views =viewMap.values(); for (String sql:views) { SqlNodeList stmts = parse(sql); - validator.validateQuery(stmts); + validator.validateViewQuery(stmts); } } diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java index 9a7ac12..5bf0e80 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Validator.java @@ -38,9 +38,9 @@ public Map userDefinedFunctions() { return userDefinedFunctions; } - public void validateQuery(SqlNodeList query) { + public void validateViewQuery(SqlNodeList query) { extract(query); - validateExactlyOnceSelect(query); + validateExactlyOnceViewSelect(query); } public void validateDml(SqlNodeList query) { @@ -92,22 +92,15 @@ public void extract(SqlSetOption node) { } @VisibleForTesting - void validateExactlyOnceSelect(SqlNodeList query) { + void validateExactlyOnceViewSelect(SqlNodeList query) { Preconditions.checkArgument(query.size() > 0); + SqlNode last = query.get(query.size() - 1); long n = StreamSupport.stream(query.spliterator(), false) - .filter(x -> x instanceof SqlInsert) + .filter(x -> x instanceof SqlSelect) .count(); - System.out.println(n); - Stream nodeStream = StreamSupport.stream(query.spliterator(), false) - .filter(x -> x instanceof SqlSelect); - Iterator iterator = nodeStream.iterator(); - for (Iterator it = iterator; it.hasNext(); ) { - SqlSelect node = (SqlSelect) it.next(); - sqlQuery = node; - } - Preconditions.checkArgument(n == 1 && sqlQuery instanceof SqlSelect, - "Only one top-level Insert statement is allowed"); - + Preconditions.checkArgument(n == 1 && last instanceof SqlSelect, + "Only one top-level SELECT statement is allowed"); + sqlQuery = (SqlSelect) last; } @VisibleForTesting From 75bc03551bfc6be12e2b8c64aa41e17da8bc5e91 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 11:40:10 +0800 Subject: [PATCH 19/31] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=92=8C=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 15dfd5a..8a5e016 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,13 @@ 1.SqlConvertService是将用户sql语句解析为不同类型,source,sink,view,dml(目前只支持insert into) + SqlParserImpl SQL的解析 + Validator 验证器 + Planner 计划解析 + 2.FlinkJobImpl是实现Flink的Source和Sink,以及JobGraph - 2.ddl类型的sql语句,实现Flink的Source和Sink; - - + 3.JobGraph的提交和执行,如StandaloneClusterClient.submitJob或者YarnClusterClient.runDetached 三.代码关注 apache Flink sql @@ -56,8 +58,8 @@ CREATE TABLE kafak_source ( with ( type=kafka, 'flink.parallelism'=1, - 'kafka.topic'='topic', - 'kafka.group.id'='flinks', + 'kafka.topic'=topic, + 'kafka.group.id'=flinks, 'kafka.enable.auto.commit'=true, 'kafka.bootstrap.servers'='localhost:9092' ); From e545fcbfe1f386f60d393340e2c4674f00618c9e Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 12:02:45 +0800 Subject: [PATCH 20/31] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=92=8C=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a5e016..7958920 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,9 @@ 2.FlinkJobImpl是实现Flink的Source和Sink,以及JobGraph - 3.JobGraph的提交和执行,如StandaloneClusterClient.submitJob或者YarnClusterClient.runDetached + 3.JobGraph的提交和执行,如StandaloneClusterClient.submitJob或者YarnClusterClient.runDetached + + 三.代码关注 apache Flink sql From 48ed49c6115bbd7334f9724abd9376f207347dd2 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 12:05:29 +0800 Subject: [PATCH 21/31] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=92=8C=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7958920..2de4eb1 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,16 @@ 用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和source - -> dml的insert into对应将对应数据加载到 sink + -> dml的insert into对应将对应数据加载到 sink - -> query数据处理和计算 + -> query数据处理和计算 --> 封装为api对应Flink的Job:env.sqlQuery/env.sqlUpdate;table.writeToSink; - --> Job提交执行 streamGraph.getJobGraph(); + --> JobGraph和对应job提交; 二.开发过程 From 2ba098f8329e070a7b385f423b80e5bdea9b01e0 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 12:05:58 +0800 Subject: [PATCH 22/31] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=92=8C=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2de4eb1..4ef9466 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ 2.目前实现思路: - 用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和source + 用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和source -> dml的insert into对应将对应数据加载到 sink From c28b3fe7dfa6161fb1f466145e41cf07572a4380 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 12:07:10 +0800 Subject: [PATCH 23/31] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=92=8C=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4ef9466..d01d09d 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,13 @@ 二.开发过程 - 1.SqlConvertService是将用户sql语句解析为不同类型,source,sink,view,dml(目前只支持insert into) - SqlParserImpl SQL的解析 - Validator 验证器 - Planner 计划解析 + 1.SqlConvertService是将用户sql语句解析为不同类型,source,sink,view,dml(目前只支持insert into) + + SqlParserImpl SQL的解析 + + Validator 验证器 + + Planner 计划解析 2.FlinkJobImpl是实现Flink的Source和Sink,以及JobGraph From 096856a8151da91bdfd5510608eef8d0709bedcb Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 3 Sep 2018 12:37:05 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=92=8C=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d01d09d..61d17e2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ 2.目前实现思路: - 用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和source + 用户输入sql(ddl,dml,query) -> ddl对应为Flink的source和sink -> dml的insert into对应将对应数据加载到 sink From 91da560dbba7e15848dab7c63b9a847fac169e04 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 4 Sep 2018 14:11:58 +0800 Subject: [PATCH 25/31] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/pingle/wang/client/job/JobCompiler.java | 6 +++--- .../main/java/pingle/wang/client/job/JobDescriptor.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java b/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java index 98f057e..f6a9875 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java +++ b/blink-client/src/main/java/pingle/wang/client/job/JobCompiler.java @@ -107,12 +107,12 @@ JobGraph getJobGraph() throws IOException { //3.sql操作 - Map> sqls = job.getSqls(); + Map> sqls = job.getSqls(); //3.1含有view的操作 if (sqls.containsKey(SqlConstant.VIEW)){ //视图名,对应查询 - LinkedHashMap viewMap = sqls.get(SqlConstant.VIEW); + Map viewMap = sqls.get(SqlConstant.VIEW); Set viewNames = viewMap.keySet(); for (String name:viewNames) { String sql = viewMap.get(name); @@ -124,7 +124,7 @@ JobGraph getJobGraph() throws IOException { //3.2 insert inot操作 if (sqls.containsKey(SqlConstant.INSERT_INTO)){ - LinkedHashMap updateMap = sqls.get(SqlConstant.INSERT_INTO); + Map updateMap = sqls.get(SqlConstant.INSERT_INTO); Collection values = updateMap.values(); for (String sql:values){ logger.info("sql insert into is -----> "+sql); diff --git a/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java b/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java index 2a538a9..6ae38cf 100644 --- a/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java +++ b/blink-client/src/main/java/pingle/wang/client/job/JobDescriptor.java @@ -21,12 +21,12 @@ public class JobDescriptor implements Serializable { private List flinkTableSinks; private int parallelism; private Map extraProps; - private Map> sqls; + private Map> sqls; public JobDescriptor() { } - public JobDescriptor(Map userDefineFunctions, Map flinkTableSources, List flinkTableSinks, int parallelism, Map extraProps, Map> sqls) { + public JobDescriptor(Map userDefineFunctions, Map flinkTableSources, List flinkTableSinks, int parallelism, Map extraProps, Map> sqls) { this.userDefineFunctions = userDefineFunctions; this.flinkTableSources = flinkTableSources; this.flinkTableSinks = flinkTableSinks; @@ -75,11 +75,11 @@ public void setExtraProps(Map extraProps) { this.extraProps = extraProps; } - public Map> getSqls() { + public Map> getSqls() { return sqls; } - public void setSqls(Map> sqls) { + public void setSqls(Map> sqls) { this.sqls = sqls; } From 0a9fcd3ca6cf908ee09db37cd338c4de5c90d84b Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 4 Sep 2018 14:12:19 +0800 Subject: [PATCH 26/31] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java index 5edb77c..8de01c4 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java +++ b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java @@ -158,6 +158,7 @@ public SqlParserResDescriptor sqlDdlParser(String ddlSql) throws Exception { sqlParserResDescriptor.setSchemas(schemas); sqlParserResDescriptor.setParms(parms); + if (parms.containsKey(type)){ sqlParserResDescriptor.setSourceType(parms.get(type)); } From 75b5cde8b9edbfdefdd42dbbf3cc785549b017a4 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Tue, 4 Sep 2018 14:13:27 +0800 Subject: [PATCH 27/31] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqlserver/flink/job/FlinkJobConstant.java | 1 + .../flink/job/JobCompilationResult.java | 30 ------------------- 2 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java index a6e9a1f..9d77df1 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java @@ -6,5 +6,6 @@ public interface FlinkJobConstant { String JOB_FLAG = "flink."; + String PARALLELISM = "flink.parallelism"; } diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java deleted file mode 100644 index 218ab4c..0000000 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/JobCompilationResult.java +++ /dev/null @@ -1,30 +0,0 @@ -package pingle.wang.sqlserver.flink.job; - -import org.apache.flink.runtime.jobgraph.JobGraph; -import org.apache.hadoop.fs.Path; - -import java.util.List; - -/** - * @Author: wpl - */ -public class JobCompilationResult { - private JobGraph jobGraph; - private List additionalJars; - - public JobCompilationResult() { - } - - JobCompilationResult(JobGraph jobGraph, List additionalJars) { - this.jobGraph = jobGraph; - this.additionalJars = additionalJars; - } - - public JobGraph jobGraph() { - return jobGraph; - } - - public List additionalJars() { - return additionalJars; - } -} From 7b0035ede826b5d80484b2067234b566b108052e Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Mon, 10 Sep 2018 15:19:32 +0800 Subject: [PATCH 28/31] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pingle/wang/client/sqlserver/SqlConvertServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java index 8de01c4..08c932c 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java +++ b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java @@ -119,7 +119,7 @@ public SqlParserResDescriptor sqlDdlParser(String ddlSql) throws Exception { for (ColumnDefinition colInfo : columnDefinitionList) { String columnName = colInfo.getColumnName(); ColDataType colDataType = colInfo.getColDataType(); - String dataType = colDataType.getDataType().trim().toLowerCase(); + String dataType = colDataType.toString().trim().toLowerCase(); schemas.put(columnName.trim().replace("`",""),getColumnType(dataType)); } } From 21c76f524066858964b6986d5553c19b91a27816 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Wed, 26 Sep 2018 19:46:48 +0800 Subject: [PATCH 29/31] =?UTF-8?q?view=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sqlserver/SqlConvertServiceImpl.java | 85 +++++++++++++++---- .../sqlserver/flink/job/FlinkJobConstant.java | 1 - .../wang/sqlserver/sql/plan/Planner.java | 6 +- 3 files changed, 71 insertions(+), 21 deletions(-) diff --git a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java index 08c932c..4a280ef 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java +++ b/blink-sqlserver/src/main/java/pingle/wang/client/sqlserver/SqlConvertServiceImpl.java @@ -3,14 +3,16 @@ import com.google.common.base.Joiner; import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.parser.CCJSqlParserManager; -import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.create.table.ColDataType; import net.sf.jsqlparser.statement.create.table.ColumnDefinition; import net.sf.jsqlparser.statement.create.table.CreateTable; import net.sf.jsqlparser.statement.create.table.Index; -import net.sf.jsqlparser.statement.create.view.CreateView; -import net.sf.jsqlparser.statement.insert.Insert; +import org.apache.calcite.config.Lex; +import org.apache.calcite.sql.SqlInsert; +import org.apache.calcite.sql.SqlNode; +import org.apache.calcite.sql.ddl.SqlCreateView; +import org.apache.calcite.sql.parser.ddl.SqlDdlParserImpl; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.flink.api.common.typeinfo.BasicTypeInfo; @@ -21,9 +23,13 @@ import pingle.wang.client.common.sql.SqlInputException; import pingle.wang.client.common.sql.SqlParserResDescriptor; +import java.io.ByteArrayInputStream; +import java.io.InputStream; import java.io.StringReader; +import java.lang.reflect.Field; import java.util.*; +import static org.apache.calcite.sql.parser.SqlParser.DEFAULT_IDENTIFIER_MAX_LENGTH; import static pingle.wang.client.common.sql.SqlConstant.*; @@ -172,12 +178,18 @@ public SqlParserResDescriptor sqlViewParser(String viewSql) throws Exception { throw new SqlInputException("sql not null "); } SqlParserResDescriptor sqlParserResDescriptor = new SqlParserResDescriptor(); - Statement stmt = getSqlStatement(viewSql); - if (stmt instanceof CreateView) { - CreateView view = (CreateView) stmt; - Table table = view.getView(); - sqlParserResDescriptor.setTableName(table.getName()); - sqlParserResDescriptor.setSqlInfo(view.getSelectBody().toString()); + + SqlNode sqlNode = parseDdl(viewSql); + if (sqlNode instanceof SqlCreateView){ + SqlCreateView node = (SqlCreateView) sqlNode; + + Field fieldName = node.getClass().getDeclaredField("name"); + fieldName.setAccessible(true); + sqlParserResDescriptor.setTableName(fieldName.get(node).toString()); + + Field fieldQuery = node.getClass().getDeclaredField("query"); + fieldQuery.setAccessible(true); + sqlParserResDescriptor.setSqlInfo(fieldQuery.get(node).toString()); } return sqlParserResDescriptor; @@ -190,12 +202,12 @@ public SqlParserResDescriptor sqlInsertInotParser(String insertSql) throws Excep } SqlParserResDescriptor sqlParserResDescriptor = new SqlParserResDescriptor(); - Statement stmt = getSqlStatement(insertSql); - if (stmt instanceof Insert) { - Insert insert = (Insert) stmt; - Table table = insert.getTable(); - sqlParserResDescriptor.setTableName(table.getName()); - sqlParserResDescriptor.setSqlInfo(insert.toString()); + + SqlNode sqlNode = parseQueryOrDml(insertSql); + if (sqlNode instanceof SqlInsert){ + SqlInsert node = (SqlInsert) sqlNode; + sqlParserResDescriptor.setTableName(node.getTargetTable().toString()); + sqlParserResDescriptor.setSqlInfo(node.toString()); } return sqlParserResDescriptor; @@ -327,8 +339,6 @@ private List splitSemiColon(String sqlContext) { return ret; } - - private Statement getSqlStatement(String sql){ CCJSqlParserManager parser = new CCJSqlParserManager(); try { @@ -339,6 +349,47 @@ private Statement getSqlStatement(String sql){ return null; } + /** + * 解析ddl中的sql语法 + * @param sql + * @return + * @throws Exception + */ + public SqlNode parseDdl(String sql) throws Exception { + // Keep the SQL syntax consistent with Flink + + sql = sql.replaceAll("\n",""); + + InputStream stream = new ByteArrayInputStream(sql.getBytes()); + SqlDdlParserImpl impl = getSqlDdlParserImpl(stream); + return impl.parseSqlStmtEof(); + } + + /** + * 解析dml中的sql语法 + * @param sql + * @return + * @throws Exception + */ + public SqlNode parseQueryOrDml(String sql) throws Exception { + sql = sql.replaceAll("\n",""); + InputStream stream = new ByteArrayInputStream(sql.getBytes()); + SqlDdlParserImpl impl = getSqlDdlParserImpl(stream); + return impl.SqlQueryOrDml(); + } + + private SqlDdlParserImpl getSqlDdlParserImpl(InputStream stream){ + SqlDdlParserImpl impl = new SqlDdlParserImpl(stream); + impl.switchTo("BTID"); + impl.setTabSize(1); + impl.setQuotedCasing(Lex.JAVA.quotedCasing); + impl.setUnquotedCasing(Lex.JAVA.unquotedCasing); + impl.setIdentifierMaxLength(DEFAULT_IDENTIFIER_MAX_LENGTH); + return impl; + } + + + private TypeInformation getColumnType(String type){ TypeInformation basicTypeInfo = null ; switch (type) { diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java index 9d77df1..a6e9a1f 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/flink/job/FlinkJobConstant.java @@ -6,6 +6,5 @@ public interface FlinkJobConstant { String JOB_FLAG = "flink."; - String PARALLELISM = "flink.parallelism"; } diff --git a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java index 263ce6c..68ff660 100644 --- a/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java +++ b/blink-sqlserver/src/main/java/pingle/wang/sqlserver/sql/plan/Planner.java @@ -30,7 +30,7 @@ public Planner( Map tableSourceMap, List fl this.jobProps = jobProps; } - public CompilationResult sqlPlanner(Map> funMap,Map> sqls, int parallelism) throws Throwable { + public CompilationResult sqlPlanner(Map> funMap,Map> sqls, int parallelism) throws Throwable { Validator validator = new Validator(); //方法 @@ -45,7 +45,7 @@ public CompilationResult sqlPlanner(Map> funMap,Map viewMap = sqls.get(SqlConstant.VIEW); + Map viewMap = sqls.get(SqlConstant.VIEW); Collection views =viewMap.values(); for (String sql:views) { SqlNodeList stmts = parse(sql); @@ -55,7 +55,7 @@ public CompilationResult sqlPlanner(Map> funMap,Map updateMap = sqls.get(SqlConstant.INSERT_INTO); + Map updateMap = sqls.get(SqlConstant.INSERT_INTO); Collection values = updateMap.values(); for (String sql : values) { SqlNodeList stmts = parse(sql); From 0d8f4b5ed701c23b8c7318a68a93635f026b2538 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Wed, 26 Sep 2018 19:47:09 +0800 Subject: [PATCH 30/31] =?UTF-8?q?view=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blink-sqlserver/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/blink-sqlserver/pom.xml b/blink-sqlserver/pom.xml index befe040..fd3b29f 100644 --- a/blink-sqlserver/pom.xml +++ b/blink-sqlserver/pom.xml @@ -26,6 +26,10 @@ com.github.jsqlparser jsqlparser + + org.apache.calcite + calcite-server + commons-io commons-io From ab8156f18c376729215a4502be4f90ac53bff4a5 Mon Sep 17 00:00:00 2001 From: ambition119 <1269223860> Date: Wed, 26 Sep 2018 19:47:29 +0800 Subject: [PATCH 31/31] =?UTF-8?q?view=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 44193ae..f2b0a4c 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,6 @@ UTF-8 1.8 - 1.2 1.16.0 1.18.0 @@ -30,7 +29,7 @@ 1.0.29 1.2.47 - 1.5.0 + 1.6.0 1.5.0 2.7.4 1.9.13 @@ -56,6 +55,11 @@ jsqlparser ${jsqlparser.version} + + org.apache.calcite + calcite-server + ${calcite.version} + org.projectlombok lombok