// Generated from java-escape by ANTLR 4.11.1 package main.parsers; 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", "CheckReturnValue"}) public class XGrammarParser extends Parser { static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); public static final int T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, TEXT_FUNC=9, AT_SYM=10, SLASH=11, DSLASH=12, COMMA=13, DQUOTE=14, WILDCARD=15, PERIOD=16, DPERIOD=17, DOLLAR=18, EQ=19, IS=20, AND=21, OR=22, NOT=23, ASSIGN=24, WHERE=25, RETURN=26, LET=27, IN=28, FOR=29, SOME=30, SATISFIES=31, EMPTY=32, VAR=33, JOIN=34, TAGNAME=35, FILENAME=36, ESCAPE=37, STRINGCONST=38, WS=39; public static final int RULE_prog = 0, RULE_ap = 1, RULE_rp = 2, RULE_f = 3, RULE_doc = 4, RULE_xq = 5, RULE_forClause = 6, RULE_letClause = 7, RULE_whereClause = 8, RULE_returnClause = 9, RULE_returnClauseJoin = 10, RULE_condClauseJoin = 11, RULE_attrList = 12, RULE_xqJoin = 13, RULE_join = 14, RULE_cond = 15; private static String[] makeRuleNames() { return new String[] { "prog", "ap", "rp", "f", "doc", "xq", "forClause", "letClause", "whereClause", "returnClause", "returnClauseJoin", "condClauseJoin", "attrList", "xqJoin", "join", "cond" }; } public static final String[] ruleNames = makeRuleNames(); private static String[] makeLiteralNames() { return new String[] { null, "'('", "')'", "'['", "']'", "'<'", "'>'", "'{'", "'}'", "'text()'", "'@'", "'/'", "'//'", "','", "'\"'", "'*'", "'.'", "'..'", "'$'", null, null, "'and'", "'or'", "'not'", "':='", "'where'", "'return'", "'let'", "'in'", "'for'", "'some'", "'satisfies'", "'empty'", null, "'join'" }; } private static final String[] _LITERAL_NAMES = makeLiteralNames(); private static String[] makeSymbolicNames() { return new String[] { null, null, null, null, null, null, null, null, null, "TEXT_FUNC", "AT_SYM", "SLASH", "DSLASH", "COMMA", "DQUOTE", "WILDCARD", "PERIOD", "DPERIOD", "DOLLAR", "EQ", "IS", "AND", "OR", "NOT", "ASSIGN", "WHERE", "RETURN", "LET", "IN", "FOR", "SOME", "SATISFIES", "EMPTY", "VAR", "JOIN", "TAGNAME", "FILENAME", "ESCAPE", "STRINGCONST", "WS" }; } private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); 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] = "<INVALID>"; } } } @Override @Deprecated public String[] getTokenNames() { return tokenNames; } @Override public Vocabulary getVocabulary() { return VOCABULARY; } @Override public String getGrammarFileName() { return "java-escape"; } @Override public String[] getRuleNames() { return ruleNames; } @Override public String getSerializedATN() { return _serializedATN; } @Override public ATN getATN() { return _ATN; } public XGrammarParser(TokenStream input) { super(input); _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); } @SuppressWarnings("CheckReturnValue") public static class ProgContext extends ParserRuleContext { public TerminalNode EOF() { return getToken(XGrammarParser.EOF, 0); } public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public ProgContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_prog; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterProg(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitProg(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitProg(this); else return visitor.visitChildren(this); } } public final ProgContext prog() throws RecognitionException { ProgContext _localctx = new ProgContext(_ctx, getState()); enterRule(_localctx, 0, RULE_prog); int _la; try { enterOuterAlt(_localctx, 1); { setState(33); _errHandler.sync(this); _la = _input.LA(1); do { { { setState(32); xq(0); } } setState(35); _errHandler.sync(this); _la = _input.LA(1); } while ( ((_la) & ~0x3f) == 0 && ((1L << _la) & 352858406946L) != 0 ); setState(37); match(EOF); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class ApContext extends ParserRuleContext { public ApContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ap; } public ApContext() { } public void copyFrom(ApContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class Ap_SlashContext extends ApContext { public DocContext doc() { return getRuleContext(DocContext.class,0); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public RpContext rp() { return getRuleContext(RpContext.class,0); } public Ap_SlashContext(ApContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterAp_Slash(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitAp_Slash(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitAp_Slash(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Ap_DslashContext extends ApContext { public DocContext doc() { return getRuleContext(DocContext.class,0); } public TerminalNode DSLASH() { return getToken(XGrammarParser.DSLASH, 0); } public RpContext rp() { return getRuleContext(RpContext.class,0); } public Ap_DslashContext(ApContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterAp_Dslash(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitAp_Dslash(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitAp_Dslash(this); else return visitor.visitChildren(this); } } public final ApContext ap() throws RecognitionException { ApContext _localctx = new ApContext(_ctx, getState()); enterRule(_localctx, 2, RULE_ap); try { setState(47); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) { case 1: _localctx = new Ap_SlashContext(_localctx); enterOuterAlt(_localctx, 1); { setState(39); doc(); setState(40); match(SLASH); setState(41); rp(0); } break; case 2: _localctx = new Ap_DslashContext(_localctx); enterOuterAlt(_localctx, 2); { setState(43); doc(); setState(44); match(DSLASH); setState(45); rp(0); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class RpContext extends ParserRuleContext { public RpContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_rp; } public RpContext() { } public void copyFrom(RpContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class Rp_DSlashContext extends RpContext { public List<RpContext> rp() { return getRuleContexts(RpContext.class); } public RpContext rp(int i) { return getRuleContext(RpContext.class,i); } public TerminalNode DSLASH() { return getToken(XGrammarParser.DSLASH, 0); } public Rp_DSlashContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_DSlash(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_DSlash(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_DSlash(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_WildContext extends RpContext { public TerminalNode WILDCARD() { return getToken(XGrammarParser.WILDCARD, 0); } public Rp_WildContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Wild(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Wild(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Wild(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_PerContext extends RpContext { public TerminalNode PERIOD() { return getToken(XGrammarParser.PERIOD, 0); } public Rp_PerContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Per(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Per(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Per(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_FilterContext extends RpContext { public RpContext rp() { return getRuleContext(RpContext.class,0); } public FContext f() { return getRuleContext(FContext.class,0); } public Rp_FilterContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Filter(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Filter(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Filter(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_ConcatContext extends RpContext { public List<RpContext> rp() { return getRuleContexts(RpContext.class); } public RpContext rp(int i) { return getRuleContext(RpContext.class,i); } public TerminalNode COMMA() { return getToken(XGrammarParser.COMMA, 0); } public Rp_ConcatContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Concat(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Concat(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Concat(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_TagContext extends RpContext { public TerminalNode TAGNAME() { return getToken(XGrammarParser.TAGNAME, 0); } public Rp_TagContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Tag(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Tag(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Tag(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_TextContext extends RpContext { public TerminalNode TEXT_FUNC() { return getToken(XGrammarParser.TEXT_FUNC, 0); } public Rp_TextContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Text(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Text(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Text(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_DperContext extends RpContext { public TerminalNode DPERIOD() { return getToken(XGrammarParser.DPERIOD, 0); } public Rp_DperContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Dper(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Dper(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Dper(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_SlashContext extends RpContext { public List<RpContext> rp() { return getRuleContexts(RpContext.class); } public RpContext rp(int i) { return getRuleContext(RpContext.class,i); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public Rp_SlashContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Slash(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Slash(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Slash(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_AttrContext extends RpContext { public TerminalNode AT_SYM() { return getToken(XGrammarParser.AT_SYM, 0); } public TerminalNode TAGNAME() { return getToken(XGrammarParser.TAGNAME, 0); } public Rp_AttrContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Attr(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Attr(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Attr(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Rp_ParContext extends RpContext { public RpContext rp() { return getRuleContext(RpContext.class,0); } public Rp_ParContext(RpContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterRp_Par(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitRp_Par(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitRp_Par(this); else return visitor.visitChildren(this); } } public final RpContext rp() throws RecognitionException { return rp(0); } private RpContext rp(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); RpContext _localctx = new RpContext(_ctx, _parentState); RpContext _prevctx = _localctx; int _startState = 4; enterRecursionRule(_localctx, 4, RULE_rp, _p); try { int _alt; enterOuterAlt(_localctx, 1); { setState(61); _errHandler.sync(this); switch (_input.LA(1)) { case TAGNAME: { _localctx = new Rp_TagContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(50); match(TAGNAME); } break; case WILDCARD: { _localctx = new Rp_WildContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(51); match(WILDCARD); } break; case PERIOD: { _localctx = new Rp_PerContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(52); match(PERIOD); } break; case DPERIOD: { _localctx = new Rp_DperContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(53); match(DPERIOD); } break; case TEXT_FUNC: { _localctx = new Rp_TextContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(54); match(TEXT_FUNC); } break; case AT_SYM: { _localctx = new Rp_AttrContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(55); match(AT_SYM); setState(56); match(TAGNAME); } break; case T__0: { _localctx = new Rp_ParContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(57); match(T__0); setState(58); rp(0); setState(59); match(T__1); } break; default: throw new NoViableAltException(this); } _ctx.stop = _input.LT(-1); setState(79); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,4,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { setState(77); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { case 1: { _localctx = new Rp_SlashContext(new RpContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_rp); setState(63); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); setState(64); match(SLASH); setState(65); rp(5); } break; case 2: { _localctx = new Rp_DSlashContext(new RpContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_rp); setState(66); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); setState(67); match(DSLASH); setState(68); rp(4); } break; case 3: { _localctx = new Rp_ConcatContext(new RpContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_rp); setState(69); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); setState(70); match(COMMA); setState(71); rp(2); } break; case 4: { _localctx = new Rp_FilterContext(new RpContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_rp); setState(72); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); setState(73); match(T__2); setState(74); f(0); setState(75); match(T__3); } break; } } } setState(81); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,4,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class FContext extends ParserRuleContext { public FContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_f; } public FContext() { } public void copyFrom(FContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class F_ParContext extends FContext { public FContext f() { return getRuleContext(FContext.class,0); } public F_ParContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Par(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Par(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Par(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_NotContext extends FContext { public TerminalNode NOT() { return getToken(XGrammarParser.NOT, 0); } public FContext f() { return getRuleContext(FContext.class,0); } public F_NotContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Not(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Not(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Not(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_OrContext extends FContext { public List<FContext> f() { return getRuleContexts(FContext.class); } public FContext f(int i) { return getRuleContext(FContext.class,i); } public TerminalNode OR() { return getToken(XGrammarParser.OR, 0); } public F_OrContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Or(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Or(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Or(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_ConstContext extends FContext { public RpContext rp() { return getRuleContext(RpContext.class,0); } public TerminalNode EQ() { return getToken(XGrammarParser.EQ, 0); } public TerminalNode STRINGCONST() { return getToken(XGrammarParser.STRINGCONST, 0); } public F_ConstContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Const(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Const(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Const(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_AndContext extends FContext { public List<FContext> f() { return getRuleContexts(FContext.class); } public FContext f(int i) { return getRuleContext(FContext.class,i); } public TerminalNode AND() { return getToken(XGrammarParser.AND, 0); } public F_AndContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_And(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_And(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_And(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_RpContext extends FContext { public RpContext rp() { return getRuleContext(RpContext.class,0); } public F_RpContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Rp(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Rp(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Rp(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_EqContext extends FContext { public List<RpContext> rp() { return getRuleContexts(RpContext.class); } public RpContext rp(int i) { return getRuleContext(RpContext.class,i); } public TerminalNode EQ() { return getToken(XGrammarParser.EQ, 0); } public F_EqContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Eq(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Eq(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Eq(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class F_IsContext extends FContext { public List<RpContext> rp() { return getRuleContexts(RpContext.class); } public RpContext rp(int i) { return getRuleContext(RpContext.class,i); } public TerminalNode IS() { return getToken(XGrammarParser.IS, 0); } public F_IsContext(FContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterF_Is(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitF_Is(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitF_Is(this); else return visitor.visitChildren(this); } } public final FContext f() throws RecognitionException { return f(0); } private FContext f(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); FContext _localctx = new FContext(_ctx, _parentState); FContext _prevctx = _localctx; int _startState = 6; enterRecursionRule(_localctx, 6, RULE_f, _p); try { int _alt; enterOuterAlt(_localctx, 1); { setState(102); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { case 1: { _localctx = new F_RpContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(83); rp(0); } break; case 2: { _localctx = new F_EqContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(84); rp(0); setState(85); match(EQ); setState(86); rp(0); } break; case 3: { _localctx = new F_IsContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(88); rp(0); setState(89); match(IS); setState(90); rp(0); } break; case 4: { _localctx = new F_ConstContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(92); rp(0); setState(93); match(EQ); setState(94); match(STRINGCONST); } break; case 5: { _localctx = new F_ParContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(96); match(T__0); setState(97); f(0); setState(98); match(T__1); } break; case 6: { _localctx = new F_NotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(100); match(NOT); setState(101); f(1); } break; } _ctx.stop = _input.LT(-1); setState(112); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,7,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { setState(110); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { case 1: { _localctx = new F_OrContext(new FContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_f); setState(104); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); setState(105); match(OR); setState(106); f(4); } break; case 2: { _localctx = new F_AndContext(new FContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_f); setState(107); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); setState(108); match(AND); setState(109); f(3); } break; } } } setState(114); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,7,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class DocContext extends ParserRuleContext { public TerminalNode FILENAME() { return getToken(XGrammarParser.FILENAME, 0); } public DocContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_doc; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterDoc(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitDoc(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitDoc(this); else return visitor.visitChildren(this); } } public final DocContext doc() throws RecognitionException { DocContext _localctx = new DocContext(_ctx, getState()); enterRule(_localctx, 8, RULE_doc); try { enterOuterAlt(_localctx, 1); { setState(115); match(FILENAME); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class XqContext extends ParserRuleContext { public XqContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_xq; } public XqContext() { } public void copyFrom(XqContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class Xq_ConstContext extends XqContext { public TerminalNode STRINGCONST() { return getToken(XGrammarParser.STRINGCONST, 0); } public Xq_ConstContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Const(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Const(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Const(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xp_ParContext extends XqContext { public XqContext xq() { return getRuleContext(XqContext.class,0); } public Xp_ParContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXp_Par(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXp_Par(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXp_Par(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_DslashContext extends XqContext { public XqContext xq() { return getRuleContext(XqContext.class,0); } public TerminalNode DSLASH() { return getToken(XGrammarParser.DSLASH, 0); } public RpContext rp() { return getRuleContext(RpContext.class,0); } public Xq_DslashContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Dslash(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Dslash(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Dslash(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_ConcatContext extends XqContext { public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public TerminalNode COMMA() { return getToken(XGrammarParser.COMMA, 0); } public Xq_ConcatContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Concat(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Concat(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Concat(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_ApContext extends XqContext { public ApContext ap() { return getRuleContext(ApContext.class,0); } public Xq_ApContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Ap(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Ap(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Ap(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_SlashContext extends XqContext { public XqContext xq() { return getRuleContext(XqContext.class,0); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public RpContext rp() { return getRuleContext(RpContext.class,0); } public Xq_SlashContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Slash(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Slash(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Slash(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_VarContext extends XqContext { public TerminalNode VAR() { return getToken(XGrammarParser.VAR, 0); } public Xq_VarContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Var(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Var(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Var(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_FLWRContext extends XqContext { public ForClauseContext forClause() { return getRuleContext(ForClauseContext.class,0); } public ReturnClauseContext returnClause() { return getRuleContext(ReturnClauseContext.class,0); } public LetClauseContext letClause() { return getRuleContext(LetClauseContext.class,0); } public WhereClauseContext whereClause() { return getRuleContext(WhereClauseContext.class,0); } public Xq_FLWRContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_FLWR(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_FLWR(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_FLWR(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_JoinContext extends XqContext { public TerminalNode FOR() { return getToken(XGrammarParser.FOR, 0); } public TerminalNode VAR() { return getToken(XGrammarParser.VAR, 0); } public TerminalNode IN() { return getToken(XGrammarParser.IN, 0); } public JoinContext join() { return getRuleContext(JoinContext.class,0); } public ReturnClauseContext returnClause() { return getRuleContext(ReturnClauseContext.class,0); } public Xq_JoinContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Join(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Join(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Join(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_TagContext extends XqContext { public List<TerminalNode> TAGNAME() { return getTokens(XGrammarParser.TAGNAME); } public TerminalNode TAGNAME(int i) { return getToken(XGrammarParser.TAGNAME, i); } public XqContext xq() { return getRuleContext(XqContext.class,0); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public Xq_TagContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Tag(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Tag(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Tag(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_Tag2Context extends XqContext { public List<TerminalNode> TAGNAME() { return getTokens(XGrammarParser.TAGNAME); } public TerminalNode TAGNAME(int i) { return getToken(XGrammarParser.TAGNAME, i); } public XqContext xq() { return getRuleContext(XqContext.class,0); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public Xq_Tag2Context(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Tag2(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Tag2(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Tag2(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Xq_LetContext extends XqContext { public LetClauseContext letClause() { return getRuleContext(LetClauseContext.class,0); } public XqContext xq() { return getRuleContext(XqContext.class,0); } public Xq_LetContext(XqContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXq_Let(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXq_Let(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXq_Let(this); else return visitor.visitChildren(this); } } public final XqContext xq() throws RecognitionException { return xq(0); } private XqContext xq(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); XqContext _localctx = new XqContext(_ctx, _parentState); XqContext _prevctx = _localctx; int _startState = 10; enterRecursionRule(_localctx, 10, RULE_xq, _p); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(163); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) { case 1: { _localctx = new Xq_ApContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(118); ap(); } break; case 2: { _localctx = new Xp_ParContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(119); match(T__0); setState(120); xq(0); setState(121); match(T__1); } break; case 3: { _localctx = new Xq_TagContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(123); match(T__4); setState(124); match(TAGNAME); setState(125); match(T__5); setState(126); match(T__6); setState(127); xq(0); setState(128); match(T__7); setState(129); match(T__4); setState(130); match(SLASH); setState(131); match(TAGNAME); setState(132); match(T__5); } break; case 4: { _localctx = new Xq_Tag2Context(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(134); match(T__4); setState(135); match(TAGNAME); setState(136); match(T__5); setState(137); xq(0); setState(138); match(T__4); setState(139); match(SLASH); setState(140); match(TAGNAME); setState(141); match(T__5); } break; case 5: { _localctx = new Xq_FLWRContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(143); forClause(); setState(145); _errHandler.sync(this); _la = _input.LA(1); if (_la==LET) { { setState(144); letClause(); } } setState(148); _errHandler.sync(this); _la = _input.LA(1); if (_la==WHERE) { { setState(147); whereClause(); } } setState(150); returnClause(); } break; case 6: { _localctx = new Xq_LetContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(152); letClause(); setState(153); xq(4); } break; case 7: { _localctx = new Xq_JoinContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(155); match(FOR); setState(156); match(VAR); setState(157); match(IN); setState(158); join(); setState(159); returnClause(); } break; case 8: { _localctx = new Xq_VarContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(161); match(VAR); } break; case 9: { _localctx = new Xq_ConstContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(162); match(STRINGCONST); } break; } _ctx.stop = _input.LT(-1); setState(176); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,12,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { setState(174); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { case 1: { _localctx = new Xq_ConcatContext(new XqContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_xq); setState(165); if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); setState(166); match(COMMA); setState(167); xq(9); } break; case 2: { _localctx = new Xq_SlashContext(new XqContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_xq); setState(168); if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); setState(169); match(SLASH); setState(170); rp(0); } break; case 3: { _localctx = new Xq_DslashContext(new XqContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_xq); setState(171); if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); setState(172); match(DSLASH); setState(173); rp(0); } break; } } } setState(178); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,12,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class ForClauseContext extends ParserRuleContext { public TerminalNode FOR() { return getToken(XGrammarParser.FOR, 0); } public List<TerminalNode> VAR() { return getTokens(XGrammarParser.VAR); } public TerminalNode VAR(int i) { return getToken(XGrammarParser.VAR, i); } public List<TerminalNode> IN() { return getTokens(XGrammarParser.IN); } public TerminalNode IN(int i) { return getToken(XGrammarParser.IN, i); } public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public List<TerminalNode> COMMA() { return getTokens(XGrammarParser.COMMA); } public TerminalNode COMMA(int i) { return getToken(XGrammarParser.COMMA, i); } public ForClauseContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forClause; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterForClause(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitForClause(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitForClause(this); else return visitor.visitChildren(this); } } public final ForClauseContext forClause() throws RecognitionException { ForClauseContext _localctx = new ForClauseContext(_ctx, getState()); enterRule(_localctx, 12, RULE_forClause); int _la; try { enterOuterAlt(_localctx, 1); { setState(179); match(FOR); setState(189); _errHandler.sync(this); _la = _input.LA(1); do { { { setState(180); match(VAR); setState(181); match(IN); setState(182); xq(0); setState(186); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(183); match(COMMA); } } setState(188); _errHandler.sync(this); _la = _input.LA(1); } } } setState(191); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==VAR ); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class LetClauseContext extends ParserRuleContext { public TerminalNode LET() { return getToken(XGrammarParser.LET, 0); } public List<TerminalNode> VAR() { return getTokens(XGrammarParser.VAR); } public TerminalNode VAR(int i) { return getToken(XGrammarParser.VAR, i); } public List<TerminalNode> ASSIGN() { return getTokens(XGrammarParser.ASSIGN); } public TerminalNode ASSIGN(int i) { return getToken(XGrammarParser.ASSIGN, i); } public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public List<TerminalNode> COMMA() { return getTokens(XGrammarParser.COMMA); } public TerminalNode COMMA(int i) { return getToken(XGrammarParser.COMMA, i); } public LetClauseContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_letClause; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterLetClause(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitLetClause(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitLetClause(this); else return visitor.visitChildren(this); } } public final LetClauseContext letClause() throws RecognitionException { LetClauseContext _localctx = new LetClauseContext(_ctx, getState()); enterRule(_localctx, 14, RULE_letClause); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(193); match(LET); setState(203); _errHandler.sync(this); _alt = 1; do { switch (_alt) { case 1: { { setState(194); match(VAR); setState(195); match(ASSIGN); setState(196); xq(0); setState(200); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(197); match(COMMA); } } setState(202); _errHandler.sync(this); _la = _input.LA(1); } } } break; default: throw new NoViableAltException(this); } setState(205); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,16,_ctx); } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class WhereClauseContext extends ParserRuleContext { public TerminalNode WHERE() { return getToken(XGrammarParser.WHERE, 0); } public CondContext cond() { return getRuleContext(CondContext.class,0); } public WhereClauseContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_whereClause; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterWhereClause(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitWhereClause(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitWhereClause(this); else return visitor.visitChildren(this); } } public final WhereClauseContext whereClause() throws RecognitionException { WhereClauseContext _localctx = new WhereClauseContext(_ctx, getState()); enterRule(_localctx, 16, RULE_whereClause); try { enterOuterAlt(_localctx, 1); { setState(207); match(WHERE); setState(208); cond(0); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class ReturnClauseContext extends ParserRuleContext { public TerminalNode RETURN() { return getToken(XGrammarParser.RETURN, 0); } public XqContext xq() { return getRuleContext(XqContext.class,0); } public ReturnClauseContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_returnClause; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterReturnClause(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitReturnClause(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitReturnClause(this); else return visitor.visitChildren(this); } } public final ReturnClauseContext returnClause() throws RecognitionException { ReturnClauseContext _localctx = new ReturnClauseContext(_ctx, getState()); enterRule(_localctx, 18, RULE_returnClause); try { enterOuterAlt(_localctx, 1); { setState(210); match(RETURN); setState(211); xq(0); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class ReturnClauseJoinContext extends ParserRuleContext { public ReturnClauseJoinContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_returnClauseJoin; } public ReturnClauseJoinContext() { } public void copyFrom(ReturnClauseJoinContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class Join_concatContext extends ReturnClauseJoinContext { public List<ReturnClauseJoinContext> returnClauseJoin() { return getRuleContexts(ReturnClauseJoinContext.class); } public ReturnClauseJoinContext returnClauseJoin(int i) { return getRuleContext(ReturnClauseJoinContext.class,i); } public TerminalNode COMMA() { return getToken(XGrammarParser.COMMA, 0); } public Join_concatContext(ReturnClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_concat(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_concat(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_concat(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_tag_no_constrContext extends ReturnClauseJoinContext { public List<TerminalNode> TAGNAME() { return getTokens(XGrammarParser.TAGNAME); } public TerminalNode TAGNAME(int i) { return getToken(XGrammarParser.TAGNAME, i); } public ReturnClauseJoinContext returnClauseJoin() { return getRuleContext(ReturnClauseJoinContext.class,0); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public Join_tag_no_constrContext(ReturnClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_tag_no_constr(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_tag_no_constr(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_tag_no_constr(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_tag_constrContext extends ReturnClauseJoinContext { public List<TerminalNode> TAGNAME() { return getTokens(XGrammarParser.TAGNAME); } public TerminalNode TAGNAME(int i) { return getToken(XGrammarParser.TAGNAME, i); } public ReturnClauseJoinContext returnClauseJoin() { return getRuleContext(ReturnClauseJoinContext.class,0); } public TerminalNode SLASH() { return getToken(XGrammarParser.SLASH, 0); } public Join_tag_constrContext(ReturnClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_tag_constr(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_tag_constr(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_tag_constr(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_apContext extends ReturnClauseJoinContext { public ApContext ap() { return getRuleContext(ApContext.class,0); } public Join_apContext(ReturnClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_ap(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_ap(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_ap(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_returnContext extends ReturnClauseJoinContext { public TerminalNode VAR() { return getToken(XGrammarParser.VAR, 0); } public Join_returnContext(ReturnClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_return(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_return(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_return(this); else return visitor.visitChildren(this); } } public final ReturnClauseJoinContext returnClauseJoin() throws RecognitionException { return returnClauseJoin(0); } private ReturnClauseJoinContext returnClauseJoin(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); ReturnClauseJoinContext _localctx = new ReturnClauseJoinContext(_ctx, _parentState); ReturnClauseJoinContext _prevctx = _localctx; int _startState = 20; enterRecursionRule(_localctx, 20, RULE_returnClauseJoin, _p); try { int _alt; enterOuterAlt(_localctx, 1); { setState(236); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) { case 1: { _localctx = new Join_returnContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(214); match(VAR); } break; case 2: { _localctx = new Join_tag_constrContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(215); match(T__4); setState(216); match(TAGNAME); setState(217); match(T__5); setState(218); match(T__6); setState(219); returnClauseJoin(0); setState(220); match(T__7); setState(221); match(T__4); setState(222); match(SLASH); setState(223); match(TAGNAME); setState(224); match(T__5); } break; case 3: { _localctx = new Join_tag_no_constrContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(226); match(T__4); setState(227); match(TAGNAME); setState(228); match(T__5); setState(229); returnClauseJoin(0); setState(230); match(T__4); setState(231); match(SLASH); setState(232); match(TAGNAME); setState(233); match(T__5); } break; case 4: { _localctx = new Join_apContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(235); ap(); } break; } _ctx.stop = _input.LT(-1); setState(243); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,18,_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 Join_concatContext(new ReturnClauseJoinContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_returnClauseJoin); setState(238); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); setState(239); match(COMMA); setState(240); returnClauseJoin(5); } } } setState(245); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,18,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class CondClauseJoinContext extends ParserRuleContext { public CondClauseJoinContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_condClauseJoin; } public CondClauseJoinContext() { } public void copyFrom(CondClauseJoinContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class Join_cond_var_eqContext extends CondClauseJoinContext { public List<TerminalNode> VAR() { return getTokens(XGrammarParser.VAR); } public TerminalNode VAR(int i) { return getToken(XGrammarParser.VAR, i); } public TerminalNode EQ() { return getToken(XGrammarParser.EQ, 0); } public Join_cond_var_eqContext(CondClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_cond_var_eq(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_cond_var_eq(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_cond_var_eq(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_cond_var_const_eqContext extends CondClauseJoinContext { public TerminalNode VAR() { return getToken(XGrammarParser.VAR, 0); } public TerminalNode EQ() { return getToken(XGrammarParser.EQ, 0); } public TerminalNode STRINGCONST() { return getToken(XGrammarParser.STRINGCONST, 0); } public Join_cond_var_const_eqContext(CondClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_cond_var_const_eq(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_cond_var_const_eq(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_cond_var_const_eq(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_cond_const_eqContext extends CondClauseJoinContext { public List<TerminalNode> STRINGCONST() { return getTokens(XGrammarParser.STRINGCONST); } public TerminalNode STRINGCONST(int i) { return getToken(XGrammarParser.STRINGCONST, i); } public TerminalNode EQ() { return getToken(XGrammarParser.EQ, 0); } public Join_cond_const_eqContext(CondClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_cond_const_eq(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_cond_const_eq(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_cond_const_eq(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Join_cond_andContext extends CondClauseJoinContext { public List<CondClauseJoinContext> condClauseJoin() { return getRuleContexts(CondClauseJoinContext.class); } public CondClauseJoinContext condClauseJoin(int i) { return getRuleContext(CondClauseJoinContext.class,i); } public TerminalNode AND() { return getToken(XGrammarParser.AND, 0); } public Join_cond_andContext(CondClauseJoinContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin_cond_and(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin_cond_and(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin_cond_and(this); else return visitor.visitChildren(this); } } public final CondClauseJoinContext condClauseJoin() throws RecognitionException { return condClauseJoin(0); } private CondClauseJoinContext condClauseJoin(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); CondClauseJoinContext _localctx = new CondClauseJoinContext(_ctx, _parentState); CondClauseJoinContext _prevctx = _localctx; int _startState = 22; enterRecursionRule(_localctx, 22, RULE_condClauseJoin, _p); try { int _alt; enterOuterAlt(_localctx, 1); { setState(259); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) { case 1: { _localctx = new Join_cond_var_eqContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(247); match(VAR); setState(248); match(EQ); setState(249); match(VAR); } break; case 2: { _localctx = new Join_cond_var_const_eqContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(250); match(VAR); setState(251); match(EQ); setState(252); match(STRINGCONST); } break; case 3: { _localctx = new Join_cond_var_const_eqContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(253); match(STRINGCONST); setState(254); match(EQ); setState(255); match(VAR); } break; case 4: { _localctx = new Join_cond_const_eqContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(256); match(STRINGCONST); setState(257); match(EQ); setState(258); match(STRINGCONST); } break; } _ctx.stop = _input.LT(-1); setState(266); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,20,_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 Join_cond_andContext(new CondClauseJoinContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_condClauseJoin); setState(261); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); setState(262); match(AND); setState(263); condClauseJoin(2); } } } setState(268); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,20,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class AttrListContext extends ParserRuleContext { public List<TerminalNode> TAGNAME() { return getTokens(XGrammarParser.TAGNAME); } public TerminalNode TAGNAME(int i) { return getToken(XGrammarParser.TAGNAME, i); } public List<TerminalNode> COMMA() { return getTokens(XGrammarParser.COMMA); } public TerminalNode COMMA(int i) { return getToken(XGrammarParser.COMMA, i); } public AttrListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_attrList; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterAttrList(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitAttrList(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitAttrList(this); else return visitor.visitChildren(this); } } public final AttrListContext attrList() throws RecognitionException { AttrListContext _localctx = new AttrListContext(_ctx, getState()); enterRule(_localctx, 24, RULE_attrList); int _la; try { enterOuterAlt(_localctx, 1); { setState(269); match(T__2); setState(277); _errHandler.sync(this); _la = _input.LA(1); do { { { setState(270); match(TAGNAME); setState(274); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(271); match(COMMA); } } setState(276); _errHandler.sync(this); _la = _input.LA(1); } } } setState(279); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==TAGNAME ); setState(281); match(T__3); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class XqJoinContext extends ParserRuleContext { public ForClauseContext forClause() { return getRuleContext(ForClauseContext.class,0); } public ReturnClauseContext returnClause() { return getRuleContext(ReturnClauseContext.class,0); } public WhereClauseContext whereClause() { return getRuleContext(WhereClauseContext.class,0); } public XqJoinContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_xqJoin; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterXqJoin(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitXqJoin(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitXqJoin(this); else return visitor.visitChildren(this); } } public final XqJoinContext xqJoin() throws RecognitionException { XqJoinContext _localctx = new XqJoinContext(_ctx, getState()); enterRule(_localctx, 26, RULE_xqJoin); int _la; try { enterOuterAlt(_localctx, 1); { setState(283); forClause(); setState(285); _errHandler.sync(this); _la = _input.LA(1); if (_la==WHERE) { { setState(284); whereClause(); } } setState(287); returnClause(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class JoinContext extends ParserRuleContext { public TerminalNode JOIN() { return getToken(XGrammarParser.JOIN, 0); } public List<TerminalNode> COMMA() { return getTokens(XGrammarParser.COMMA); } public TerminalNode COMMA(int i) { return getToken(XGrammarParser.COMMA, i); } public List<JoinContext> join() { return getRuleContexts(JoinContext.class); } public JoinContext join(int i) { return getRuleContext(JoinContext.class,i); } public List<XqJoinContext> xqJoin() { return getRuleContexts(XqJoinContext.class); } public XqJoinContext xqJoin(int i) { return getRuleContext(XqJoinContext.class,i); } public List<AttrListContext> attrList() { return getRuleContexts(AttrListContext.class); } public AttrListContext attrList(int i) { return getRuleContext(AttrListContext.class,i); } public JoinContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_join; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterJoin(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitJoin(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitJoin(this); else return visitor.visitChildren(this); } } public final JoinContext join() throws RecognitionException { JoinContext _localctx = new JoinContext(_ctx, getState()); enterRule(_localctx, 28, RULE_join); int _la; try { enterOuterAlt(_localctx, 1); { setState(289); match(JOIN); setState(290); match(T__0); setState(293); _errHandler.sync(this); switch (_input.LA(1)) { case JOIN: { setState(291); join(); } break; case FOR: { setState(292); xqJoin(); } break; default: throw new NoViableAltException(this); } setState(295); match(COMMA); setState(298); _errHandler.sync(this); switch (_input.LA(1)) { case JOIN: { setState(296); join(); } break; case FOR: { setState(297); xqJoin(); } break; default: throw new NoViableAltException(this); } setState(300); match(COMMA); setState(308); _errHandler.sync(this); _la = _input.LA(1); do { { { setState(301); attrList(); setState(305); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(302); match(COMMA); } } setState(307); _errHandler.sync(this); _la = _input.LA(1); } } } setState(310); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==T__2 ); setState(312); match(T__1); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @SuppressWarnings("CheckReturnValue") public static class CondContext extends ParserRuleContext { public CondContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_cond; } public CondContext() { } public void copyFrom(CondContext ctx) { super.copyFrom(ctx); } } @SuppressWarnings("CheckReturnValue") public static class Cond_AndContext extends CondContext { public List<CondContext> cond() { return getRuleContexts(CondContext.class); } public CondContext cond(int i) { return getRuleContext(CondContext.class,i); } public TerminalNode AND() { return getToken(XGrammarParser.AND, 0); } public Cond_AndContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_And(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_And(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_And(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_EqContext extends CondContext { public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public TerminalNode EQ() { return getToken(XGrammarParser.EQ, 0); } public Cond_EqContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Eq(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Eq(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Eq(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_IsContext extends CondContext { public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public TerminalNode IS() { return getToken(XGrammarParser.IS, 0); } public Cond_IsContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Is(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Is(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Is(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_SomeContext extends CondContext { public TerminalNode SOME() { return getToken(XGrammarParser.SOME, 0); } public TerminalNode SATISFIES() { return getToken(XGrammarParser.SATISFIES, 0); } public CondContext cond() { return getRuleContext(CondContext.class,0); } public List<TerminalNode> VAR() { return getTokens(XGrammarParser.VAR); } public TerminalNode VAR(int i) { return getToken(XGrammarParser.VAR, i); } public List<TerminalNode> IN() { return getTokens(XGrammarParser.IN); } public TerminalNode IN(int i) { return getToken(XGrammarParser.IN, i); } public List<XqContext> xq() { return getRuleContexts(XqContext.class); } public XqContext xq(int i) { return getRuleContext(XqContext.class,i); } public List<TerminalNode> COMMA() { return getTokens(XGrammarParser.COMMA); } public TerminalNode COMMA(int i) { return getToken(XGrammarParser.COMMA, i); } public Cond_SomeContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Some(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Some(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Some(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_NotContext extends CondContext { public TerminalNode NOT() { return getToken(XGrammarParser.NOT, 0); } public CondContext cond() { return getRuleContext(CondContext.class,0); } public Cond_NotContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Not(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Not(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Not(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_ParContext extends CondContext { public CondContext cond() { return getRuleContext(CondContext.class,0); } public Cond_ParContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Par(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Par(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Par(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_EmptyContext extends CondContext { public TerminalNode EMPTY() { return getToken(XGrammarParser.EMPTY, 0); } public XqContext xq() { return getRuleContext(XqContext.class,0); } public Cond_EmptyContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Empty(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Empty(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Empty(this); else return visitor.visitChildren(this); } } @SuppressWarnings("CheckReturnValue") public static class Cond_OrContext extends CondContext { public List<CondContext> cond() { return getRuleContexts(CondContext.class); } public CondContext cond(int i) { return getRuleContext(CondContext.class,i); } public TerminalNode OR() { return getToken(XGrammarParser.OR, 0); } public Cond_OrContext(CondContext ctx) { copyFrom(ctx); } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).enterCond_Or(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof XGrammarListener ) ((XGrammarListener)listener).exitCond_Or(this); } @Override public <T> T accept(ParseTreeVisitor<? extends T> visitor) { if ( visitor instanceof XGrammarVisitor ) return ((XGrammarVisitor<? extends T>)visitor).visitCond_Or(this); else return visitor.visitChildren(this); } } public final CondContext cond() throws RecognitionException { return cond(0); } private CondContext cond(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); CondContext _localctx = new CondContext(_ctx, _parentState); CondContext _prevctx = _localctx; int _startState = 30; enterRecursionRule(_localctx, 30, RULE_cond, _p); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(351); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) { case 1: { _localctx = new Cond_EqContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(315); xq(0); setState(316); match(EQ); setState(317); xq(0); } break; case 2: { _localctx = new Cond_IsContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(319); xq(0); setState(320); match(IS); setState(321); xq(0); } break; case 3: { _localctx = new Cond_EmptyContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(323); match(EMPTY); setState(324); match(T__0); setState(325); xq(0); setState(326); match(T__1); } break; case 4: { _localctx = new Cond_SomeContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(328); match(SOME); setState(338); _errHandler.sync(this); _la = _input.LA(1); do { { { setState(329); match(VAR); setState(330); match(IN); setState(331); xq(0); setState(335); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(332); match(COMMA); } } setState(337); _errHandler.sync(this); _la = _input.LA(1); } } } setState(340); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==VAR ); setState(342); match(SATISFIES); setState(343); cond(3); } break; case 5: { _localctx = new Cond_ParContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(345); match(T__0); setState(346); cond(0); setState(347); match(T__1); } break; case 6: { _localctx = new Cond_NotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; setState(349); match(NOT); setState(350); cond(1); } break; } _ctx.stop = _input.LT(-1); setState(361); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,32,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { setState(359); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) { case 1: { _localctx = new Cond_AndContext(new CondContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_cond); setState(353); if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); setState(354); match(AND); setState(355); cond(9); } break; case 2: { _localctx = new Cond_OrContext(new CondContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_cond); setState(356); if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); setState(357); match(OR); setState(358); cond(8); } break; } } } setState(363); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,32,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { case 2: return rp_sempred((RpContext)_localctx, predIndex); case 3: return f_sempred((FContext)_localctx, predIndex); case 5: return xq_sempred((XqContext)_localctx, predIndex); case 10: return returnClauseJoin_sempred((ReturnClauseJoinContext)_localctx, predIndex); case 11: return condClauseJoin_sempred((CondClauseJoinContext)_localctx, predIndex); case 15: return cond_sempred((CondContext)_localctx, predIndex); } return true; } private boolean rp_sempred(RpContext _localctx, int predIndex) { switch (predIndex) { case 0: return precpred(_ctx, 4); case 1: return precpred(_ctx, 3); case 2: return precpred(_ctx, 1); case 3: return precpred(_ctx, 2); } return true; } private boolean f_sempred(FContext _localctx, int predIndex) { switch (predIndex) { case 4: return precpred(_ctx, 3); case 5: return precpred(_ctx, 2); } return true; } private boolean xq_sempred(XqContext _localctx, int predIndex) { switch (predIndex) { case 6: return precpred(_ctx, 8); case 7: return precpred(_ctx, 10); case 8: return precpred(_ctx, 9); } return true; } private boolean returnClauseJoin_sempred(ReturnClauseJoinContext _localctx, int predIndex) { switch (predIndex) { case 9: return precpred(_ctx, 4); } return true; } private boolean condClauseJoin_sempred(CondClauseJoinContext _localctx, int predIndex) { switch (predIndex) { case 10: return precpred(_ctx, 1); } return true; } private boolean cond_sempred(CondContext _localctx, int predIndex) { switch (predIndex) { case 11: return precpred(_ctx, 8); case 12: return precpred(_ctx, 7); } return true; } public static final String _serializedATN = "\u0004\u0001\'\u016d\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+ "\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0002"+ "\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007\u0002"+ "\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b\u0002"+ "\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007\u000f"+ "\u0001\u0000\u0004\u0000\"\b\u0000\u000b\u0000\f\u0000#\u0001\u0000\u0001"+ "\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ "\u0001\u0001\u0001\u0001\u0001\u0003\u00010\b\u0001\u0001\u0002\u0001"+ "\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+ "\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0003\u0002>\b"+ "\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+ "\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+ "\u0002\u0001\u0002\u0001\u0002\u0005\u0002N\b\u0002\n\u0002\f\u0002Q\t"+ "\u0002\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001"+ "\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001"+ "\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001"+ "\u0003\u0001\u0003\u0001\u0003\u0003\u0003g\b\u0003\u0001\u0003\u0001"+ "\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0005\u0003o\b"+ "\u0003\n\u0003\f\u0003r\t\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u0092\b\u0005\u0001\u0005\u0003"+ "\u0005\u0095\b\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u00a4\b\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ "\u0005\u0001\u0005\u0005\u0005\u00af\b\u0005\n\u0005\f\u0005\u00b2\t\u0005"+ "\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0005\u0006"+ "\u00b9\b\u0006\n\u0006\f\u0006\u00bc\t\u0006\u0004\u0006\u00be\b\u0006"+ "\u000b\u0006\f\u0006\u00bf\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007"+ "\u0001\u0007\u0005\u0007\u00c7\b\u0007\n\u0007\f\u0007\u00ca\t\u0007\u0004"+ "\u0007\u00cc\b\u0007\u000b\u0007\f\u0007\u00cd\u0001\b\u0001\b\u0001\b"+ "\u0001\t\u0001\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ "\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ "\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0003"+ "\n\u00ed\b\n\u0001\n\u0001\n\u0001\n\u0005\n\u00f2\b\n\n\n\f\n\u00f5\t"+ "\n\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ "\u0001\u000b\u0003\u000b\u0104\b\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ "\u0005\u000b\u0109\b\u000b\n\u000b\f\u000b\u010c\t\u000b\u0001\f\u0001"+ "\f\u0001\f\u0005\f\u0111\b\f\n\f\f\f\u0114\t\f\u0004\f\u0116\b\f\u000b"+ "\f\f\f\u0117\u0001\f\u0001\f\u0001\r\u0001\r\u0003\r\u011e\b\r\u0001\r"+ "\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0003\u000e\u0126"+ "\b\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0003\u000e\u012b\b\u000e"+ "\u0001\u000e\u0001\u000e\u0001\u000e\u0005\u000e\u0130\b\u000e\n\u000e"+ "\f\u000e\u0133\t\u000e\u0004\u000e\u0135\b\u000e\u000b\u000e\f\u000e\u0136"+ "\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ "\u0001\u000f\u0001\u000f\u0001\u000f\u0005\u000f\u014e\b\u000f\n\u000f"+ "\f\u000f\u0151\t\u000f\u0004\u000f\u0153\b\u000f\u000b\u000f\f\u000f\u0154"+ "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+ "\u0001\u000f\u0001\u000f\u0001\u000f\u0003\u000f\u0160\b\u000f\u0001\u000f"+ "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0005\u000f"+ "\u0168\b\u000f\n\u000f\f\u000f\u016b\t\u000f\u0001\u000f\u0000\u0006\u0004"+ "\u0006\n\u0014\u0016\u001e\u0010\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010"+ "\u0012\u0014\u0016\u0018\u001a\u001c\u001e\u0000\u0000\u0198\u0000!\u0001"+ "\u0000\u0000\u0000\u0002/\u0001\u0000\u0000\u0000\u0004=\u0001\u0000\u0000"+ "\u0000\u0006f\u0001\u0000\u0000\u0000\bs\u0001\u0000\u0000\u0000\n\u00a3"+ "\u0001\u0000\u0000\u0000\f\u00b3\u0001\u0000\u0000\u0000\u000e\u00c1\u0001"+ "\u0000\u0000\u0000\u0010\u00cf\u0001\u0000\u0000\u0000\u0012\u00d2\u0001"+ "\u0000\u0000\u0000\u0014\u00ec\u0001\u0000\u0000\u0000\u0016\u0103\u0001"+ "\u0000\u0000\u0000\u0018\u010d\u0001\u0000\u0000\u0000\u001a\u011b\u0001"+ "\u0000\u0000\u0000\u001c\u0121\u0001\u0000\u0000\u0000\u001e\u015f\u0001"+ "\u0000\u0000\u0000 \"\u0003\n\u0005\u0000! \u0001\u0000\u0000\u0000\""+ "#\u0001\u0000\u0000\u0000#!\u0001\u0000\u0000\u0000#$\u0001\u0000\u0000"+ "\u0000$%\u0001\u0000\u0000\u0000%&\u0005\u0000\u0000\u0001&\u0001\u0001"+ "\u0000\u0000\u0000\'(\u0003\b\u0004\u0000()\u0005\u000b\u0000\u0000)*"+ "\u0003\u0004\u0002\u0000*0\u0001\u0000\u0000\u0000+,\u0003\b\u0004\u0000"+ ",-\u0005\f\u0000\u0000-.\u0003\u0004\u0002\u0000.0\u0001\u0000\u0000\u0000"+ "/\'\u0001\u0000\u0000\u0000/+\u0001\u0000\u0000\u00000\u0003\u0001\u0000"+ "\u0000\u000012\u0006\u0002\uffff\uffff\u00002>\u0005#\u0000\u00003>\u0005"+ "\u000f\u0000\u00004>\u0005\u0010\u0000\u00005>\u0005\u0011\u0000\u0000"+ "6>\u0005\t\u0000\u000078\u0005\n\u0000\u00008>\u0005#\u0000\u00009:\u0005"+ "\u0001\u0000\u0000:;\u0003\u0004\u0002\u0000;<\u0005\u0002\u0000\u0000"+ "<>\u0001\u0000\u0000\u0000=1\u0001\u0000\u0000\u0000=3\u0001\u0000\u0000"+ "\u0000=4\u0001\u0000\u0000\u0000=5\u0001\u0000\u0000\u0000=6\u0001\u0000"+ "\u0000\u0000=7\u0001\u0000\u0000\u0000=9\u0001\u0000\u0000\u0000>O\u0001"+ "\u0000\u0000\u0000?@\n\u0004\u0000\u0000@A\u0005\u000b\u0000\u0000AN\u0003"+ "\u0004\u0002\u0005BC\n\u0003\u0000\u0000CD\u0005\f\u0000\u0000DN\u0003"+ "\u0004\u0002\u0004EF\n\u0001\u0000\u0000FG\u0005\r\u0000\u0000GN\u0003"+ "\u0004\u0002\u0002HI\n\u0002\u0000\u0000IJ\u0005\u0003\u0000\u0000JK\u0003"+ "\u0006\u0003\u0000KL\u0005\u0004\u0000\u0000LN\u0001\u0000\u0000\u0000"+ "M?\u0001\u0000\u0000\u0000MB\u0001\u0000\u0000\u0000ME\u0001\u0000\u0000"+ "\u0000MH\u0001\u0000\u0000\u0000NQ\u0001\u0000\u0000\u0000OM\u0001\u0000"+ "\u0000\u0000OP\u0001\u0000\u0000\u0000P\u0005\u0001\u0000\u0000\u0000"+ "QO\u0001\u0000\u0000\u0000RS\u0006\u0003\uffff\uffff\u0000Sg\u0003\u0004"+ "\u0002\u0000TU\u0003\u0004\u0002\u0000UV\u0005\u0013\u0000\u0000VW\u0003"+ "\u0004\u0002\u0000Wg\u0001\u0000\u0000\u0000XY\u0003\u0004\u0002\u0000"+ "YZ\u0005\u0014\u0000\u0000Z[\u0003\u0004\u0002\u0000[g\u0001\u0000\u0000"+ "\u0000\\]\u0003\u0004\u0002\u0000]^\u0005\u0013\u0000\u0000^_\u0005&\u0000"+ "\u0000_g\u0001\u0000\u0000\u0000`a\u0005\u0001\u0000\u0000ab\u0003\u0006"+ "\u0003\u0000bc\u0005\u0002\u0000\u0000cg\u0001\u0000\u0000\u0000de\u0005"+ "\u0017\u0000\u0000eg\u0003\u0006\u0003\u0001fR\u0001\u0000\u0000\u0000"+ "fT\u0001\u0000\u0000\u0000fX\u0001\u0000\u0000\u0000f\\\u0001\u0000\u0000"+ "\u0000f`\u0001\u0000\u0000\u0000fd\u0001\u0000\u0000\u0000gp\u0001\u0000"+ "\u0000\u0000hi\n\u0003\u0000\u0000ij\u0005\u0016\u0000\u0000jo\u0003\u0006"+ "\u0003\u0004kl\n\u0002\u0000\u0000lm\u0005\u0015\u0000\u0000mo\u0003\u0006"+ "\u0003\u0003nh\u0001\u0000\u0000\u0000nk\u0001\u0000\u0000\u0000or\u0001"+ "\u0000\u0000\u0000pn\u0001\u0000\u0000\u0000pq\u0001\u0000\u0000\u0000"+ "q\u0007\u0001\u0000\u0000\u0000rp\u0001\u0000\u0000\u0000st\u0005$\u0000"+ "\u0000t\t\u0001\u0000\u0000\u0000uv\u0006\u0005\uffff\uffff\u0000v\u00a4"+ "\u0003\u0002\u0001\u0000wx\u0005\u0001\u0000\u0000xy\u0003\n\u0005\u0000"+ "yz\u0005\u0002\u0000\u0000z\u00a4\u0001\u0000\u0000\u0000{|\u0005\u0005"+ "\u0000\u0000|}\u0005#\u0000\u0000}~\u0005\u0006\u0000\u0000~\u007f\u0005"+ "\u0007\u0000\u0000\u007f\u0080\u0003\n\u0005\u0000\u0080\u0081\u0005\b"+ "\u0000\u0000\u0081\u0082\u0005\u0005\u0000\u0000\u0082\u0083\u0005\u000b"+ "\u0000\u0000\u0083\u0084\u0005#\u0000\u0000\u0084\u0085\u0005\u0006\u0000"+ "\u0000\u0085\u00a4\u0001\u0000\u0000\u0000\u0086\u0087\u0005\u0005\u0000"+ "\u0000\u0087\u0088\u0005#\u0000\u0000\u0088\u0089\u0005\u0006\u0000\u0000"+ "\u0089\u008a\u0003\n\u0005\u0000\u008a\u008b\u0005\u0005\u0000\u0000\u008b"+ "\u008c\u0005\u000b\u0000\u0000\u008c\u008d\u0005#\u0000\u0000\u008d\u008e"+ "\u0005\u0006\u0000\u0000\u008e\u00a4\u0001\u0000\u0000\u0000\u008f\u0091"+ "\u0003\f\u0006\u0000\u0090\u0092\u0003\u000e\u0007\u0000\u0091\u0090\u0001"+ "\u0000\u0000\u0000\u0091\u0092\u0001\u0000\u0000\u0000\u0092\u0094\u0001"+ "\u0000\u0000\u0000\u0093\u0095\u0003\u0010\b\u0000\u0094\u0093\u0001\u0000"+ "\u0000\u0000\u0094\u0095\u0001\u0000\u0000\u0000\u0095\u0096\u0001\u0000"+ "\u0000\u0000\u0096\u0097\u0003\u0012\t\u0000\u0097\u00a4\u0001\u0000\u0000"+ "\u0000\u0098\u0099\u0003\u000e\u0007\u0000\u0099\u009a\u0003\n\u0005\u0004"+ "\u009a\u00a4\u0001\u0000\u0000\u0000\u009b\u009c\u0005\u001d\u0000\u0000"+ "\u009c\u009d\u0005!\u0000\u0000\u009d\u009e\u0005\u001c\u0000\u0000\u009e"+ "\u009f\u0003\u001c\u000e\u0000\u009f\u00a0\u0003\u0012\t\u0000\u00a0\u00a4"+ "\u0001\u0000\u0000\u0000\u00a1\u00a4\u0005!\u0000\u0000\u00a2\u00a4\u0005"+ "&\u0000\u0000\u00a3u\u0001\u0000\u0000\u0000\u00a3w\u0001\u0000\u0000"+ "\u0000\u00a3{\u0001\u0000\u0000\u0000\u00a3\u0086\u0001\u0000\u0000\u0000"+ "\u00a3\u008f\u0001\u0000\u0000\u0000\u00a3\u0098\u0001\u0000\u0000\u0000"+ "\u00a3\u009b\u0001\u0000\u0000\u0000\u00a3\u00a1\u0001\u0000\u0000\u0000"+ "\u00a3\u00a2\u0001\u0000\u0000\u0000\u00a4\u00b0\u0001\u0000\u0000\u0000"+ "\u00a5\u00a6\n\b\u0000\u0000\u00a6\u00a7\u0005\r\u0000\u0000\u00a7\u00af"+ "\u0003\n\u0005\t\u00a8\u00a9\n\n\u0000\u0000\u00a9\u00aa\u0005\u000b\u0000"+ "\u0000\u00aa\u00af\u0003\u0004\u0002\u0000\u00ab\u00ac\n\t\u0000\u0000"+ "\u00ac\u00ad\u0005\f\u0000\u0000\u00ad\u00af\u0003\u0004\u0002\u0000\u00ae"+ "\u00a5\u0001\u0000\u0000\u0000\u00ae\u00a8\u0001\u0000\u0000\u0000\u00ae"+ "\u00ab\u0001\u0000\u0000\u0000\u00af\u00b2\u0001\u0000\u0000\u0000\u00b0"+ "\u00ae\u0001\u0000\u0000\u0000\u00b0\u00b1\u0001\u0000\u0000\u0000\u00b1"+ "\u000b\u0001\u0000\u0000\u0000\u00b2\u00b0\u0001\u0000\u0000\u0000\u00b3"+ "\u00bd\u0005\u001d\u0000\u0000\u00b4\u00b5\u0005!\u0000\u0000\u00b5\u00b6"+ "\u0005\u001c\u0000\u0000\u00b6\u00ba\u0003\n\u0005\u0000\u00b7\u00b9\u0005"+ "\r\u0000\u0000\u00b8\u00b7\u0001\u0000\u0000\u0000\u00b9\u00bc\u0001\u0000"+ "\u0000\u0000\u00ba\u00b8\u0001\u0000\u0000\u0000\u00ba\u00bb\u0001\u0000"+ "\u0000\u0000\u00bb\u00be\u0001\u0000\u0000\u0000\u00bc\u00ba\u0001\u0000"+ "\u0000\u0000\u00bd\u00b4\u0001\u0000\u0000\u0000\u00be\u00bf\u0001\u0000"+ "\u0000\u0000\u00bf\u00bd\u0001\u0000\u0000\u0000\u00bf\u00c0\u0001\u0000"+ "\u0000\u0000\u00c0\r\u0001\u0000\u0000\u0000\u00c1\u00cb\u0005\u001b\u0000"+ "\u0000\u00c2\u00c3\u0005!\u0000\u0000\u00c3\u00c4\u0005\u0018\u0000\u0000"+ "\u00c4\u00c8\u0003\n\u0005\u0000\u00c5\u00c7\u0005\r\u0000\u0000\u00c6"+ "\u00c5\u0001\u0000\u0000\u0000\u00c7\u00ca\u0001\u0000\u0000\u0000\u00c8"+ "\u00c6\u0001\u0000\u0000\u0000\u00c8\u00c9\u0001\u0000\u0000\u0000\u00c9"+ "\u00cc\u0001\u0000\u0000\u0000\u00ca\u00c8\u0001\u0000\u0000\u0000\u00cb"+ "\u00c2\u0001\u0000\u0000\u0000\u00cc\u00cd\u0001\u0000\u0000\u0000\u00cd"+ "\u00cb\u0001\u0000\u0000\u0000\u00cd\u00ce\u0001\u0000\u0000\u0000\u00ce"+ "\u000f\u0001\u0000\u0000\u0000\u00cf\u00d0\u0005\u0019\u0000\u0000\u00d0"+ "\u00d1\u0003\u001e\u000f\u0000\u00d1\u0011\u0001\u0000\u0000\u0000\u00d2"+ "\u00d3\u0005\u001a\u0000\u0000\u00d3\u00d4\u0003\n\u0005\u0000\u00d4\u0013"+ "\u0001\u0000\u0000\u0000\u00d5\u00d6\u0006\n\uffff\uffff\u0000\u00d6\u00ed"+ "\u0005!\u0000\u0000\u00d7\u00d8\u0005\u0005\u0000\u0000\u00d8\u00d9\u0005"+ "#\u0000\u0000\u00d9\u00da\u0005\u0006\u0000\u0000\u00da\u00db\u0005\u0007"+ "\u0000\u0000\u00db\u00dc\u0003\u0014\n\u0000\u00dc\u00dd\u0005\b\u0000"+ "\u0000\u00dd\u00de\u0005\u0005\u0000\u0000\u00de\u00df\u0005\u000b\u0000"+ "\u0000\u00df\u00e0\u0005#\u0000\u0000\u00e0\u00e1\u0005\u0006\u0000\u0000"+ "\u00e1\u00ed\u0001\u0000\u0000\u0000\u00e2\u00e3\u0005\u0005\u0000\u0000"+ "\u00e3\u00e4\u0005#\u0000\u0000\u00e4\u00e5\u0005\u0006\u0000\u0000\u00e5"+ "\u00e6\u0003\u0014\n\u0000\u00e6\u00e7\u0005\u0005\u0000\u0000\u00e7\u00e8"+ "\u0005\u000b\u0000\u0000\u00e8\u00e9\u0005#\u0000\u0000\u00e9\u00ea\u0005"+ "\u0006\u0000\u0000\u00ea\u00ed\u0001\u0000\u0000\u0000\u00eb\u00ed\u0003"+ "\u0002\u0001\u0000\u00ec\u00d5\u0001\u0000\u0000\u0000\u00ec\u00d7\u0001"+ "\u0000\u0000\u0000\u00ec\u00e2\u0001\u0000\u0000\u0000\u00ec\u00eb\u0001"+ "\u0000\u0000\u0000\u00ed\u00f3\u0001\u0000\u0000\u0000\u00ee\u00ef\n\u0004"+ "\u0000\u0000\u00ef\u00f0\u0005\r\u0000\u0000\u00f0\u00f2\u0003\u0014\n"+ "\u0005\u00f1\u00ee\u0001\u0000\u0000\u0000\u00f2\u00f5\u0001\u0000\u0000"+ "\u0000\u00f3\u00f1\u0001\u0000\u0000\u0000\u00f3\u00f4\u0001\u0000\u0000"+ "\u0000\u00f4\u0015\u0001\u0000\u0000\u0000\u00f5\u00f3\u0001\u0000\u0000"+ "\u0000\u00f6\u00f7\u0006\u000b\uffff\uffff\u0000\u00f7\u00f8\u0005!\u0000"+ "\u0000\u00f8\u00f9\u0005\u0013\u0000\u0000\u00f9\u0104\u0005!\u0000\u0000"+ "\u00fa\u00fb\u0005!\u0000\u0000\u00fb\u00fc\u0005\u0013\u0000\u0000\u00fc"+ "\u0104\u0005&\u0000\u0000\u00fd\u00fe\u0005&\u0000\u0000\u00fe\u00ff\u0005"+ "\u0013\u0000\u0000\u00ff\u0104\u0005!\u0000\u0000\u0100\u0101\u0005&\u0000"+ "\u0000\u0101\u0102\u0005\u0013\u0000\u0000\u0102\u0104\u0005&\u0000\u0000"+ "\u0103\u00f6\u0001\u0000\u0000\u0000\u0103\u00fa\u0001\u0000\u0000\u0000"+ "\u0103\u00fd\u0001\u0000\u0000\u0000\u0103\u0100\u0001\u0000\u0000\u0000"+ "\u0104\u010a\u0001\u0000\u0000\u0000\u0105\u0106\n\u0001\u0000\u0000\u0106"+ "\u0107\u0005\u0015\u0000\u0000\u0107\u0109\u0003\u0016\u000b\u0002\u0108"+ "\u0105\u0001\u0000\u0000\u0000\u0109\u010c\u0001\u0000\u0000\u0000\u010a"+ "\u0108\u0001\u0000\u0000\u0000\u010a\u010b\u0001\u0000\u0000\u0000\u010b"+ "\u0017\u0001\u0000\u0000\u0000\u010c\u010a\u0001\u0000\u0000\u0000\u010d"+ "\u0115\u0005\u0003\u0000\u0000\u010e\u0112\u0005#\u0000\u0000\u010f\u0111"+ "\u0005\r\u0000\u0000\u0110\u010f\u0001\u0000\u0000\u0000\u0111\u0114\u0001"+ "\u0000\u0000\u0000\u0112\u0110\u0001\u0000\u0000\u0000\u0112\u0113\u0001"+ "\u0000\u0000\u0000\u0113\u0116\u0001\u0000\u0000\u0000\u0114\u0112\u0001"+ "\u0000\u0000\u0000\u0115\u010e\u0001\u0000\u0000\u0000\u0116\u0117\u0001"+ "\u0000\u0000\u0000\u0117\u0115\u0001\u0000\u0000\u0000\u0117\u0118\u0001"+ "\u0000\u0000\u0000\u0118\u0119\u0001\u0000\u0000\u0000\u0119\u011a\u0005"+ "\u0004\u0000\u0000\u011a\u0019\u0001\u0000\u0000\u0000\u011b\u011d\u0003"+ "\f\u0006\u0000\u011c\u011e\u0003\u0010\b\u0000\u011d\u011c\u0001\u0000"+ "\u0000\u0000\u011d\u011e\u0001\u0000\u0000\u0000\u011e\u011f\u0001\u0000"+ "\u0000\u0000\u011f\u0120\u0003\u0012\t\u0000\u0120\u001b\u0001\u0000\u0000"+ "\u0000\u0121\u0122\u0005\"\u0000\u0000\u0122\u0125\u0005\u0001\u0000\u0000"+ "\u0123\u0126\u0003\u001c\u000e\u0000\u0124\u0126\u0003\u001a\r\u0000\u0125"+ "\u0123\u0001\u0000\u0000\u0000\u0125\u0124\u0001\u0000\u0000\u0000\u0126"+ "\u0127\u0001\u0000\u0000\u0000\u0127\u012a\u0005\r\u0000\u0000\u0128\u012b"+ "\u0003\u001c\u000e\u0000\u0129\u012b\u0003\u001a\r\u0000\u012a\u0128\u0001"+ "\u0000\u0000\u0000\u012a\u0129\u0001\u0000\u0000\u0000\u012b\u012c\u0001"+ "\u0000\u0000\u0000\u012c\u0134\u0005\r\u0000\u0000\u012d\u0131\u0003\u0018"+ "\f\u0000\u012e\u0130\u0005\r\u0000\u0000\u012f\u012e\u0001\u0000\u0000"+ "\u0000\u0130\u0133\u0001\u0000\u0000\u0000\u0131\u012f\u0001\u0000\u0000"+ "\u0000\u0131\u0132\u0001\u0000\u0000\u0000\u0132\u0135\u0001\u0000\u0000"+ "\u0000\u0133\u0131\u0001\u0000\u0000\u0000\u0134\u012d\u0001\u0000\u0000"+ "\u0000\u0135\u0136\u0001\u0000\u0000\u0000\u0136\u0134\u0001\u0000\u0000"+ "\u0000\u0136\u0137\u0001\u0000\u0000\u0000\u0137\u0138\u0001\u0000\u0000"+ "\u0000\u0138\u0139\u0005\u0002\u0000\u0000\u0139\u001d\u0001\u0000\u0000"+ "\u0000\u013a\u013b\u0006\u000f\uffff\uffff\u0000\u013b\u013c\u0003\n\u0005"+ "\u0000\u013c\u013d\u0005\u0013\u0000\u0000\u013d\u013e\u0003\n\u0005\u0000"+ "\u013e\u0160\u0001\u0000\u0000\u0000\u013f\u0140\u0003\n\u0005\u0000\u0140"+ "\u0141\u0005\u0014\u0000\u0000\u0141\u0142\u0003\n\u0005\u0000\u0142\u0160"+ "\u0001\u0000\u0000\u0000\u0143\u0144\u0005 \u0000\u0000\u0144\u0145\u0005"+ "\u0001\u0000\u0000\u0145\u0146\u0003\n\u0005\u0000\u0146\u0147\u0005\u0002"+ "\u0000\u0000\u0147\u0160\u0001\u0000\u0000\u0000\u0148\u0152\u0005\u001e"+ "\u0000\u0000\u0149\u014a\u0005!\u0000\u0000\u014a\u014b\u0005\u001c\u0000"+ "\u0000\u014b\u014f\u0003\n\u0005\u0000\u014c\u014e\u0005\r\u0000\u0000"+ "\u014d\u014c\u0001\u0000\u0000\u0000\u014e\u0151\u0001\u0000\u0000\u0000"+ "\u014f\u014d\u0001\u0000\u0000\u0000\u014f\u0150\u0001\u0000\u0000\u0000"+ "\u0150\u0153\u0001\u0000\u0000\u0000\u0151\u014f\u0001\u0000\u0000\u0000"+ "\u0152\u0149\u0001\u0000\u0000\u0000\u0153\u0154\u0001\u0000\u0000\u0000"+ "\u0154\u0152\u0001\u0000\u0000\u0000\u0154\u0155\u0001\u0000\u0000\u0000"+ "\u0155\u0156\u0001\u0000\u0000\u0000\u0156\u0157\u0005\u001f\u0000\u0000"+ "\u0157\u0158\u0003\u001e\u000f\u0003\u0158\u0160\u0001\u0000\u0000\u0000"+ "\u0159\u015a\u0005\u0001\u0000\u0000\u015a\u015b\u0003\u001e\u000f\u0000"+ "\u015b\u015c\u0005\u0002\u0000\u0000\u015c\u0160\u0001\u0000\u0000\u0000"+ "\u015d\u015e\u0005\u0017\u0000\u0000\u015e\u0160\u0003\u001e\u000f\u0001"+ "\u015f\u013a\u0001\u0000\u0000\u0000\u015f\u013f\u0001\u0000\u0000\u0000"+ "\u015f\u0143\u0001\u0000\u0000\u0000\u015f\u0148\u0001\u0000\u0000\u0000"+ "\u015f\u0159\u0001\u0000\u0000\u0000\u015f\u015d\u0001\u0000\u0000\u0000"+ "\u0160\u0169\u0001\u0000\u0000\u0000\u0161\u0162\n\b\u0000\u0000\u0162"+ "\u0163\u0005\u0015\u0000\u0000\u0163\u0168\u0003\u001e\u000f\t\u0164\u0165"+ "\n\u0007\u0000\u0000\u0165\u0166\u0005\u0016\u0000\u0000\u0166\u0168\u0003"+ "\u001e\u000f\b\u0167\u0161\u0001\u0000\u0000\u0000\u0167\u0164\u0001\u0000"+ "\u0000\u0000\u0168\u016b\u0001\u0000\u0000\u0000\u0169\u0167\u0001\u0000"+ "\u0000\u0000\u0169\u016a\u0001\u0000\u0000\u0000\u016a\u001f\u0001\u0000"+ "\u0000\u0000\u016b\u0169\u0001\u0000\u0000\u0000!#/=MOfnp\u0091\u0094"+ "\u00a3\u00ae\u00b0\u00ba\u00bf\u00c8\u00cd\u00ec\u00f3\u0103\u010a\u0112"+ "\u0117\u011d\u0125\u012a\u0131\u0136\u014f\u0154\u015f\u0167\u0169"; 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); } } }