![JAR search and dependency download from the Maven repository](/logo.png)
org.meridor.perspective.sql.SQLParser Maven / Gradle / Ivy
// Generated from org/meridor/perspective/sql/SQLParser.g4 by ANTLR 4.5.1
package org.meridor.perspective.sql;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class SQLParser extends Parser {
static { RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
SELECT=1, FROM=2, AS=3, WHERE=4, SHOW=5, TABLES=6, AND=7, OR=8, XOR=9,
IS=10, LIKE=11, IN=12, EXISTS=13, BETWEEN=14, ALL=15, ANY=16, NOT=17,
EQ=18, LT=19, GT=20, NOT_EQ=21, LTE=22, GTE=23, MULTIPLY=24, DIVIDE=25,
MOD=26, PLUS=27, MINUS=28, REGEXP=29, BIT_NOT=30, BIT_OR=31, BIT_AND=32,
BIT_XOR=33, SHIFT_LEFT=34, SHIFT_RIGHT=35, BINARY=36, ESCAPE=37, USE=38,
IGNORE=39, RPAREN=40, LPAREN=41, SEMICOLON=42, COMMA=43, DOT=44, INNER=45,
OUTER=46, JOIN=47, CROSS=48, USING=49, ORDER=50, ASC=51, DESC=52, GROUP=53,
HAVING=54, LIMIT=55, OFFSET=56, BY=57, STRAIGHT_JOIN=58, NATURAL=59, LEFT=60,
RIGHT=61, ON=62, NULL=63, TRUE=64, FALSE=65, INT=66, FLOAT=67, STRING=68,
ID=69, NEWLINE=70, WS=71;
public static final int
RULE_query = 0, RULE_table_name = 1, RULE_alias = 2, RULE_column_name = 3,
RULE_select_query = 4, RULE_select_clause = 5, RULE_from_clause = 6, RULE_where_clause = 7,
RULE_group_clause = 8, RULE_having_clause = 9, RULE_order_clause = 10,
RULE_offset = 11, RULE_row_count = 12, RULE_limit_clause = 13, RULE_alias_clause = 14,
RULE_aliased_expression = 15, RULE_select_expression = 16, RULE_columns_list = 17,
RULE_complex_boolean_expression = 18, RULE_expressions = 19, RULE_order_expressions = 20,
RULE_order_expression = 21, RULE_function_call = 22, RULE_literal = 23,
RULE_expression = 24, RULE_relational_operator = 25, RULE_binary_arithmetic_operator = 26,
RULE_unary_arithmetic_operator = 27, RULE_binary_boolean_operator = 28,
RULE_unary_boolean_operator = 29, RULE_simple_boolean_expression = 30,
RULE_table_references = 31, RULE_table_reference = 32, RULE_table_join = 33,
RULE_inner_join_clause = 34, RULE_outer_join_clause = 35, RULE_natural_join_clause = 36,
RULE_join_clause = 37, RULE_table_atom = 38, RULE_join_condition = 39,
RULE_show_tables_query = 40;
public static final String[] ruleNames = {
"query", "table_name", "alias", "column_name", "select_query", "select_clause",
"from_clause", "where_clause", "group_clause", "having_clause", "order_clause",
"offset", "row_count", "limit_clause", "alias_clause", "aliased_expression",
"select_expression", "columns_list", "complex_boolean_expression", "expressions",
"order_expressions", "order_expression", "function_call", "literal", "expression",
"relational_operator", "binary_arithmetic_operator", "unary_arithmetic_operator",
"binary_boolean_operator", "unary_boolean_operator", "simple_boolean_expression",
"table_references", "table_reference", "table_join", "inner_join_clause",
"outer_join_clause", "natural_join_clause", "join_clause", "table_atom",
"join_condition", "show_tables_query"
};
private static final String[] _LITERAL_NAMES = {
null, "'select'", "'from'", "'as'", "'where'", "'show'", "'tables'", null,
null, "'xor'", "'is'", "'like'", "'in'", "'exists'", "'between'", "'all'",
"'any'", null, "'='", "'<'", "'>'", "'!='", "'<='", "'>='", "'*'", null,
null, "'+'", "'-'", "'regexp'", "'~'", "'|'", "'&'", "'^'", "'<<'", "'>>'",
"'binary'", "'escape'", "'use'", "'ignore'", "')'", "'('", "';'", "','",
"'.'", "'inner'", "'outer'", "'join'", "'cross'", "'using'", "'order'",
"'asc'", "'desc'", "'group'", "'having'", "'limit'", "'offset'", "'by'",
"'straight_join'", "'natural'", "'left'", "'right'", "'on'", "'null'",
"'true'", "'false'"
};
private static final String[] _SYMBOLIC_NAMES = {
null, "SELECT", "FROM", "AS", "WHERE", "SHOW", "TABLES", "AND", "OR",
"XOR", "IS", "LIKE", "IN", "EXISTS", "BETWEEN", "ALL", "ANY", "NOT", "EQ",
"LT", "GT", "NOT_EQ", "LTE", "GTE", "MULTIPLY", "DIVIDE", "MOD", "PLUS",
"MINUS", "REGEXP", "BIT_NOT", "BIT_OR", "BIT_AND", "BIT_XOR", "SHIFT_LEFT",
"SHIFT_RIGHT", "BINARY", "ESCAPE", "USE", "IGNORE", "RPAREN", "LPAREN",
"SEMICOLON", "COMMA", "DOT", "INNER", "OUTER", "JOIN", "CROSS", "USING",
"ORDER", "ASC", "DESC", "GROUP", "HAVING", "LIMIT", "OFFSET", "BY", "STRAIGHT_JOIN",
"NATURAL", "LEFT", "RIGHT", "ON", "NULL", "TRUE", "FALSE", "INT", "FLOAT",
"STRING", "ID", "NEWLINE", "WS"
};
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "SQLParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public SQLParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class QueryContext extends ParserRuleContext {
public Select_queryContext select_query() {
return getRuleContext(Select_queryContext.class,0);
}
public Show_tables_queryContext show_tables_query() {
return getRuleContext(Show_tables_queryContext.class,0);
}
public QueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_query; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitQuery(this);
}
}
public final QueryContext query() throws RecognitionException {
QueryContext _localctx = new QueryContext(_ctx, getState());
enterRule(_localctx, 0, RULE_query);
try {
setState(84);
switch (_input.LA(1)) {
case SELECT:
enterOuterAlt(_localctx, 1);
{
setState(82);
select_query();
}
break;
case SHOW:
enterOuterAlt(_localctx, 2);
{
setState(83);
show_tables_query();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_nameContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(SQLParser.ID, 0); }
public Table_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_name; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterTable_name(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitTable_name(this);
}
}
public final Table_nameContext table_name() throws RecognitionException {
Table_nameContext _localctx = new Table_nameContext(_ctx, getState());
enterRule(_localctx, 2, RULE_table_name);
try {
enterOuterAlt(_localctx, 1);
{
setState(86);
match(ID);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AliasContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(SQLParser.ID, 0); }
public AliasContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_alias; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterAlias(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitAlias(this);
}
}
public final AliasContext alias() throws RecognitionException {
AliasContext _localctx = new AliasContext(_ctx, getState());
enterRule(_localctx, 4, RULE_alias);
try {
enterOuterAlt(_localctx, 1);
{
setState(88);
match(ID);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Column_nameContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(SQLParser.ID, 0); }
public TerminalNode MULTIPLY() { return getToken(SQLParser.MULTIPLY, 0); }
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public TerminalNode DOT() { return getToken(SQLParser.DOT, 0); }
public AliasContext alias() {
return getRuleContext(AliasContext.class,0);
}
public Column_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_column_name; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterColumn_name(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitColumn_name(this);
}
}
public final Column_nameContext column_name() throws RecognitionException {
Column_nameContext _localctx = new Column_nameContext(_ctx, getState());
enterRule(_localctx, 6, RULE_column_name);
int _la;
try {
setState(102);
switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(93);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
case 1:
{
setState(90);
table_name();
setState(91);
match(DOT);
}
break;
}
setState(95);
_la = _input.LA(1);
if ( !(_la==MULTIPLY || _la==ID) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(99);
switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
case 1:
{
setState(96);
alias();
setState(97);
match(DOT);
}
break;
}
setState(101);
_la = _input.LA(1);
if ( !(_la==MULTIPLY || _la==ID) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Select_queryContext extends ParserRuleContext {
public Select_clauseContext select_clause() {
return getRuleContext(Select_clauseContext.class,0);
}
public From_clauseContext from_clause() {
return getRuleContext(From_clauseContext.class,0);
}
public Where_clauseContext where_clause() {
return getRuleContext(Where_clauseContext.class,0);
}
public Group_clauseContext group_clause() {
return getRuleContext(Group_clauseContext.class,0);
}
public Having_clauseContext having_clause() {
return getRuleContext(Having_clauseContext.class,0);
}
public Order_clauseContext order_clause() {
return getRuleContext(Order_clauseContext.class,0);
}
public Limit_clauseContext limit_clause() {
return getRuleContext(Limit_clauseContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(SQLParser.SEMICOLON, 0); }
public Select_queryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_select_query; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterSelect_query(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitSelect_query(this);
}
}
public final Select_queryContext select_query() throws RecognitionException {
Select_queryContext _localctx = new Select_queryContext(_ctx, getState());
enterRule(_localctx, 8, RULE_select_query);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(104);
select_clause();
setState(106);
_la = _input.LA(1);
if (_la==FROM) {
{
setState(105);
from_clause();
}
}
setState(109);
_la = _input.LA(1);
if (_la==WHERE) {
{
setState(108);
where_clause();
}
}
setState(112);
_la = _input.LA(1);
if (_la==GROUP) {
{
setState(111);
group_clause();
}
}
setState(115);
_la = _input.LA(1);
if (_la==HAVING) {
{
setState(114);
having_clause();
}
}
setState(118);
_la = _input.LA(1);
if (_la==ORDER) {
{
setState(117);
order_clause();
}
}
setState(121);
_la = _input.LA(1);
if (_la==LIMIT) {
{
setState(120);
limit_clause();
}
}
setState(124);
_la = _input.LA(1);
if (_la==SEMICOLON) {
{
setState(123);
match(SEMICOLON);
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Select_clauseContext extends ParserRuleContext {
public TerminalNode SELECT() { return getToken(SQLParser.SELECT, 0); }
public Select_expressionContext select_expression() {
return getRuleContext(Select_expressionContext.class,0);
}
public Select_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_select_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterSelect_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitSelect_clause(this);
}
}
public final Select_clauseContext select_clause() throws RecognitionException {
Select_clauseContext _localctx = new Select_clauseContext(_ctx, getState());
enterRule(_localctx, 10, RULE_select_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(126);
match(SELECT);
setState(127);
select_expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class From_clauseContext extends ParserRuleContext {
public TerminalNode FROM() { return getToken(SQLParser.FROM, 0); }
public Table_referencesContext table_references() {
return getRuleContext(Table_referencesContext.class,0);
}
public From_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_from_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterFrom_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitFrom_clause(this);
}
}
public final From_clauseContext from_clause() throws RecognitionException {
From_clauseContext _localctx = new From_clauseContext(_ctx, getState());
enterRule(_localctx, 12, RULE_from_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(129);
match(FROM);
setState(130);
table_references();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Where_clauseContext extends ParserRuleContext {
public TerminalNode WHERE() { return getToken(SQLParser.WHERE, 0); }
public Complex_boolean_expressionContext complex_boolean_expression() {
return getRuleContext(Complex_boolean_expressionContext.class,0);
}
public Where_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_where_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterWhere_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitWhere_clause(this);
}
}
public final Where_clauseContext where_clause() throws RecognitionException {
Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState());
enterRule(_localctx, 14, RULE_where_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(132);
match(WHERE);
setState(133);
complex_boolean_expression(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Group_clauseContext extends ParserRuleContext {
public TerminalNode GROUP() { return getToken(SQLParser.GROUP, 0); }
public TerminalNode BY() { return getToken(SQLParser.BY, 0); }
public ExpressionsContext expressions() {
return getRuleContext(ExpressionsContext.class,0);
}
public Group_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_group_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterGroup_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitGroup_clause(this);
}
}
public final Group_clauseContext group_clause() throws RecognitionException {
Group_clauseContext _localctx = new Group_clauseContext(_ctx, getState());
enterRule(_localctx, 16, RULE_group_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(135);
match(GROUP);
setState(136);
match(BY);
setState(137);
expressions();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Having_clauseContext extends ParserRuleContext {
public TerminalNode HAVING() { return getToken(SQLParser.HAVING, 0); }
public Complex_boolean_expressionContext complex_boolean_expression() {
return getRuleContext(Complex_boolean_expressionContext.class,0);
}
public Having_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_having_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterHaving_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitHaving_clause(this);
}
}
public final Having_clauseContext having_clause() throws RecognitionException {
Having_clauseContext _localctx = new Having_clauseContext(_ctx, getState());
enterRule(_localctx, 18, RULE_having_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(139);
match(HAVING);
setState(140);
complex_boolean_expression(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Order_clauseContext extends ParserRuleContext {
public TerminalNode ORDER() { return getToken(SQLParser.ORDER, 0); }
public TerminalNode BY() { return getToken(SQLParser.BY, 0); }
public Order_expressionsContext order_expressions() {
return getRuleContext(Order_expressionsContext.class,0);
}
public Order_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_order_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterOrder_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitOrder_clause(this);
}
}
public final Order_clauseContext order_clause() throws RecognitionException {
Order_clauseContext _localctx = new Order_clauseContext(_ctx, getState());
enterRule(_localctx, 20, RULE_order_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(142);
match(ORDER);
setState(143);
match(BY);
setState(144);
order_expressions();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class OffsetContext extends ParserRuleContext {
public TerminalNode INT() { return getToken(SQLParser.INT, 0); }
public OffsetContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_offset; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterOffset(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitOffset(this);
}
}
public final OffsetContext offset() throws RecognitionException {
OffsetContext _localctx = new OffsetContext(_ctx, getState());
enterRule(_localctx, 22, RULE_offset);
try {
enterOuterAlt(_localctx, 1);
{
setState(146);
match(INT);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Row_countContext extends ParserRuleContext {
public TerminalNode INT() { return getToken(SQLParser.INT, 0); }
public Row_countContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_row_count; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterRow_count(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitRow_count(this);
}
}
public final Row_countContext row_count() throws RecognitionException {
Row_countContext _localctx = new Row_countContext(_ctx, getState());
enterRule(_localctx, 24, RULE_row_count);
try {
enterOuterAlt(_localctx, 1);
{
setState(148);
match(INT);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Limit_clauseContext extends ParserRuleContext {
public TerminalNode LIMIT() { return getToken(SQLParser.LIMIT, 0); }
public Row_countContext row_count() {
return getRuleContext(Row_countContext.class,0);
}
public TerminalNode OFFSET() { return getToken(SQLParser.OFFSET, 0); }
public OffsetContext offset() {
return getRuleContext(OffsetContext.class,0);
}
public TerminalNode COMMA() { return getToken(SQLParser.COMMA, 0); }
public Limit_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_limit_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterLimit_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitLimit_clause(this);
}
}
public final Limit_clauseContext limit_clause() throws RecognitionException {
Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState());
enterRule(_localctx, 26, RULE_limit_clause);
try {
enterOuterAlt(_localctx, 1);
{
setState(150);
match(LIMIT);
setState(161);
switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) {
case 1:
{
setState(154);
switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) {
case 1:
{
setState(151);
offset();
setState(152);
match(COMMA);
}
break;
}
setState(156);
row_count();
}
break;
case 2:
{
setState(157);
row_count();
setState(158);
match(OFFSET);
setState(159);
offset();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Alias_clauseContext extends ParserRuleContext {
public AliasContext alias() {
return getRuleContext(AliasContext.class,0);
}
public TerminalNode AS() { return getToken(SQLParser.AS, 0); }
public Alias_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_alias_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterAlias_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitAlias_clause(this);
}
}
public final Alias_clauseContext alias_clause() throws RecognitionException {
Alias_clauseContext _localctx = new Alias_clauseContext(_ctx, getState());
enterRule(_localctx, 28, RULE_alias_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(164);
_la = _input.LA(1);
if (_la==AS) {
{
setState(163);
match(AS);
}
}
setState(166);
alias();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Aliased_expressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public Alias_clauseContext alias_clause() {
return getRuleContext(Alias_clauseContext.class,0);
}
public Aliased_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_aliased_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterAliased_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitAliased_expression(this);
}
}
public final Aliased_expressionContext aliased_expression() throws RecognitionException {
Aliased_expressionContext _localctx = new Aliased_expressionContext(_ctx, getState());
enterRule(_localctx, 30, RULE_aliased_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(168);
expression(0);
setState(170);
_la = _input.LA(1);
if (_la==AS || _la==ID) {
{
setState(169);
alias_clause();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Select_expressionContext extends ParserRuleContext {
public List aliased_expression() {
return getRuleContexts(Aliased_expressionContext.class);
}
public Aliased_expressionContext aliased_expression(int i) {
return getRuleContext(Aliased_expressionContext.class,i);
}
public List COMMA() { return getTokens(SQLParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(SQLParser.COMMA, i);
}
public Select_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_select_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterSelect_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitSelect_expression(this);
}
}
public final Select_expressionContext select_expression() throws RecognitionException {
Select_expressionContext _localctx = new Select_expressionContext(_ctx, getState());
enterRule(_localctx, 32, RULE_select_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(172);
aliased_expression();
setState(177);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(173);
match(COMMA);
setState(174);
aliased_expression();
}
}
setState(179);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Columns_listContext extends ParserRuleContext {
public List column_name() {
return getRuleContexts(Column_nameContext.class);
}
public Column_nameContext column_name(int i) {
return getRuleContext(Column_nameContext.class,i);
}
public List COMMA() { return getTokens(SQLParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(SQLParser.COMMA, i);
}
public Columns_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_columns_list; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterColumns_list(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitColumns_list(this);
}
}
public final Columns_listContext columns_list() throws RecognitionException {
Columns_listContext _localctx = new Columns_listContext(_ctx, getState());
enterRule(_localctx, 34, RULE_columns_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(180);
column_name();
setState(185);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(181);
match(COMMA);
setState(182);
column_name();
}
}
setState(187);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Complex_boolean_expressionContext extends ParserRuleContext {
public Unary_boolean_operatorContext unary_boolean_operator() {
return getRuleContext(Unary_boolean_operatorContext.class,0);
}
public List complex_boolean_expression() {
return getRuleContexts(Complex_boolean_expressionContext.class);
}
public Complex_boolean_expressionContext complex_boolean_expression(int i) {
return getRuleContext(Complex_boolean_expressionContext.class,i);
}
public List simple_boolean_expression() {
return getRuleContexts(Simple_boolean_expressionContext.class);
}
public Simple_boolean_expressionContext simple_boolean_expression(int i) {
return getRuleContext(Simple_boolean_expressionContext.class,i);
}
public List binary_boolean_operator() {
return getRuleContexts(Binary_boolean_operatorContext.class);
}
public Binary_boolean_operatorContext binary_boolean_operator(int i) {
return getRuleContext(Binary_boolean_operatorContext.class,i);
}
public TerminalNode LPAREN() { return getToken(SQLParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(SQLParser.RPAREN, 0); }
public Complex_boolean_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_complex_boolean_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterComplex_boolean_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitComplex_boolean_expression(this);
}
}
public final Complex_boolean_expressionContext complex_boolean_expression() throws RecognitionException {
return complex_boolean_expression(0);
}
private Complex_boolean_expressionContext complex_boolean_expression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
Complex_boolean_expressionContext _localctx = new Complex_boolean_expressionContext(_ctx, _parentState);
Complex_boolean_expressionContext _prevctx = _localctx;
int _startState = 36;
enterRecursionRule(_localctx, 36, RULE_complex_boolean_expression, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(201);
switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
case 1:
{
setState(189);
unary_boolean_operator();
setState(190);
complex_boolean_expression(3);
}
break;
case 2:
{
setState(192);
simple_boolean_expression();
}
break;
case 3:
{
setState(193);
simple_boolean_expression();
setState(194);
binary_boolean_operator();
setState(195);
simple_boolean_expression();
}
break;
case 4:
{
setState(197);
match(LPAREN);
setState(198);
complex_boolean_expression(0);
setState(199);
match(RPAREN);
}
break;
}
_ctx.stop = _input.LT(-1);
setState(213);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,19,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new Complex_boolean_expressionContext(_parentctx, _parentState);
pushNewRecursionContext(_localctx, _startState, RULE_complex_boolean_expression);
setState(203);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(207);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(204);
binary_boolean_operator();
setState(205);
complex_boolean_expression(0);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(209);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,18,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
}
setState(215);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,19,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class ExpressionsContext extends ParserRuleContext {
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List COMMA() { return getTokens(SQLParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(SQLParser.COMMA, i);
}
public ExpressionsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expressions; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterExpressions(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitExpressions(this);
}
}
public final ExpressionsContext expressions() throws RecognitionException {
ExpressionsContext _localctx = new ExpressionsContext(_ctx, getState());
enterRule(_localctx, 38, RULE_expressions);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(216);
expression(0);
setState(221);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(217);
match(COMMA);
setState(218);
expression(0);
}
}
setState(223);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Order_expressionsContext extends ParserRuleContext {
public List order_expression() {
return getRuleContexts(Order_expressionContext.class);
}
public Order_expressionContext order_expression(int i) {
return getRuleContext(Order_expressionContext.class,i);
}
public List COMMA() { return getTokens(SQLParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(SQLParser.COMMA, i);
}
public Order_expressionsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_order_expressions; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterOrder_expressions(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitOrder_expressions(this);
}
}
public final Order_expressionsContext order_expressions() throws RecognitionException {
Order_expressionsContext _localctx = new Order_expressionsContext(_ctx, getState());
enterRule(_localctx, 40, RULE_order_expressions);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(224);
order_expression();
setState(229);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(225);
match(COMMA);
setState(226);
order_expression();
}
}
setState(231);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Order_expressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode ASC() { return getToken(SQLParser.ASC, 0); }
public TerminalNode DESC() { return getToken(SQLParser.DESC, 0); }
public Order_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_order_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterOrder_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitOrder_expression(this);
}
}
public final Order_expressionContext order_expression() throws RecognitionException {
Order_expressionContext _localctx = new Order_expressionContext(_ctx, getState());
enterRule(_localctx, 42, RULE_order_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(232);
expression(0);
setState(234);
_la = _input.LA(1);
if (_la==ASC || _la==DESC) {
{
setState(233);
_la = _input.LA(1);
if ( !(_la==ASC || _la==DESC) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Function_callContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(SQLParser.ID, 0); }
public TerminalNode LPAREN() { return getToken(SQLParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(SQLParser.RPAREN, 0); }
public ExpressionsContext expressions() {
return getRuleContext(ExpressionsContext.class,0);
}
public Function_callContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_function_call; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterFunction_call(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitFunction_call(this);
}
}
public final Function_callContext function_call() throws RecognitionException {
Function_callContext _localctx = new Function_callContext(_ctx, getState());
enterRule(_localctx, 44, RULE_function_call);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(236);
match(ID);
setState(237);
match(LPAREN);
setState(239);
_la = _input.LA(1);
if (((((_la - 24)) & ~0x3f) == 0 && ((1L << (_la - 24)) & ((1L << (MULTIPLY - 24)) | (1L << (PLUS - 24)) | (1L << (MINUS - 24)) | (1L << (BIT_NOT - 24)) | (1L << (NULL - 24)) | (1L << (TRUE - 24)) | (1L << (FALSE - 24)) | (1L << (INT - 24)) | (1L << (FLOAT - 24)) | (1L << (STRING - 24)) | (1L << (ID - 24)))) != 0)) {
{
setState(238);
expressions();
}
}
setState(241);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class LiteralContext extends ParserRuleContext {
public TerminalNode STRING() { return getToken(SQLParser.STRING, 0); }
public TerminalNode INT() { return getToken(SQLParser.INT, 0); }
public TerminalNode FLOAT() { return getToken(SQLParser.FLOAT, 0); }
public TerminalNode TRUE() { return getToken(SQLParser.TRUE, 0); }
public TerminalNode FALSE() { return getToken(SQLParser.FALSE, 0); }
public TerminalNode NULL() { return getToken(SQLParser.NULL, 0); }
public LiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_literal; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitLiteral(this);
}
}
public final LiteralContext literal() throws RecognitionException {
LiteralContext _localctx = new LiteralContext(_ctx, getState());
enterRule(_localctx, 46, RULE_literal);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(243);
_la = _input.LA(1);
if ( !(((((_la - 63)) & ~0x3f) == 0 && ((1L << (_la - 63)) & ((1L << (NULL - 63)) | (1L << (TRUE - 63)) | (1L << (FALSE - 63)) | (1L << (INT - 63)) | (1L << (FLOAT - 63)) | (1L << (STRING - 63)))) != 0)) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ExpressionContext extends ParserRuleContext {
public Unary_arithmetic_operatorContext unary_arithmetic_operator() {
return getRuleContext(Unary_arithmetic_operatorContext.class,0);
}
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public LiteralContext literal() {
return getRuleContext(LiteralContext.class,0);
}
public Column_nameContext column_name() {
return getRuleContext(Column_nameContext.class,0);
}
public Function_callContext function_call() {
return getRuleContext(Function_callContext.class,0);
}
public Binary_arithmetic_operatorContext binary_arithmetic_operator() {
return getRuleContext(Binary_arithmetic_operatorContext.class,0);
}
public ExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitExpression(this);
}
}
public final ExpressionContext expression() throws RecognitionException {
return expression(0);
}
private ExpressionContext expression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
ExpressionContext _prevctx = _localctx;
int _startState = 48;
enterRecursionRule(_localctx, 48, RULE_expression, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(252);
switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
case 1:
{
setState(246);
unary_arithmetic_operator();
setState(247);
expression(1);
}
break;
case 2:
{
setState(249);
literal();
}
break;
case 3:
{
setState(250);
column_name();
}
break;
case 4:
{
setState(251);
function_call();
}
break;
}
_ctx.stop = _input.LT(-1);
setState(260);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,25,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new ExpressionContext(_parentctx, _parentState);
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(254);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(255);
binary_arithmetic_operator();
setState(256);
expression(3);
}
}
}
setState(262);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,25,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class Relational_operatorContext extends ParserRuleContext {
public TerminalNode EQ() { return getToken(SQLParser.EQ, 0); }
public TerminalNode LT() { return getToken(SQLParser.LT, 0); }
public TerminalNode GT() { return getToken(SQLParser.GT, 0); }
public TerminalNode NOT_EQ() { return getToken(SQLParser.NOT_EQ, 0); }
public TerminalNode LTE() { return getToken(SQLParser.LTE, 0); }
public TerminalNode GTE() { return getToken(SQLParser.GTE, 0); }
public Relational_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_relational_operator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterRelational_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitRelational_operator(this);
}
}
public final Relational_operatorContext relational_operator() throws RecognitionException {
Relational_operatorContext _localctx = new Relational_operatorContext(_ctx, getState());
enterRule(_localctx, 50, RULE_relational_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(263);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EQ) | (1L << LT) | (1L << GT) | (1L << NOT_EQ) | (1L << LTE) | (1L << GTE))) != 0)) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Binary_arithmetic_operatorContext extends ParserRuleContext {
public TerminalNode PLUS() { return getToken(SQLParser.PLUS, 0); }
public TerminalNode MINUS() { return getToken(SQLParser.MINUS, 0); }
public TerminalNode MULTIPLY() { return getToken(SQLParser.MULTIPLY, 0); }
public TerminalNode DIVIDE() { return getToken(SQLParser.DIVIDE, 0); }
public TerminalNode MOD() { return getToken(SQLParser.MOD, 0); }
public TerminalNode BIT_AND() { return getToken(SQLParser.BIT_AND, 0); }
public TerminalNode BIT_OR() { return getToken(SQLParser.BIT_OR, 0); }
public TerminalNode BIT_XOR() { return getToken(SQLParser.BIT_XOR, 0); }
public TerminalNode SHIFT_LEFT() { return getToken(SQLParser.SHIFT_LEFT, 0); }
public TerminalNode SHIFT_RIGHT() { return getToken(SQLParser.SHIFT_RIGHT, 0); }
public Binary_arithmetic_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_binary_arithmetic_operator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterBinary_arithmetic_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitBinary_arithmetic_operator(this);
}
}
public final Binary_arithmetic_operatorContext binary_arithmetic_operator() throws RecognitionException {
Binary_arithmetic_operatorContext _localctx = new Binary_arithmetic_operatorContext(_ctx, getState());
enterRule(_localctx, 52, RULE_binary_arithmetic_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(265);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << MULTIPLY) | (1L << DIVIDE) | (1L << MOD) | (1L << PLUS) | (1L << MINUS) | (1L << BIT_OR) | (1L << BIT_AND) | (1L << BIT_XOR) | (1L << SHIFT_LEFT) | (1L << SHIFT_RIGHT))) != 0)) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Unary_arithmetic_operatorContext extends ParserRuleContext {
public TerminalNode PLUS() { return getToken(SQLParser.PLUS, 0); }
public TerminalNode MINUS() { return getToken(SQLParser.MINUS, 0); }
public TerminalNode BIT_NOT() { return getToken(SQLParser.BIT_NOT, 0); }
public Unary_arithmetic_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unary_arithmetic_operator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterUnary_arithmetic_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitUnary_arithmetic_operator(this);
}
}
public final Unary_arithmetic_operatorContext unary_arithmetic_operator() throws RecognitionException {
Unary_arithmetic_operatorContext _localctx = new Unary_arithmetic_operatorContext(_ctx, getState());
enterRule(_localctx, 54, RULE_unary_arithmetic_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(267);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << PLUS) | (1L << MINUS) | (1L << BIT_NOT))) != 0)) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Binary_boolean_operatorContext extends ParserRuleContext {
public TerminalNode AND() { return getToken(SQLParser.AND, 0); }
public TerminalNode XOR() { return getToken(SQLParser.XOR, 0); }
public TerminalNode OR() { return getToken(SQLParser.OR, 0); }
public Binary_boolean_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_binary_boolean_operator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterBinary_boolean_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitBinary_boolean_operator(this);
}
}
public final Binary_boolean_operatorContext binary_boolean_operator() throws RecognitionException {
Binary_boolean_operatorContext _localctx = new Binary_boolean_operatorContext(_ctx, getState());
enterRule(_localctx, 56, RULE_binary_boolean_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(269);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << AND) | (1L << OR) | (1L << XOR))) != 0)) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Unary_boolean_operatorContext extends ParserRuleContext {
public TerminalNode NOT() { return getToken(SQLParser.NOT, 0); }
public Unary_boolean_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unary_boolean_operator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterUnary_boolean_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitUnary_boolean_operator(this);
}
}
public final Unary_boolean_operatorContext unary_boolean_operator() throws RecognitionException {
Unary_boolean_operatorContext _localctx = new Unary_boolean_operatorContext(_ctx, getState());
enterRule(_localctx, 58, RULE_unary_boolean_operator);
try {
enterOuterAlt(_localctx, 1);
{
setState(271);
match(NOT);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Simple_boolean_expressionContext extends ParserRuleContext {
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public Relational_operatorContext relational_operator() {
return getRuleContext(Relational_operatorContext.class,0);
}
public TerminalNode BETWEEN() { return getToken(SQLParser.BETWEEN, 0); }
public TerminalNode AND() { return getToken(SQLParser.AND, 0); }
public TerminalNode NOT() { return getToken(SQLParser.NOT, 0); }
public TerminalNode IS() { return getToken(SQLParser.IS, 0); }
public TerminalNode NULL() { return getToken(SQLParser.NULL, 0); }
public TerminalNode LIKE() { return getToken(SQLParser.LIKE, 0); }
public TerminalNode REGEXP() { return getToken(SQLParser.REGEXP, 0); }
public TerminalNode IN() { return getToken(SQLParser.IN, 0); }
public TerminalNode LPAREN() { return getToken(SQLParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(SQLParser.RPAREN, 0); }
public List COMMA() { return getTokens(SQLParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(SQLParser.COMMA, i);
}
public Simple_boolean_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_simple_boolean_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterSimple_boolean_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitSimple_boolean_expression(this);
}
}
public final Simple_boolean_expressionContext simple_boolean_expression() throws RecognitionException {
Simple_boolean_expressionContext _localctx = new Simple_boolean_expressionContext(_ctx, getState());
enterRule(_localctx, 60, RULE_simple_boolean_expression);
int _la;
try {
setState(323);
switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(273);
expression(0);
setState(274);
relational_operator();
setState(275);
expression(0);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(277);
expression(0);
setState(279);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(278);
match(NOT);
}
}
setState(281);
match(BETWEEN);
setState(282);
expression(0);
setState(283);
match(AND);
setState(284);
expression(0);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(286);
expression(0);
setState(287);
match(IS);
setState(289);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(288);
match(NOT);
}
}
setState(291);
match(NULL);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(293);
expression(0);
setState(295);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(294);
match(NOT);
}
}
setState(297);
match(LIKE);
setState(298);
expression(0);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(300);
expression(0);
setState(302);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(301);
match(NOT);
}
}
setState(304);
match(REGEXP);
setState(305);
expression(0);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(307);
expression(0);
setState(309);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(308);
match(NOT);
}
}
setState(311);
match(IN);
setState(312);
match(LPAREN);
setState(313);
expression(0);
setState(318);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(314);
match(COMMA);
setState(315);
expression(0);
}
}
setState(320);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(321);
match(RPAREN);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_referencesContext extends ParserRuleContext {
public List table_reference() {
return getRuleContexts(Table_referenceContext.class);
}
public Table_referenceContext table_reference(int i) {
return getRuleContext(Table_referenceContext.class,i);
}
public List COMMA() { return getTokens(SQLParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(SQLParser.COMMA, i);
}
public Table_referencesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_references; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterTable_references(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitTable_references(this);
}
}
public final Table_referencesContext table_references() throws RecognitionException {
Table_referencesContext _localctx = new Table_referencesContext(_ctx, getState());
enterRule(_localctx, 62, RULE_table_references);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(325);
table_reference();
setState(330);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(326);
match(COMMA);
setState(327);
table_reference();
}
}
setState(332);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_referenceContext extends ParserRuleContext {
public Table_atomContext table_atom() {
return getRuleContext(Table_atomContext.class,0);
}
public Table_joinContext table_join() {
return getRuleContext(Table_joinContext.class,0);
}
public Table_referenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_reference; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterTable_reference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitTable_reference(this);
}
}
public final Table_referenceContext table_reference() throws RecognitionException {
Table_referenceContext _localctx = new Table_referenceContext(_ctx, getState());
enterRule(_localctx, 64, RULE_table_reference);
try {
setState(335);
switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(333);
table_atom();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(334);
table_join();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_joinContext extends ParserRuleContext {
public Table_atomContext table_atom() {
return getRuleContext(Table_atomContext.class,0);
}
public List join_clause() {
return getRuleContexts(Join_clauseContext.class);
}
public Join_clauseContext join_clause(int i) {
return getRuleContext(Join_clauseContext.class,i);
}
public Table_joinContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_join; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterTable_join(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitTable_join(this);
}
}
public final Table_joinContext table_join() throws RecognitionException {
Table_joinContext _localctx = new Table_joinContext(_ctx, getState());
enterRule(_localctx, 66, RULE_table_join);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(337);
table_atom();
setState(339);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(338);
join_clause();
}
}
setState(341);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << INNER) | (1L << JOIN) | (1L << CROSS) | (1L << NATURAL) | (1L << LEFT) | (1L << RIGHT))) != 0) );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Inner_join_clauseContext extends ParserRuleContext {
public TerminalNode JOIN() { return getToken(SQLParser.JOIN, 0); }
public Table_atomContext table_atom() {
return getRuleContext(Table_atomContext.class,0);
}
public Join_conditionContext join_condition() {
return getRuleContext(Join_conditionContext.class,0);
}
public TerminalNode INNER() { return getToken(SQLParser.INNER, 0); }
public TerminalNode CROSS() { return getToken(SQLParser.CROSS, 0); }
public Inner_join_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_inner_join_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterInner_join_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitInner_join_clause(this);
}
}
public final Inner_join_clauseContext inner_join_clause() throws RecognitionException {
Inner_join_clauseContext _localctx = new Inner_join_clauseContext(_ctx, getState());
enterRule(_localctx, 68, RULE_inner_join_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(344);
_la = _input.LA(1);
if (_la==INNER || _la==CROSS) {
{
setState(343);
_la = _input.LA(1);
if ( !(_la==INNER || _la==CROSS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
setState(346);
match(JOIN);
setState(347);
table_atom();
setState(349);
_la = _input.LA(1);
if (_la==USING || _la==ON) {
{
setState(348);
join_condition();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Outer_join_clauseContext extends ParserRuleContext {
public TerminalNode JOIN() { return getToken(SQLParser.JOIN, 0); }
public Table_atomContext table_atom() {
return getRuleContext(Table_atomContext.class,0);
}
public Join_conditionContext join_condition() {
return getRuleContext(Join_conditionContext.class,0);
}
public TerminalNode LEFT() { return getToken(SQLParser.LEFT, 0); }
public TerminalNode RIGHT() { return getToken(SQLParser.RIGHT, 0); }
public TerminalNode OUTER() { return getToken(SQLParser.OUTER, 0); }
public Outer_join_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_outer_join_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterOuter_join_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitOuter_join_clause(this);
}
}
public final Outer_join_clauseContext outer_join_clause() throws RecognitionException {
Outer_join_clauseContext _localctx = new Outer_join_clauseContext(_ctx, getState());
enterRule(_localctx, 70, RULE_outer_join_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(351);
_la = _input.LA(1);
if ( !(_la==LEFT || _la==RIGHT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(353);
_la = _input.LA(1);
if (_la==OUTER) {
{
setState(352);
match(OUTER);
}
}
setState(355);
match(JOIN);
setState(356);
table_atom();
setState(357);
join_condition();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Natural_join_clauseContext extends ParserRuleContext {
public TerminalNode NATURAL() { return getToken(SQLParser.NATURAL, 0); }
public TerminalNode JOIN() { return getToken(SQLParser.JOIN, 0); }
public Table_atomContext table_atom() {
return getRuleContext(Table_atomContext.class,0);
}
public TerminalNode OUTER() { return getToken(SQLParser.OUTER, 0); }
public TerminalNode LEFT() { return getToken(SQLParser.LEFT, 0); }
public TerminalNode RIGHT() { return getToken(SQLParser.RIGHT, 0); }
public Natural_join_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_natural_join_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterNatural_join_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitNatural_join_clause(this);
}
}
public final Natural_join_clauseContext natural_join_clause() throws RecognitionException {
Natural_join_clauseContext _localctx = new Natural_join_clauseContext(_ctx, getState());
enterRule(_localctx, 72, RULE_natural_join_clause);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(359);
match(NATURAL);
setState(362);
_la = _input.LA(1);
if (_la==LEFT || _la==RIGHT) {
{
setState(360);
_la = _input.LA(1);
if ( !(_la==LEFT || _la==RIGHT) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(361);
match(OUTER);
}
}
setState(364);
match(JOIN);
setState(365);
table_atom();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Join_clauseContext extends ParserRuleContext {
public Inner_join_clauseContext inner_join_clause() {
return getRuleContext(Inner_join_clauseContext.class,0);
}
public Outer_join_clauseContext outer_join_clause() {
return getRuleContext(Outer_join_clauseContext.class,0);
}
public Natural_join_clauseContext natural_join_clause() {
return getRuleContext(Natural_join_clauseContext.class,0);
}
public Join_clauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_join_clause; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterJoin_clause(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitJoin_clause(this);
}
}
public final Join_clauseContext join_clause() throws RecognitionException {
Join_clauseContext _localctx = new Join_clauseContext(_ctx, getState());
enterRule(_localctx, 74, RULE_join_clause);
try {
setState(370);
switch (_input.LA(1)) {
case INNER:
case JOIN:
case CROSS:
enterOuterAlt(_localctx, 1);
{
setState(367);
inner_join_clause();
}
break;
case LEFT:
case RIGHT:
enterOuterAlt(_localctx, 2);
{
setState(368);
outer_join_clause();
}
break;
case NATURAL:
enterOuterAlt(_localctx, 3);
{
setState(369);
natural_join_clause();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Table_atomContext extends ParserRuleContext {
public Table_nameContext table_name() {
return getRuleContext(Table_nameContext.class,0);
}
public Alias_clauseContext alias_clause() {
return getRuleContext(Alias_clauseContext.class,0);
}
public TerminalNode LPAREN() { return getToken(SQLParser.LPAREN, 0); }
public Table_referencesContext table_references() {
return getRuleContext(Table_referencesContext.class,0);
}
public TerminalNode RPAREN() { return getToken(SQLParser.RPAREN, 0); }
public Table_atomContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_atom; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterTable_atom(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitTable_atom(this);
}
}
public final Table_atomContext table_atom() throws RecognitionException {
Table_atomContext _localctx = new Table_atomContext(_ctx, getState());
enterRule(_localctx, 76, RULE_table_atom);
int _la;
try {
setState(380);
switch (_input.LA(1)) {
case ID:
enterOuterAlt(_localctx, 1);
{
setState(372);
table_name();
setState(374);
_la = _input.LA(1);
if (_la==AS || _la==ID) {
{
setState(373);
alias_clause();
}
}
}
break;
case LPAREN:
enterOuterAlt(_localctx, 2);
{
setState(376);
match(LPAREN);
setState(377);
table_references();
setState(378);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Join_conditionContext extends ParserRuleContext {
public TerminalNode ON() { return getToken(SQLParser.ON, 0); }
public Complex_boolean_expressionContext complex_boolean_expression() {
return getRuleContext(Complex_boolean_expressionContext.class,0);
}
public TerminalNode USING() { return getToken(SQLParser.USING, 0); }
public TerminalNode LPAREN() { return getToken(SQLParser.LPAREN, 0); }
public Columns_listContext columns_list() {
return getRuleContext(Columns_listContext.class,0);
}
public TerminalNode RPAREN() { return getToken(SQLParser.RPAREN, 0); }
public Join_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_join_condition; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterJoin_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitJoin_condition(this);
}
}
public final Join_conditionContext join_condition() throws RecognitionException {
Join_conditionContext _localctx = new Join_conditionContext(_ctx, getState());
enterRule(_localctx, 78, RULE_join_condition);
try {
setState(389);
switch (_input.LA(1)) {
case ON:
enterOuterAlt(_localctx, 1);
{
setState(382);
match(ON);
setState(383);
complex_boolean_expression(0);
}
break;
case USING:
enterOuterAlt(_localctx, 2);
{
setState(384);
match(USING);
setState(385);
match(LPAREN);
setState(386);
columns_list();
setState(387);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Show_tables_queryContext extends ParserRuleContext {
public TerminalNode SHOW() { return getToken(SQLParser.SHOW, 0); }
public TerminalNode TABLES() { return getToken(SQLParser.TABLES, 0); }
public Show_tables_queryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_show_tables_query; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).enterShow_tables_query(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SQLParserListener ) ((SQLParserListener)listener).exitShow_tables_query(this);
}
}
public final Show_tables_queryContext show_tables_query() throws RecognitionException {
Show_tables_queryContext _localctx = new Show_tables_queryContext(_ctx, getState());
enterRule(_localctx, 80, RULE_show_tables_query);
try {
enterOuterAlt(_localctx, 1);
{
setState(391);
match(SHOW);
setState(392);
match(TABLES);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 18:
return complex_boolean_expression_sempred((Complex_boolean_expressionContext)_localctx, predIndex);
case 24:
return expression_sempred((ExpressionContext)_localctx, predIndex);
}
return true;
}
private boolean complex_boolean_expression_sempred(Complex_boolean_expressionContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return precpred(_ctx, 2);
}
return true;
}
private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 1:
return precpred(_ctx, 2);
}
return true;
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3I\u018d\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\3\2\3\2"+
"\5\2W\n\2\3\3\3\3\3\4\3\4\3\5\3\5\3\5\5\5`\n\5\3\5\3\5\3\5\3\5\5\5f\n"+
"\5\3\5\5\5i\n\5\3\6\3\6\5\6m\n\6\3\6\5\6p\n\6\3\6\5\6s\n\6\3\6\5\6v\n"+
"\6\3\6\5\6y\n\6\3\6\5\6|\n\6\3\6\5\6\177\n\6\3\7\3\7\3\7\3\b\3\b\3\b\3"+
"\t\3\t\3\t\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\r\3\r\3\16"+
"\3\16\3\17\3\17\3\17\3\17\5\17\u009d\n\17\3\17\3\17\3\17\3\17\3\17\5\17"+
"\u00a4\n\17\3\20\5\20\u00a7\n\20\3\20\3\20\3\21\3\21\5\21\u00ad\n\21\3"+
"\22\3\22\3\22\7\22\u00b2\n\22\f\22\16\22\u00b5\13\22\3\23\3\23\3\23\7"+
"\23\u00ba\n\23\f\23\16\23\u00bd\13\23\3\24\3\24\3\24\3\24\3\24\3\24\3"+
"\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u00cc\n\24\3\24\3\24\3\24\3\24"+
"\6\24\u00d2\n\24\r\24\16\24\u00d3\7\24\u00d6\n\24\f\24\16\24\u00d9\13"+
"\24\3\25\3\25\3\25\7\25\u00de\n\25\f\25\16\25\u00e1\13\25\3\26\3\26\3"+
"\26\7\26\u00e6\n\26\f\26\16\26\u00e9\13\26\3\27\3\27\5\27\u00ed\n\27\3"+
"\30\3\30\3\30\5\30\u00f2\n\30\3\30\3\30\3\31\3\31\3\32\3\32\3\32\3\32"+
"\3\32\3\32\3\32\5\32\u00ff\n\32\3\32\3\32\3\32\3\32\7\32\u0105\n\32\f"+
"\32\16\32\u0108\13\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37\3\37"+
"\3 \3 \3 \3 \3 \3 \5 \u011a\n \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0124\n \3 "+
"\3 \3 \3 \5 \u012a\n \3 \3 \3 \3 \3 \5 \u0131\n \3 \3 \3 \3 \3 \5 \u0138"+
"\n \3 \3 \3 \3 \3 \7 \u013f\n \f \16 \u0142\13 \3 \3 \5 \u0146\n \3!\3"+
"!\3!\7!\u014b\n!\f!\16!\u014e\13!\3\"\3\"\5\"\u0152\n\"\3#\3#\6#\u0156"+
"\n#\r#\16#\u0157\3$\5$\u015b\n$\3$\3$\3$\5$\u0160\n$\3%\3%\5%\u0164\n"+
"%\3%\3%\3%\3%\3&\3&\3&\5&\u016d\n&\3&\3&\3&\3\'\3\'\3\'\5\'\u0175\n\'"+
"\3(\3(\5(\u0179\n(\3(\3(\3(\3(\5(\u017f\n(\3)\3)\3)\3)\3)\3)\3)\5)\u0188"+
"\n)\3*\3*\3*\3*\2\4&\62+\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&("+
"*,.\60\62\64\668:<>@BDFHJLNPR\2\13\4\2\32\32GG\3\2\65\66\3\2AF\3\2\24"+
"\31\4\2\32\36!%\4\2\35\36 \3\2\t\13\4\2//\62\62\3\2>?\u0198\2V\3\2\2"+
"\2\4X\3\2\2\2\6Z\3\2\2\2\bh\3\2\2\2\nj\3\2\2\2\f\u0080\3\2\2\2\16\u0083"+
"\3\2\2\2\20\u0086\3\2\2\2\22\u0089\3\2\2\2\24\u008d\3\2\2\2\26\u0090\3"+
"\2\2\2\30\u0094\3\2\2\2\32\u0096\3\2\2\2\34\u0098\3\2\2\2\36\u00a6\3\2"+
"\2\2 \u00aa\3\2\2\2\"\u00ae\3\2\2\2$\u00b6\3\2\2\2&\u00cb\3\2\2\2(\u00da"+
"\3\2\2\2*\u00e2\3\2\2\2,\u00ea\3\2\2\2.\u00ee\3\2\2\2\60\u00f5\3\2\2\2"+
"\62\u00fe\3\2\2\2\64\u0109\3\2\2\2\66\u010b\3\2\2\28\u010d\3\2\2\2:\u010f"+
"\3\2\2\2<\u0111\3\2\2\2>\u0145\3\2\2\2@\u0147\3\2\2\2B\u0151\3\2\2\2D"+
"\u0153\3\2\2\2F\u015a\3\2\2\2H\u0161\3\2\2\2J\u0169\3\2\2\2L\u0174\3\2"+
"\2\2N\u017e\3\2\2\2P\u0187\3\2\2\2R\u0189\3\2\2\2TW\5\n\6\2UW\5R*\2VT"+
"\3\2\2\2VU\3\2\2\2W\3\3\2\2\2XY\7G\2\2Y\5\3\2\2\2Z[\7G\2\2[\7\3\2\2\2"+
"\\]\5\4\3\2]^\7.\2\2^`\3\2\2\2_\\\3\2\2\2_`\3\2\2\2`a\3\2\2\2ai\t\2\2"+
"\2bc\5\6\4\2cd\7.\2\2df\3\2\2\2eb\3\2\2\2ef\3\2\2\2fg\3\2\2\2gi\t\2\2"+
"\2h_\3\2\2\2he\3\2\2\2i\t\3\2\2\2jl\5\f\7\2km\5\16\b\2lk\3\2\2\2lm\3\2"+
"\2\2mo\3\2\2\2np\5\20\t\2on\3\2\2\2op\3\2\2\2pr\3\2\2\2qs\5\22\n\2rq\3"+
"\2\2\2rs\3\2\2\2su\3\2\2\2tv\5\24\13\2ut\3\2\2\2uv\3\2\2\2vx\3\2\2\2w"+
"y\5\26\f\2xw\3\2\2\2xy\3\2\2\2y{\3\2\2\2z|\5\34\17\2{z\3\2\2\2{|\3\2\2"+
"\2|~\3\2\2\2}\177\7,\2\2~}\3\2\2\2~\177\3\2\2\2\177\13\3\2\2\2\u0080\u0081"+
"\7\3\2\2\u0081\u0082\5\"\22\2\u0082\r\3\2\2\2\u0083\u0084\7\4\2\2\u0084"+
"\u0085\5@!\2\u0085\17\3\2\2\2\u0086\u0087\7\6\2\2\u0087\u0088\5&\24\2"+
"\u0088\21\3\2\2\2\u0089\u008a\7\67\2\2\u008a\u008b\7;\2\2\u008b\u008c"+
"\5(\25\2\u008c\23\3\2\2\2\u008d\u008e\78\2\2\u008e\u008f\5&\24\2\u008f"+
"\25\3\2\2\2\u0090\u0091\7\64\2\2\u0091\u0092\7;\2\2\u0092\u0093\5*\26"+
"\2\u0093\27\3\2\2\2\u0094\u0095\7D\2\2\u0095\31\3\2\2\2\u0096\u0097\7"+
"D\2\2\u0097\33\3\2\2\2\u0098\u00a3\79\2\2\u0099\u009a\5\30\r\2\u009a\u009b"+
"\7-\2\2\u009b\u009d\3\2\2\2\u009c\u0099\3\2\2\2\u009c\u009d\3\2\2\2\u009d"+
"\u009e\3\2\2\2\u009e\u00a4\5\32\16\2\u009f\u00a0\5\32\16\2\u00a0\u00a1"+
"\7:\2\2\u00a1\u00a2\5\30\r\2\u00a2\u00a4\3\2\2\2\u00a3\u009c\3\2\2\2\u00a3"+
"\u009f\3\2\2\2\u00a4\35\3\2\2\2\u00a5\u00a7\7\5\2\2\u00a6\u00a5\3\2\2"+
"\2\u00a6\u00a7\3\2\2\2\u00a7\u00a8\3\2\2\2\u00a8\u00a9\5\6\4\2\u00a9\37"+
"\3\2\2\2\u00aa\u00ac\5\62\32\2\u00ab\u00ad\5\36\20\2\u00ac\u00ab\3\2\2"+
"\2\u00ac\u00ad\3\2\2\2\u00ad!\3\2\2\2\u00ae\u00b3\5 \21\2\u00af\u00b0"+
"\7-\2\2\u00b0\u00b2\5 \21\2\u00b1\u00af\3\2\2\2\u00b2\u00b5\3\2\2\2\u00b3"+
"\u00b1\3\2\2\2\u00b3\u00b4\3\2\2\2\u00b4#\3\2\2\2\u00b5\u00b3\3\2\2\2"+
"\u00b6\u00bb\5\b\5\2\u00b7\u00b8\7-\2\2\u00b8\u00ba\5\b\5\2\u00b9\u00b7"+
"\3\2\2\2\u00ba\u00bd\3\2\2\2\u00bb\u00b9\3\2\2\2\u00bb\u00bc\3\2\2\2\u00bc"+
"%\3\2\2\2\u00bd\u00bb\3\2\2\2\u00be\u00bf\b\24\1\2\u00bf\u00c0\5<\37\2"+
"\u00c0\u00c1\5&\24\5\u00c1\u00cc\3\2\2\2\u00c2\u00cc\5> \2\u00c3\u00c4"+
"\5> \2\u00c4\u00c5\5:\36\2\u00c5\u00c6\5> \2\u00c6\u00cc\3\2\2\2\u00c7"+
"\u00c8\7+\2\2\u00c8\u00c9\5&\24\2\u00c9\u00ca\7*\2\2\u00ca\u00cc\3\2\2"+
"\2\u00cb\u00be\3\2\2\2\u00cb\u00c2\3\2\2\2\u00cb\u00c3\3\2\2\2\u00cb\u00c7"+
"\3\2\2\2\u00cc\u00d7\3\2\2\2\u00cd\u00d1\f\4\2\2\u00ce\u00cf\5:\36\2\u00cf"+
"\u00d0\5&\24\2\u00d0\u00d2\3\2\2\2\u00d1\u00ce\3\2\2\2\u00d2\u00d3\3\2"+
"\2\2\u00d3\u00d1\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4\u00d6\3\2\2\2\u00d5"+
"\u00cd\3\2\2\2\u00d6\u00d9\3\2\2\2\u00d7\u00d5\3\2\2\2\u00d7\u00d8\3\2"+
"\2\2\u00d8\'\3\2\2\2\u00d9\u00d7\3\2\2\2\u00da\u00df\5\62\32\2\u00db\u00dc"+
"\7-\2\2\u00dc\u00de\5\62\32\2\u00dd\u00db\3\2\2\2\u00de\u00e1\3\2\2\2"+
"\u00df\u00dd\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0)\3\2\2\2\u00e1\u00df\3"+
"\2\2\2\u00e2\u00e7\5,\27\2\u00e3\u00e4\7-\2\2\u00e4\u00e6\5,\27\2\u00e5"+
"\u00e3\3\2\2\2\u00e6\u00e9\3\2\2\2\u00e7\u00e5\3\2\2\2\u00e7\u00e8\3\2"+
"\2\2\u00e8+\3\2\2\2\u00e9\u00e7\3\2\2\2\u00ea\u00ec\5\62\32\2\u00eb\u00ed"+
"\t\3\2\2\u00ec\u00eb\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed-\3\2\2\2\u00ee"+
"\u00ef\7G\2\2\u00ef\u00f1\7+\2\2\u00f0\u00f2\5(\25\2\u00f1\u00f0\3\2\2"+
"\2\u00f1\u00f2\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f3\u00f4\7*\2\2\u00f4/\3"+
"\2\2\2\u00f5\u00f6\t\4\2\2\u00f6\61\3\2\2\2\u00f7\u00f8\b\32\1\2\u00f8"+
"\u00f9\58\35\2\u00f9\u00fa\5\62\32\3\u00fa\u00ff\3\2\2\2\u00fb\u00ff\5"+
"\60\31\2\u00fc\u00ff\5\b\5\2\u00fd\u00ff\5.\30\2\u00fe\u00f7\3\2\2\2\u00fe"+
"\u00fb\3\2\2\2\u00fe\u00fc\3\2\2\2\u00fe\u00fd\3\2\2\2\u00ff\u0106\3\2"+
"\2\2\u0100\u0101\f\4\2\2\u0101\u0102\5\66\34\2\u0102\u0103\5\62\32\5\u0103"+
"\u0105\3\2\2\2\u0104\u0100\3\2\2\2\u0105\u0108\3\2\2\2\u0106\u0104\3\2"+
"\2\2\u0106\u0107\3\2\2\2\u0107\63\3\2\2\2\u0108\u0106\3\2\2\2\u0109\u010a"+
"\t\5\2\2\u010a\65\3\2\2\2\u010b\u010c\t\6\2\2\u010c\67\3\2\2\2\u010d\u010e"+
"\t\7\2\2\u010e9\3\2\2\2\u010f\u0110\t\b\2\2\u0110;\3\2\2\2\u0111\u0112"+
"\7\23\2\2\u0112=\3\2\2\2\u0113\u0114\5\62\32\2\u0114\u0115\5\64\33\2\u0115"+
"\u0116\5\62\32\2\u0116\u0146\3\2\2\2\u0117\u0119\5\62\32\2\u0118\u011a"+
"\7\23\2\2\u0119\u0118\3\2\2\2\u0119\u011a\3\2\2\2\u011a\u011b\3\2\2\2"+
"\u011b\u011c\7\20\2\2\u011c\u011d\5\62\32\2\u011d\u011e\7\t\2\2\u011e"+
"\u011f\5\62\32\2\u011f\u0146\3\2\2\2\u0120\u0121\5\62\32\2\u0121\u0123"+
"\7\f\2\2\u0122\u0124\7\23\2\2\u0123\u0122\3\2\2\2\u0123\u0124\3\2\2\2"+
"\u0124\u0125\3\2\2\2\u0125\u0126\7A\2\2\u0126\u0146\3\2\2\2\u0127\u0129"+
"\5\62\32\2\u0128\u012a\7\23\2\2\u0129\u0128\3\2\2\2\u0129\u012a\3\2\2"+
"\2\u012a\u012b\3\2\2\2\u012b\u012c\7\r\2\2\u012c\u012d\5\62\32\2\u012d"+
"\u0146\3\2\2\2\u012e\u0130\5\62\32\2\u012f\u0131\7\23\2\2\u0130\u012f"+
"\3\2\2\2\u0130\u0131\3\2\2\2\u0131\u0132\3\2\2\2\u0132\u0133\7\37\2\2"+
"\u0133\u0134\5\62\32\2\u0134\u0146\3\2\2\2\u0135\u0137\5\62\32\2\u0136"+
"\u0138\7\23\2\2\u0137\u0136\3\2\2\2\u0137\u0138\3\2\2\2\u0138\u0139\3"+
"\2\2\2\u0139\u013a\7\16\2\2\u013a\u013b\7+\2\2\u013b\u0140\5\62\32\2\u013c"+
"\u013d\7-\2\2\u013d\u013f\5\62\32\2\u013e\u013c\3\2\2\2\u013f\u0142\3"+
"\2\2\2\u0140\u013e\3\2\2\2\u0140\u0141\3\2\2\2\u0141\u0143\3\2\2\2\u0142"+
"\u0140\3\2\2\2\u0143\u0144\7*\2\2\u0144\u0146\3\2\2\2\u0145\u0113\3\2"+
"\2\2\u0145\u0117\3\2\2\2\u0145\u0120\3\2\2\2\u0145\u0127\3\2\2\2\u0145"+
"\u012e\3\2\2\2\u0145\u0135\3\2\2\2\u0146?\3\2\2\2\u0147\u014c\5B\"\2\u0148"+
"\u0149\7-\2\2\u0149\u014b\5B\"\2\u014a\u0148\3\2\2\2\u014b\u014e\3\2\2"+
"\2\u014c\u014a\3\2\2\2\u014c\u014d\3\2\2\2\u014dA\3\2\2\2\u014e\u014c"+
"\3\2\2\2\u014f\u0152\5N(\2\u0150\u0152\5D#\2\u0151\u014f\3\2\2\2\u0151"+
"\u0150\3\2\2\2\u0152C\3\2\2\2\u0153\u0155\5N(\2\u0154\u0156\5L\'\2\u0155"+
"\u0154\3\2\2\2\u0156\u0157\3\2\2\2\u0157\u0155\3\2\2\2\u0157\u0158\3\2"+
"\2\2\u0158E\3\2\2\2\u0159\u015b\t\t\2\2\u015a\u0159\3\2\2\2\u015a\u015b"+
"\3\2\2\2\u015b\u015c\3\2\2\2\u015c\u015d\7\61\2\2\u015d\u015f\5N(\2\u015e"+
"\u0160\5P)\2\u015f\u015e\3\2\2\2\u015f\u0160\3\2\2\2\u0160G\3\2\2\2\u0161"+
"\u0163\t\n\2\2\u0162\u0164\7\60\2\2\u0163\u0162\3\2\2\2\u0163\u0164\3"+
"\2\2\2\u0164\u0165\3\2\2\2\u0165\u0166\7\61\2\2\u0166\u0167\5N(\2\u0167"+
"\u0168\5P)\2\u0168I\3\2\2\2\u0169\u016c\7=\2\2\u016a\u016b\t\n\2\2\u016b"+
"\u016d\7\60\2\2\u016c\u016a\3\2\2\2\u016c\u016d\3\2\2\2\u016d\u016e\3"+
"\2\2\2\u016e\u016f\7\61\2\2\u016f\u0170\5N(\2\u0170K\3\2\2\2\u0171\u0175"+
"\5F$\2\u0172\u0175\5H%\2\u0173\u0175\5J&\2\u0174\u0171\3\2\2\2\u0174\u0172"+
"\3\2\2\2\u0174\u0173\3\2\2\2\u0175M\3\2\2\2\u0176\u0178\5\4\3\2\u0177"+
"\u0179\5\36\20\2\u0178\u0177\3\2\2\2\u0178\u0179\3\2\2\2\u0179\u017f\3"+
"\2\2\2\u017a\u017b\7+\2\2\u017b\u017c\5@!\2\u017c\u017d\7*\2\2\u017d\u017f"+
"\3\2\2\2\u017e\u0176\3\2\2\2\u017e\u017a\3\2\2\2\u017fO\3\2\2\2\u0180"+
"\u0181\7@\2\2\u0181\u0188\5&\24\2\u0182\u0183\7\63\2\2\u0183\u0184\7+"+
"\2\2\u0184\u0185\5$\23\2\u0185\u0186\7*\2\2\u0186\u0188\3\2\2\2\u0187"+
"\u0180\3\2\2\2\u0187\u0182\3\2\2\2\u0188Q\3\2\2\2\u0189\u018a\7\7\2\2"+
"\u018a\u018b\7\b\2\2\u018bS\3\2\2\2.V_ehlorux{~\u009c\u00a3\u00a6\u00ac"+
"\u00b3\u00bb\u00cb\u00d3\u00d7\u00df\u00e7\u00ec\u00f1\u00fe\u0106\u0119"+
"\u0123\u0129\u0130\u0137\u0140\u0145\u014c\u0151\u0157\u015a\u015f\u0163"+
"\u016c\u0174\u0178\u017e\u0187";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy