liquid.parser.v4.LiquidParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of liqp Show documentation
Show all versions of liqp Show documentation
A Java implementation of the Liquid templating engine backed up by an ANTLR grammar.
The newest version!
// Generated from liquid/parser/v4/LiquidParser.g4 by ANTLR 4.13.0
package liquid.parser.v4;
// add java imports here
import liqp.TemplateParser;
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 LiquidParser extends Parser {
static { RuntimeMetaData.checkVersion("4.13.0", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
BlockId=1, EndBlockId=2, SimpleTagId=3, InvalidEndBlockId=4, MisMatchedEndBlockId=5,
OutStart=6, TagStart=7, Other=8, OutStart2=9, OutEnd=10, TagEnd=11, Str=12,
DotDot=13, Dot=14, NEq=15, Eq=16, EqSign=17, GtEq=18, Gt=19, LtEq=20,
Lt=21, Minus=22, Pipe=23, Col=24, Comma=25, OPar=26, CPar=27, OBr=28,
CBr=29, QMark=30, PathSep=31, DoubleNum=32, LongNum=33, WS=34, Contains=35,
In=36, And=37, Or=38, True=39, False=40, Nil=41, With=42, Offset=43, Continue=44,
Reversed=45, Empty=46, Blank=47, IdChain=48, Id=49, WS2=50, InvalidEndTag=51,
CaptureStart=52, CaptureEnd=53, CommentStart=54, CommentEnd=55, RawStart=56,
IfStart=57, Elsif=58, IfEnd=59, UnlessStart=60, UnlessEnd=61, Else=62,
CaseStart=63, CaseEnd=64, When=65, Cycle=66, ForStart=67, ForEnd=68, TableStart=69,
TableEnd=70, Assign=71, Include=72, IncludeRelative=73, InvalidTagId=74,
RawEnd=75, OtherRaw=76;
public static final int
RULE_parse = 0, RULE_block = 1, RULE_atom = 2, RULE_tag = 3, RULE_continue_tag = 4,
RULE_other_tag = 5, RULE_error_other_tag = 6, RULE_simple_tag = 7, RULE_raw_tag = 8,
RULE_raw_body = 9, RULE_comment_tag = 10, RULE_if_tag = 11, RULE_elsif_tag = 12,
RULE_else_tag = 13, RULE_unless_tag = 14, RULE_case_tag = 15, RULE_when_tag = 16,
RULE_cycle_tag = 17, RULE_cycle_group = 18, RULE_for_tag = 19, RULE_for_array = 20,
RULE_for_range = 21, RULE_for_block = 22, RULE_for_attribute = 23, RULE_attribute = 24,
RULE_table_tag = 25, RULE_capture_tag = 26, RULE_include_tag = 27, RULE_include_relative_tag = 28,
RULE_file_name_or_output = 29, RULE_jekyll_include_params = 30, RULE_output = 31,
RULE_not_out_end = 32, RULE_filter = 33, RULE_params = 34, RULE_param_expr = 35,
RULE_assignment = 36, RULE_expr = 37, RULE_term = 38, RULE_lookup = 39,
RULE_id = 40, RULE_id2 = 41, RULE_index = 42, RULE_other_tag_parameters = 43,
RULE_other_than_tag_end = 44, RULE_filename = 45, RULE_outStart = 46,
RULE_other = 47;
private static String[] makeRuleNames() {
return new String[] {
"parse", "block", "atom", "tag", "continue_tag", "other_tag", "error_other_tag",
"simple_tag", "raw_tag", "raw_body", "comment_tag", "if_tag", "elsif_tag",
"else_tag", "unless_tag", "case_tag", "when_tag", "cycle_tag", "cycle_group",
"for_tag", "for_array", "for_range", "for_block", "for_attribute", "attribute",
"table_tag", "capture_tag", "include_tag", "include_relative_tag", "file_name_or_output",
"jekyll_include_params", "output", "not_out_end", "filter", "params",
"param_expr", "assignment", "expr", "term", "lookup", "id", "id2", "index",
"other_tag_parameters", "other_than_tag_end", "filename", "outStart",
"other"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, null, null, null, null, null, null, "'{{'", null, null,
null, "'..'", "'.'", null, "'=='", "'='", "'>='", "'>'", "'<='", "'<'",
"'-'", "'|'", "':'", "','", "'('", "')'", "'['", "']'", "'?'", null,
null, null, null, "'contains'", "'in'", "'and'", "'or'", "'true'", "'false'",
null, "'with'", "'offset'", "'continue'", "'reversed'", "'empty'", "'blank'",
null, null, null, null, "'capture'", "'endcapture'", "'comment'", "'endcomment'",
null, "'if'", "'elsif'", "'endif'", "'unless'", "'endunless'", "'else'",
"'case'", "'endcase'", "'when'", "'cycle'", "'for'", "'endfor'", "'tablerow'",
"'endtablerow'", "'assign'", "'include'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "BlockId", "EndBlockId", "SimpleTagId", "InvalidEndBlockId", "MisMatchedEndBlockId",
"OutStart", "TagStart", "Other", "OutStart2", "OutEnd", "TagEnd", "Str",
"DotDot", "Dot", "NEq", "Eq", "EqSign", "GtEq", "Gt", "LtEq", "Lt", "Minus",
"Pipe", "Col", "Comma", "OPar", "CPar", "OBr", "CBr", "QMark", "PathSep",
"DoubleNum", "LongNum", "WS", "Contains", "In", "And", "Or", "True",
"False", "Nil", "With", "Offset", "Continue", "Reversed", "Empty", "Blank",
"IdChain", "Id", "WS2", "InvalidEndTag", "CaptureStart", "CaptureEnd",
"CommentStart", "CommentEnd", "RawStart", "IfStart", "Elsif", "IfEnd",
"UnlessStart", "UnlessEnd", "Else", "CaseStart", "CaseEnd", "When", "Cycle",
"ForStart", "ForEnd", "TableStart", "TableEnd", "Assign", "Include",
"IncludeRelative", "InvalidTagId", "RawEnd", "OtherRaw"
};
}
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] = "";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "LiquidParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
private boolean liquidStyleInclude = true;
private boolean evaluateInOutputTag = false;
private TemplateParser.ErrorMode errorMode = TemplateParser.ErrorMode.LAX;
private boolean isLiquidStyleInclude(){
return liquidStyleInclude;
}
private boolean isJekyllStyleInclude(){
return !liquidStyleInclude;
}
private boolean isEvaluateInOutputTag() {
return evaluateInOutputTag;
}
private boolean isStrict() {
return errorMode == TemplateParser.ErrorMode.STRICT;
}
private boolean isWarn() {
return errorMode == TemplateParser.ErrorMode.WARN;
}
private boolean isLax() {
return errorMode == TemplateParser.ErrorMode.LAX;
}
public LiquidParser(TokenStream input, boolean isLiquidStyleInclude, boolean evaluateInOutputTag, TemplateParser.ErrorMode errorMode) {
this(input);
this.liquidStyleInclude = isLiquidStyleInclude;
this.evaluateInOutputTag = evaluateInOutputTag;
this.errorMode = errorMode;
}
public void reportTokenError(String message, Token token) {
notifyErrorListeners(token, message + ": '" + token.getText() + "'", null);
}
public void reportTokenError(String message) {
notifyErrorListeners(message);
}
public LiquidParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@SuppressWarnings("CheckReturnValue")
public static class ParseContext extends ParserRuleContext {
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode EOF() { return getToken(LiquidParser.EOF, 0); }
public ParseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_parse; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterParse(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitParse(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitParse(this);
else return visitor.visitChildren(this);
}
}
public final ParseContext parse() throws RecognitionException {
ParseContext _localctx = new ParseContext(_ctx, getState());
enterRule(_localctx, 0, RULE_parse);
try {
enterOuterAlt(_localctx, 1);
{
setState(96);
block();
setState(97);
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 BlockContext extends ParserRuleContext {
public List atom() {
return getRuleContexts(AtomContext.class);
}
public AtomContext atom(int i) {
return getRuleContext(AtomContext.class,i);
}
public BlockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_block; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterBlock(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitBlock(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitBlock(this);
else return visitor.visitChildren(this);
}
}
public final BlockContext block() throws RecognitionException {
BlockContext _localctx = new BlockContext(_ctx, getState());
enterRule(_localctx, 2, RULE_block);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(102);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(99);
atom();
}
}
}
setState(104);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AtomContext extends ParserRuleContext {
public AtomContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_atom; }
public AtomContext() { }
public void copyFrom(AtomContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Atom_outputContext extends AtomContext {
public OutputContext output() {
return getRuleContext(OutputContext.class,0);
}
public Atom_outputContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterAtom_output(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitAtom_output(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitAtom_output(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Atom_assignmentContext extends AtomContext {
public AssignmentContext assignment() {
return getRuleContext(AssignmentContext.class,0);
}
public Atom_assignmentContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterAtom_assignment(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitAtom_assignment(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitAtom_assignment(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Atom_tagContext extends AtomContext {
public TagContext tag() {
return getRuleContext(TagContext.class,0);
}
public Atom_tagContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterAtom_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitAtom_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitAtom_tag(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Atom_othersContext extends AtomContext {
public OtherContext other() {
return getRuleContext(OtherContext.class,0);
}
public Atom_othersContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterAtom_others(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitAtom_others(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitAtom_others(this);
else return visitor.visitChildren(this);
}
}
public final AtomContext atom() throws RecognitionException {
AtomContext _localctx = new AtomContext(_ctx, getState());
enterRule(_localctx, 4, RULE_atom);
try {
setState(109);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
case 1:
_localctx = new Atom_tagContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(105);
tag();
}
break;
case 2:
_localctx = new Atom_outputContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(106);
output();
}
break;
case 3:
_localctx = new Atom_assignmentContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(107);
assignment();
}
break;
case 4:
_localctx = new Atom_othersContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(108);
other();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TagContext extends ParserRuleContext {
public Raw_tagContext raw_tag() {
return getRuleContext(Raw_tagContext.class,0);
}
public Comment_tagContext comment_tag() {
return getRuleContext(Comment_tagContext.class,0);
}
public If_tagContext if_tag() {
return getRuleContext(If_tagContext.class,0);
}
public Unless_tagContext unless_tag() {
return getRuleContext(Unless_tagContext.class,0);
}
public Case_tagContext case_tag() {
return getRuleContext(Case_tagContext.class,0);
}
public Cycle_tagContext cycle_tag() {
return getRuleContext(Cycle_tagContext.class,0);
}
public For_tagContext for_tag() {
return getRuleContext(For_tagContext.class,0);
}
public Table_tagContext table_tag() {
return getRuleContext(Table_tagContext.class,0);
}
public Capture_tagContext capture_tag() {
return getRuleContext(Capture_tagContext.class,0);
}
public Include_tagContext include_tag() {
return getRuleContext(Include_tagContext.class,0);
}
public Include_relative_tagContext include_relative_tag() {
return getRuleContext(Include_relative_tagContext.class,0);
}
public Continue_tagContext continue_tag() {
return getRuleContext(Continue_tagContext.class,0);
}
public Simple_tagContext simple_tag() {
return getRuleContext(Simple_tagContext.class,0);
}
public Other_tagContext other_tag() {
return getRuleContext(Other_tagContext.class,0);
}
public TagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTag(this);
else return visitor.visitChildren(this);
}
}
public final TagContext tag() throws RecognitionException {
TagContext _localctx = new TagContext(_ctx, getState());
enterRule(_localctx, 6, RULE_tag);
try {
setState(125);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(111);
raw_tag();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(112);
comment_tag();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(113);
if_tag();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(114);
unless_tag();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(115);
case_tag();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(116);
cycle_tag();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(117);
for_tag();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(118);
table_tag();
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(119);
capture_tag();
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(120);
include_tag();
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(121);
include_relative_tag();
}
break;
case 12:
enterOuterAlt(_localctx, 12);
{
setState(122);
continue_tag();
}
break;
case 13:
enterOuterAlt(_localctx, 13);
{
setState(123);
simple_tag();
}
break;
case 14:
enterOuterAlt(_localctx, 14);
{
setState(124);
other_tag();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Continue_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode Continue() { return getToken(LiquidParser.Continue, 0); }
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public Continue_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_continue_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterContinue_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitContinue_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitContinue_tag(this);
else return visitor.visitChildren(this);
}
}
public final Continue_tagContext continue_tag() throws RecognitionException {
Continue_tagContext _localctx = new Continue_tagContext(_ctx, getState());
enterRule(_localctx, 8, RULE_continue_tag);
try {
enterOuterAlt(_localctx, 1);
{
setState(127);
match(TagStart);
setState(128);
match(Continue);
setState(129);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Other_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode BlockId() { return getToken(LiquidParser.BlockId, 0); }
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public TerminalNode EndBlockId() { return getToken(LiquidParser.EndBlockId, 0); }
public Other_tag_parametersContext other_tag_parameters() {
return getRuleContext(Other_tag_parametersContext.class,0);
}
public List atom() {
return getRuleContexts(AtomContext.class);
}
public AtomContext atom(int i) {
return getRuleContext(AtomContext.class,i);
}
public Error_other_tagContext error_other_tag() {
return getRuleContext(Error_other_tagContext.class,0);
}
public Other_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_other_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterOther_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitOther_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitOther_tag(this);
else return visitor.visitChildren(this);
}
}
public final Other_tagContext other_tag() throws RecognitionException {
Other_tagContext _localctx = new Other_tagContext(_ctx, getState());
enterRule(_localctx, 10, RULE_other_tag);
int _la;
try {
int _alt;
setState(147);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(131);
match(TagStart);
setState(132);
match(BlockId);
setState(134);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) {
{
setState(133);
other_tag_parameters();
}
}
setState(136);
match(TagEnd);
setState(140);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,4,_ctx);
while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1+1 ) {
{
{
setState(137);
atom();
}
}
}
setState(142);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,4,_ctx);
}
setState(143);
match(TagStart);
setState(144);
match(EndBlockId);
setState(145);
match(TagEnd);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(146);
error_other_tag();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Error_other_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode BlockId() { return getToken(LiquidParser.BlockId, 0); }
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public TerminalNode MisMatchedEndBlockId() { return getToken(LiquidParser.MisMatchedEndBlockId, 0); }
public Other_tag_parametersContext other_tag_parameters() {
return getRuleContext(Other_tag_parametersContext.class,0);
}
public List atom() {
return getRuleContexts(AtomContext.class);
}
public AtomContext atom(int i) {
return getRuleContext(AtomContext.class,i);
}
public TerminalNode InvalidEndBlockId() { return getToken(LiquidParser.InvalidEndBlockId, 0); }
public TerminalNode InvalidTagId() { return getToken(LiquidParser.InvalidTagId, 0); }
public TerminalNode InvalidEndTag() { return getToken(LiquidParser.InvalidEndTag, 0); }
public Error_other_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_error_other_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterError_other_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitError_other_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitError_other_tag(this);
else return visitor.visitChildren(this);
}
}
public final Error_other_tagContext error_other_tag() throws RecognitionException {
Error_other_tagContext _localctx = new Error_other_tagContext(_ctx, getState());
enterRule(_localctx, 12, RULE_error_other_tag);
int _la;
try {
int _alt;
setState(204);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(149);
match(TagStart);
setState(150);
match(BlockId);
setState(152);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) {
{
setState(151);
other_tag_parameters();
}
}
setState(154);
match(TagEnd);
setState(158);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1+1 ) {
{
{
setState(155);
atom();
}
}
}
setState(160);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
}
setState(161);
match(TagStart);
setState(162);
match(MisMatchedEndBlockId);
setState(163);
match(TagEnd);
reportTokenError("Mismatched End Tag", _localctx.MisMatchedEndBlockId().getSymbol());
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(165);
match(TagStart);
setState(166);
match(BlockId);
setState(168);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) {
{
setState(167);
other_tag_parameters();
}
}
setState(170);
match(TagEnd);
setState(174);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,9,_ctx);
while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1+1 ) {
{
{
setState(171);
atom();
}
}
}
setState(176);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,9,_ctx);
}
setState(177);
match(TagStart);
setState(178);
match(InvalidEndBlockId);
setState(179);
match(TagEnd);
reportTokenError("Invalid End Tag", _localctx.InvalidEndBlockId().getSymbol());
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(181);
match(TagStart);
setState(182);
match(BlockId);
setState(184);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) {
{
setState(183);
other_tag_parameters();
}
}
setState(186);
match(TagEnd);
setState(190);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1+1 ) {
{
{
setState(187);
atom();
}
}
}
setState(192);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
}
reportTokenError("Missing End Tag");
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(194);
match(TagStart);
setState(195);
match(InvalidTagId);
setState(197);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) {
{
setState(196);
other_tag_parameters();
}
}
setState(199);
match(TagEnd);
reportTokenError("Invalid Tag", _localctx.InvalidTagId().getSymbol());
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(201);
match(TagStart);
setState(202);
match(InvalidEndTag);
reportTokenError("Invalid Empty Tag");
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Simple_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode SimpleTagId() { return getToken(LiquidParser.SimpleTagId, 0); }
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public Other_tag_parametersContext other_tag_parameters() {
return getRuleContext(Other_tag_parametersContext.class,0);
}
public Simple_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_simple_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterSimple_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitSimple_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitSimple_tag(this);
else return visitor.visitChildren(this);
}
}
public final Simple_tagContext simple_tag() throws RecognitionException {
Simple_tagContext _localctx = new Simple_tagContext(_ctx, getState());
enterRule(_localctx, 14, RULE_simple_tag);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(206);
match(TagStart);
setState(207);
match(SimpleTagId);
setState(209);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) {
{
setState(208);
other_tag_parameters();
}
}
setState(211);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Raw_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode RawStart() { return getToken(LiquidParser.RawStart, 0); }
public Raw_bodyContext raw_body() {
return getRuleContext(Raw_bodyContext.class,0);
}
public TerminalNode RawEnd() { return getToken(LiquidParser.RawEnd, 0); }
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public Raw_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_raw_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterRaw_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitRaw_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitRaw_tag(this);
else return visitor.visitChildren(this);
}
}
public final Raw_tagContext raw_tag() throws RecognitionException {
Raw_tagContext _localctx = new Raw_tagContext(_ctx, getState());
enterRule(_localctx, 16, RULE_raw_tag);
try {
enterOuterAlt(_localctx, 1);
{
setState(213);
match(TagStart);
setState(214);
match(RawStart);
setState(215);
raw_body();
setState(216);
match(RawEnd);
setState(217);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Raw_bodyContext extends ParserRuleContext {
public List OtherRaw() { return getTokens(LiquidParser.OtherRaw); }
public TerminalNode OtherRaw(int i) {
return getToken(LiquidParser.OtherRaw, i);
}
public Raw_bodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_raw_body; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterRaw_body(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitRaw_body(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitRaw_body(this);
else return visitor.visitChildren(this);
}
}
public final Raw_bodyContext raw_body() throws RecognitionException {
Raw_bodyContext _localctx = new Raw_bodyContext(_ctx, getState());
enterRule(_localctx, 18, RULE_raw_body);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(222);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==OtherRaw) {
{
{
setState(219);
match(OtherRaw);
}
}
setState(224);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Comment_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode CommentStart() { return getToken(LiquidParser.CommentStart, 0); }
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public TerminalNode CommentEnd() { return getToken(LiquidParser.CommentEnd, 0); }
public Comment_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_comment_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterComment_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitComment_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitComment_tag(this);
else return visitor.visitChildren(this);
}
}
public final Comment_tagContext comment_tag() throws RecognitionException {
Comment_tagContext _localctx = new Comment_tagContext(_ctx, getState());
enterRule(_localctx, 20, RULE_comment_tag);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(225);
match(TagStart);
setState(226);
match(CommentStart);
setState(227);
match(TagEnd);
setState(231);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,16,_ctx);
while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1+1 ) {
{
{
setState(228);
matchWildcard();
}
}
}
setState(233);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,16,_ctx);
}
setState(234);
match(TagStart);
setState(235);
match(CommentEnd);
setState(236);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class If_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode IfStart() { return getToken(LiquidParser.IfStart, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode IfEnd() { return getToken(LiquidParser.IfEnd, 0); }
public List elsif_tag() {
return getRuleContexts(Elsif_tagContext.class);
}
public Elsif_tagContext elsif_tag(int i) {
return getRuleContext(Elsif_tagContext.class,i);
}
public Else_tagContext else_tag() {
return getRuleContext(Else_tagContext.class,0);
}
public If_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_if_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterIf_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitIf_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitIf_tag(this);
else return visitor.visitChildren(this);
}
}
public final If_tagContext if_tag() throws RecognitionException {
If_tagContext _localctx = new If_tagContext(_ctx, getState());
enterRule(_localctx, 22, RULE_if_tag);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(238);
match(TagStart);
setState(239);
match(IfStart);
setState(240);
expr(0);
setState(241);
match(TagEnd);
setState(242);
block();
setState(246);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,17,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(243);
elsif_tag();
}
}
}
setState(248);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,17,_ctx);
}
setState(250);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) {
case 1:
{
setState(249);
else_tag();
}
break;
}
setState(252);
match(TagStart);
setState(253);
match(IfEnd);
setState(254);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Elsif_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode Elsif() { return getToken(LiquidParser.Elsif, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public Elsif_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_elsif_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterElsif_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitElsif_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitElsif_tag(this);
else return visitor.visitChildren(this);
}
}
public final Elsif_tagContext elsif_tag() throws RecognitionException {
Elsif_tagContext _localctx = new Elsif_tagContext(_ctx, getState());
enterRule(_localctx, 24, RULE_elsif_tag);
try {
enterOuterAlt(_localctx, 1);
{
setState(256);
match(TagStart);
setState(257);
match(Elsif);
setState(258);
expr(0);
setState(259);
match(TagEnd);
setState(260);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Else_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode Else() { return getToken(LiquidParser.Else, 0); }
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public Else_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_else_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterElse_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitElse_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitElse_tag(this);
else return visitor.visitChildren(this);
}
}
public final Else_tagContext else_tag() throws RecognitionException {
Else_tagContext _localctx = new Else_tagContext(_ctx, getState());
enterRule(_localctx, 26, RULE_else_tag);
try {
enterOuterAlt(_localctx, 1);
{
setState(262);
match(TagStart);
setState(263);
match(Else);
setState(264);
match(TagEnd);
setState(265);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Unless_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode UnlessStart() { return getToken(LiquidParser.UnlessStart, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode UnlessEnd() { return getToken(LiquidParser.UnlessEnd, 0); }
public Else_tagContext else_tag() {
return getRuleContext(Else_tagContext.class,0);
}
public Unless_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unless_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterUnless_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitUnless_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitUnless_tag(this);
else return visitor.visitChildren(this);
}
}
public final Unless_tagContext unless_tag() throws RecognitionException {
Unless_tagContext _localctx = new Unless_tagContext(_ctx, getState());
enterRule(_localctx, 28, RULE_unless_tag);
try {
enterOuterAlt(_localctx, 1);
{
setState(267);
match(TagStart);
setState(268);
match(UnlessStart);
setState(269);
expr(0);
setState(270);
match(TagEnd);
setState(271);
block();
setState(273);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
case 1:
{
setState(272);
else_tag();
}
break;
}
setState(275);
match(TagStart);
setState(276);
match(UnlessEnd);
setState(277);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Case_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode CaseStart() { return getToken(LiquidParser.CaseStart, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public TerminalNode CaseEnd() { return getToken(LiquidParser.CaseEnd, 0); }
public OtherContext other() {
return getRuleContext(OtherContext.class,0);
}
public List when_tag() {
return getRuleContexts(When_tagContext.class);
}
public When_tagContext when_tag(int i) {
return getRuleContext(When_tagContext.class,i);
}
public Else_tagContext else_tag() {
return getRuleContext(Else_tagContext.class,0);
}
public Case_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_case_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterCase_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitCase_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitCase_tag(this);
else return visitor.visitChildren(this);
}
}
public final Case_tagContext case_tag() throws RecognitionException {
Case_tagContext _localctx = new Case_tagContext(_ctx, getState());
enterRule(_localctx, 30, RULE_case_tag);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(279);
match(TagStart);
setState(280);
match(CaseStart);
setState(281);
expr(0);
setState(282);
match(TagEnd);
setState(284);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Other) {
{
setState(283);
other();
}
}
setState(287);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(286);
when_tag();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(289);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,21,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
setState(292);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,22,_ctx) ) {
case 1:
{
setState(291);
else_tag();
}
break;
}
setState(294);
match(TagStart);
setState(295);
match(CaseEnd);
setState(296);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class When_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode When() { return getToken(LiquidParser.When, 0); }
public List term() {
return getRuleContexts(TermContext.class);
}
public TermContext term(int i) {
return getRuleContext(TermContext.class,i);
}
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public List Or() { return getTokens(LiquidParser.Or); }
public TerminalNode Or(int i) {
return getToken(LiquidParser.Or, i);
}
public List Comma() { return getTokens(LiquidParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(LiquidParser.Comma, i);
}
public When_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_when_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterWhen_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitWhen_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitWhen_tag(this);
else return visitor.visitChildren(this);
}
}
public final When_tagContext when_tag() throws RecognitionException {
When_tagContext _localctx = new When_tagContext(_ctx, getState());
enterRule(_localctx, 32, RULE_when_tag);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(298);
match(TagStart);
setState(299);
match(When);
setState(300);
term();
setState(305);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma || _la==Or) {
{
{
setState(301);
_la = _input.LA(1);
if ( !(_la==Comma || _la==Or) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(302);
term();
}
}
setState(307);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(308);
match(TagEnd);
setState(309);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Cycle_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode Cycle() { return getToken(LiquidParser.Cycle, 0); }
public Cycle_groupContext cycle_group() {
return getRuleContext(Cycle_groupContext.class,0);
}
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public List Comma() { return getTokens(LiquidParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(LiquidParser.Comma, i);
}
public Cycle_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_cycle_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterCycle_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitCycle_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitCycle_tag(this);
else return visitor.visitChildren(this);
}
}
public final Cycle_tagContext cycle_tag() throws RecognitionException {
Cycle_tagContext _localctx = new Cycle_tagContext(_ctx, getState());
enterRule(_localctx, 34, RULE_cycle_tag);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(311);
match(TagStart);
setState(312);
match(Cycle);
setState(313);
cycle_group();
setState(314);
expr(0);
setState(319);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(315);
match(Comma);
setState(316);
expr(0);
}
}
setState(321);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(322);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Cycle_groupContext extends ParserRuleContext {
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode Col() { return getToken(LiquidParser.Col, 0); }
public Cycle_groupContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_cycle_group; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterCycle_group(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitCycle_group(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitCycle_group(this);
else return visitor.visitChildren(this);
}
}
public final Cycle_groupContext cycle_group() throws RecognitionException {
Cycle_groupContext _localctx = new Cycle_groupContext(_ctx, getState());
enterRule(_localctx, 36, RULE_cycle_group);
try {
enterOuterAlt(_localctx, 1);
{
setState(327);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) {
case 1:
{
setState(324);
expr(0);
setState(325);
match(Col);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class For_tagContext extends ParserRuleContext {
public For_arrayContext for_array() {
return getRuleContext(For_arrayContext.class,0);
}
public For_rangeContext for_range() {
return getRuleContext(For_rangeContext.class,0);
}
public For_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_for_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFor_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFor_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFor_tag(this);
else return visitor.visitChildren(this);
}
}
public final For_tagContext for_tag() throws RecognitionException {
For_tagContext _localctx = new For_tagContext(_ctx, getState());
enterRule(_localctx, 38, RULE_for_tag);
try {
setState(331);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(329);
for_array();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(330);
for_range();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class For_arrayContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode ForStart() { return getToken(LiquidParser.ForStart, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode In() { return getToken(LiquidParser.In, 0); }
public LookupContext lookup() {
return getRuleContext(LookupContext.class,0);
}
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public For_blockContext for_block() {
return getRuleContext(For_blockContext.class,0);
}
public TerminalNode ForEnd() { return getToken(LiquidParser.ForEnd, 0); }
public TerminalNode Reversed() { return getToken(LiquidParser.Reversed, 0); }
public List for_attribute() {
return getRuleContexts(For_attributeContext.class);
}
public For_attributeContext for_attribute(int i) {
return getRuleContext(For_attributeContext.class,i);
}
public For_arrayContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_for_array; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFor_array(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFor_array(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFor_array(this);
else return visitor.visitChildren(this);
}
}
public final For_arrayContext for_array() throws RecognitionException {
For_arrayContext _localctx = new For_arrayContext(_ctx, getState());
enterRule(_localctx, 40, RULE_for_array);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(333);
match(TagStart);
setState(334);
match(ForStart);
setState(335);
id();
setState(336);
match(In);
setState(337);
lookup();
setState(339);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Reversed) {
{
setState(338);
match(Reversed);
}
}
setState(344);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Offset || _la==Id) {
{
{
setState(341);
for_attribute();
}
}
setState(346);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(347);
match(TagEnd);
setState(348);
for_block();
setState(349);
match(TagStart);
setState(350);
match(ForEnd);
setState(351);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class For_rangeContext extends ParserRuleContext {
public ExprContext from;
public ExprContext to;
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode ForStart() { return getToken(LiquidParser.ForStart, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode In() { return getToken(LiquidParser.In, 0); }
public TerminalNode OPar() { return getToken(LiquidParser.OPar, 0); }
public TerminalNode DotDot() { return getToken(LiquidParser.DotDot, 0); }
public TerminalNode CPar() { return getToken(LiquidParser.CPar, 0); }
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode ForEnd() { return getToken(LiquidParser.ForEnd, 0); }
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode Reversed() { return getToken(LiquidParser.Reversed, 0); }
public List for_attribute() {
return getRuleContexts(For_attributeContext.class);
}
public For_attributeContext for_attribute(int i) {
return getRuleContext(For_attributeContext.class,i);
}
public For_rangeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_for_range; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFor_range(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFor_range(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFor_range(this);
else return visitor.visitChildren(this);
}
}
public final For_rangeContext for_range() throws RecognitionException {
For_rangeContext _localctx = new For_rangeContext(_ctx, getState());
enterRule(_localctx, 42, RULE_for_range);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(353);
match(TagStart);
setState(354);
match(ForStart);
setState(355);
id();
setState(356);
match(In);
setState(357);
match(OPar);
setState(358);
((For_rangeContext)_localctx).from = expr(0);
setState(359);
match(DotDot);
setState(360);
((For_rangeContext)_localctx).to = expr(0);
setState(361);
match(CPar);
setState(363);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Reversed) {
{
setState(362);
match(Reversed);
}
}
setState(368);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Offset || _la==Id) {
{
{
setState(365);
for_attribute();
}
}
setState(370);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(371);
match(TagEnd);
setState(372);
block();
setState(373);
match(TagStart);
setState(374);
match(ForEnd);
setState(375);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class For_blockContext extends ParserRuleContext {
public BlockContext a;
public BlockContext b;
public List block() {
return getRuleContexts(BlockContext.class);
}
public BlockContext block(int i) {
return getRuleContext(BlockContext.class,i);
}
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode Else() { return getToken(LiquidParser.Else, 0); }
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public For_blockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_for_block; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFor_block(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFor_block(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFor_block(this);
else return visitor.visitChildren(this);
}
}
public final For_blockContext for_block() throws RecognitionException {
For_blockContext _localctx = new For_blockContext(_ctx, getState());
enterRule(_localctx, 44, RULE_for_block);
try {
enterOuterAlt(_localctx, 1);
{
setState(377);
((For_blockContext)_localctx).a = block();
setState(382);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) {
case 1:
{
setState(378);
match(TagStart);
setState(379);
match(Else);
setState(380);
match(TagEnd);
setState(381);
((For_blockContext)_localctx).b = block();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class For_attributeContext extends ParserRuleContext {
public TerminalNode Offset() { return getToken(LiquidParser.Offset, 0); }
public TerminalNode Col() { return getToken(LiquidParser.Col, 0); }
public TerminalNode Continue() { return getToken(LiquidParser.Continue, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode Id() { return getToken(LiquidParser.Id, 0); }
public For_attributeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_for_attribute; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFor_attribute(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFor_attribute(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFor_attribute(this);
else return visitor.visitChildren(this);
}
}
public final For_attributeContext for_attribute() throws RecognitionException {
For_attributeContext _localctx = new For_attributeContext(_ctx, getState());
enterRule(_localctx, 46, RULE_for_attribute);
try {
setState(393);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(384);
match(Offset);
setState(385);
match(Col);
setState(386);
match(Continue);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(387);
match(Offset);
setState(388);
match(Col);
setState(389);
expr(0);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(390);
match(Id);
setState(391);
match(Col);
setState(392);
expr(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 AttributeContext extends ParserRuleContext {
public TerminalNode Offset() { return getToken(LiquidParser.Offset, 0); }
public TerminalNode Col() { return getToken(LiquidParser.Col, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode Id() { return getToken(LiquidParser.Id, 0); }
public AttributeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_attribute; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterAttribute(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitAttribute(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitAttribute(this);
else return visitor.visitChildren(this);
}
}
public final AttributeContext attribute() throws RecognitionException {
AttributeContext _localctx = new AttributeContext(_ctx, getState());
enterRule(_localctx, 48, RULE_attribute);
try {
setState(401);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Offset:
enterOuterAlt(_localctx, 1);
{
setState(395);
match(Offset);
setState(396);
match(Col);
setState(397);
expr(0);
}
break;
case Id:
enterOuterAlt(_localctx, 2);
{
setState(398);
match(Id);
setState(399);
match(Col);
setState(400);
expr(0);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Table_tagContext extends ParserRuleContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode TableStart() { return getToken(LiquidParser.TableStart, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode In() { return getToken(LiquidParser.In, 0); }
public LookupContext lookup() {
return getRuleContext(LookupContext.class,0);
}
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode TableEnd() { return getToken(LiquidParser.TableEnd, 0); }
public List attribute() {
return getRuleContexts(AttributeContext.class);
}
public AttributeContext attribute(int i) {
return getRuleContext(AttributeContext.class,i);
}
public Table_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_table_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTable_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTable_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTable_tag(this);
else return visitor.visitChildren(this);
}
}
public final Table_tagContext table_tag() throws RecognitionException {
Table_tagContext _localctx = new Table_tagContext(_ctx, getState());
enterRule(_localctx, 50, RULE_table_tag);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(403);
match(TagStart);
setState(404);
match(TableStart);
setState(405);
id();
setState(406);
match(In);
setState(407);
lookup();
setState(411);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Offset || _la==Id) {
{
{
setState(408);
attribute();
}
}
setState(413);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(414);
match(TagEnd);
setState(415);
block();
setState(416);
match(TagStart);
setState(417);
match(TableEnd);
setState(418);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Capture_tagContext extends ParserRuleContext {
public Capture_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_capture_tag; }
public Capture_tagContext() { }
public void copyFrom(Capture_tagContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Capture_tag_IdContext extends Capture_tagContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode CaptureStart() { return getToken(LiquidParser.CaptureStart, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode CaptureEnd() { return getToken(LiquidParser.CaptureEnd, 0); }
public Capture_tag_IdContext(Capture_tagContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterCapture_tag_Id(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitCapture_tag_Id(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitCapture_tag_Id(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Capture_tag_StrContext extends Capture_tagContext {
public List TagStart() { return getTokens(LiquidParser.TagStart); }
public TerminalNode TagStart(int i) {
return getToken(LiquidParser.TagStart, i);
}
public TerminalNode CaptureStart() { return getToken(LiquidParser.CaptureStart, 0); }
public TerminalNode Str() { return getToken(LiquidParser.Str, 0); }
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode CaptureEnd() { return getToken(LiquidParser.CaptureEnd, 0); }
public Capture_tag_StrContext(Capture_tagContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterCapture_tag_Str(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitCapture_tag_Str(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitCapture_tag_Str(this);
else return visitor.visitChildren(this);
}
}
public final Capture_tagContext capture_tag() throws RecognitionException {
Capture_tagContext _localctx = new Capture_tagContext(_ctx, getState());
enterRule(_localctx, 52, RULE_capture_tag);
try {
setState(438);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) {
case 1:
_localctx = new Capture_tag_IdContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(420);
match(TagStart);
setState(421);
match(CaptureStart);
setState(422);
id();
setState(423);
match(TagEnd);
setState(424);
block();
setState(425);
match(TagStart);
setState(426);
match(CaptureEnd);
setState(427);
match(TagEnd);
}
break;
case 2:
_localctx = new Capture_tag_StrContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(429);
match(TagStart);
setState(430);
match(CaptureStart);
setState(431);
match(Str);
setState(432);
match(TagEnd);
setState(433);
block();
setState(434);
match(TagStart);
setState(435);
match(CaptureEnd);
setState(436);
match(TagEnd);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Include_tagContext extends ParserRuleContext {
public Token liquid;
public Token jekyll;
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public TerminalNode Include() { return getToken(LiquidParser.Include, 0); }
public TerminalNode With() { return getToken(LiquidParser.With, 0); }
public File_name_or_outputContext file_name_or_output() {
return getRuleContext(File_name_or_outputContext.class,0);
}
public List jekyll_include_params() {
return getRuleContexts(Jekyll_include_paramsContext.class);
}
public Jekyll_include_paramsContext jekyll_include_params(int i) {
return getRuleContext(Jekyll_include_paramsContext.class,i);
}
public Include_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_include_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterInclude_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitInclude_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitInclude_tag(this);
else return visitor.visitChildren(this);
}
}
public final Include_tagContext include_tag() throws RecognitionException {
Include_tagContext _localctx = new Include_tagContext(_ctx, getState());
enterRule(_localctx, 54, RULE_include_tag);
int _la;
try {
setState(462);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(440);
if (!(isLiquidStyleInclude())) throw new FailedPredicateException(this, "isLiquidStyleInclude()");
setState(441);
match(TagStart);
setState(442);
((Include_tagContext)_localctx).liquid = match(Include);
setState(443);
expr(0);
setState(446);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==With) {
{
setState(444);
match(With);
setState(445);
expr(0);
}
}
setState(448);
match(TagEnd);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(450);
if (!(isJekyllStyleInclude())) throw new FailedPredicateException(this, "isJekyllStyleInclude()");
setState(451);
match(TagStart);
setState(452);
((Include_tagContext)_localctx).jekyll = match(Include);
setState(453);
file_name_or_output();
setState(457);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -3874163580207090L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 2559L) != 0)) {
{
{
setState(454);
jekyll_include_params();
}
}
setState(459);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(460);
match(TagEnd);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Include_relative_tagContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode IncludeRelative() { return getToken(LiquidParser.IncludeRelative, 0); }
public File_name_or_outputContext file_name_or_output() {
return getRuleContext(File_name_or_outputContext.class,0);
}
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public List jekyll_include_params() {
return getRuleContexts(Jekyll_include_paramsContext.class);
}
public Jekyll_include_paramsContext jekyll_include_params(int i) {
return getRuleContext(Jekyll_include_paramsContext.class,i);
}
public Include_relative_tagContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_include_relative_tag; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterInclude_relative_tag(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitInclude_relative_tag(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitInclude_relative_tag(this);
else return visitor.visitChildren(this);
}
}
public final Include_relative_tagContext include_relative_tag() throws RecognitionException {
Include_relative_tagContext _localctx = new Include_relative_tagContext(_ctx, getState());
enterRule(_localctx, 56, RULE_include_relative_tag);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(464);
if (!(isJekyllStyleInclude())) throw new FailedPredicateException(this, "isJekyllStyleInclude()");
setState(465);
match(TagStart);
setState(466);
match(IncludeRelative);
setState(467);
file_name_or_output();
setState(471);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -3874163580207090L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 2559L) != 0)) {
{
{
setState(468);
jekyll_include_params();
}
}
setState(473);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(474);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class File_name_or_outputContext extends ParserRuleContext {
public File_name_or_outputContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_file_name_or_output; }
public File_name_or_outputContext() { }
public void copyFrom(File_name_or_outputContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Jekyll_include_filenameContext extends File_name_or_outputContext {
public FilenameContext filename() {
return getRuleContext(FilenameContext.class,0);
}
public Jekyll_include_filenameContext(File_name_or_outputContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterJekyll_include_filename(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitJekyll_include_filename(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitJekyll_include_filename(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Jekyll_include_outputContext extends File_name_or_outputContext {
public OutputContext output() {
return getRuleContext(OutputContext.class,0);
}
public Jekyll_include_outputContext(File_name_or_outputContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterJekyll_include_output(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitJekyll_include_output(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitJekyll_include_output(this);
else return visitor.visitChildren(this);
}
}
public final File_name_or_outputContext file_name_or_output() throws RecognitionException {
File_name_or_outputContext _localctx = new File_name_or_outputContext(_ctx, getState());
enterRule(_localctx, 58, RULE_file_name_or_output);
try {
setState(478);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) {
case 1:
_localctx = new Jekyll_include_outputContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(476);
output();
}
break;
case 2:
_localctx = new Jekyll_include_filenameContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(477);
filename();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Jekyll_include_paramsContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode EqSign() { return getToken(LiquidParser.EqSign, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public Jekyll_include_paramsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_jekyll_include_params; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterJekyll_include_params(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitJekyll_include_params(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitJekyll_include_params(this);
else return visitor.visitChildren(this);
}
}
public final Jekyll_include_paramsContext jekyll_include_params() throws RecognitionException {
Jekyll_include_paramsContext _localctx = new Jekyll_include_paramsContext(_ctx, getState());
enterRule(_localctx, 60, RULE_jekyll_include_params);
try {
enterOuterAlt(_localctx, 1);
{
setState(480);
id();
setState(481);
match(EqSign);
setState(482);
expr(0);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class OutputContext extends ParserRuleContext {
public ExprContext evaluate;
public Not_out_endContext unparsed;
public OutStartContext outStart() {
return getRuleContext(OutStartContext.class,0);
}
public TerminalNode OutEnd() { return getToken(LiquidParser.OutEnd, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public List filter() {
return getRuleContexts(FilterContext.class);
}
public FilterContext filter(int i) {
return getRuleContext(FilterContext.class,i);
}
public TermContext term() {
return getRuleContext(TermContext.class,0);
}
public Not_out_endContext not_out_end() {
return getRuleContext(Not_out_endContext.class,0);
}
public OutputContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_output; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterOutput(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitOutput(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitOutput(this);
else return visitor.visitChildren(this);
}
}
public final OutputContext output() throws RecognitionException {
OutputContext _localctx = new OutputContext(_ctx, getState());
enterRule(_localctx, 62, RULE_output);
int _la;
try {
int _alt;
setState(520);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(484);
if (!(isEvaluateInOutputTag())) throw new FailedPredicateException(this, "isEvaluateInOutputTag()");
setState(485);
outStart();
setState(486);
((OutputContext)_localctx).evaluate = expr(0);
setState(490);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Pipe) {
{
{
setState(487);
filter();
}
}
setState(492);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(493);
match(OutEnd);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(495);
if (!(isStrict())) throw new FailedPredicateException(this, "isStrict()");
setState(496);
outStart();
setState(497);
term();
setState(501);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Pipe) {
{
{
setState(498);
filter();
}
}
setState(503);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(504);
match(OutEnd);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(506);
if (!(isWarn() || isLax())) throw new FailedPredicateException(this, "isWarn() || isLax()");
setState(507);
outStart();
setState(508);
term();
setState(512);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,43,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(509);
filter();
}
}
}
setState(514);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,43,_ctx);
}
setState(516);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726971904L) != 0)) {
{
setState(515);
((OutputContext)_localctx).unparsed = not_out_end();
}
}
setState(518);
match(OutEnd);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Not_out_endContext extends ParserRuleContext {
public List TagEnd() { return getTokens(LiquidParser.TagEnd); }
public TerminalNode TagEnd(int i) {
return getToken(LiquidParser.TagEnd, i);
}
public List OutStart2() { return getTokens(LiquidParser.OutStart2); }
public TerminalNode OutStart2(int i) {
return getToken(LiquidParser.OutStart2, i);
}
public List Str() { return getTokens(LiquidParser.Str); }
public TerminalNode Str(int i) {
return getToken(LiquidParser.Str, i);
}
public List DotDot() { return getTokens(LiquidParser.DotDot); }
public TerminalNode DotDot(int i) {
return getToken(LiquidParser.DotDot, i);
}
public List Dot() { return getTokens(LiquidParser.Dot); }
public TerminalNode Dot(int i) {
return getToken(LiquidParser.Dot, i);
}
public List NEq() { return getTokens(LiquidParser.NEq); }
public TerminalNode NEq(int i) {
return getToken(LiquidParser.NEq, i);
}
public List Eq() { return getTokens(LiquidParser.Eq); }
public TerminalNode Eq(int i) {
return getToken(LiquidParser.Eq, i);
}
public List EqSign() { return getTokens(LiquidParser.EqSign); }
public TerminalNode EqSign(int i) {
return getToken(LiquidParser.EqSign, i);
}
public List GtEq() { return getTokens(LiquidParser.GtEq); }
public TerminalNode GtEq(int i) {
return getToken(LiquidParser.GtEq, i);
}
public List Gt() { return getTokens(LiquidParser.Gt); }
public TerminalNode Gt(int i) {
return getToken(LiquidParser.Gt, i);
}
public List LtEq() { return getTokens(LiquidParser.LtEq); }
public TerminalNode LtEq(int i) {
return getToken(LiquidParser.LtEq, i);
}
public List Lt() { return getTokens(LiquidParser.Lt); }
public TerminalNode Lt(int i) {
return getToken(LiquidParser.Lt, i);
}
public List Minus() { return getTokens(LiquidParser.Minus); }
public TerminalNode Minus(int i) {
return getToken(LiquidParser.Minus, i);
}
public List Pipe() { return getTokens(LiquidParser.Pipe); }
public TerminalNode Pipe(int i) {
return getToken(LiquidParser.Pipe, i);
}
public List Col() { return getTokens(LiquidParser.Col); }
public TerminalNode Col(int i) {
return getToken(LiquidParser.Col, i);
}
public List Comma() { return getTokens(LiquidParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(LiquidParser.Comma, i);
}
public List OPar() { return getTokens(LiquidParser.OPar); }
public TerminalNode OPar(int i) {
return getToken(LiquidParser.OPar, i);
}
public List CPar() { return getTokens(LiquidParser.CPar); }
public TerminalNode CPar(int i) {
return getToken(LiquidParser.CPar, i);
}
public List OBr() { return getTokens(LiquidParser.OBr); }
public TerminalNode OBr(int i) {
return getToken(LiquidParser.OBr, i);
}
public List CBr() { return getTokens(LiquidParser.CBr); }
public TerminalNode CBr(int i) {
return getToken(LiquidParser.CBr, i);
}
public List QMark() { return getTokens(LiquidParser.QMark); }
public TerminalNode QMark(int i) {
return getToken(LiquidParser.QMark, i);
}
public List PathSep() { return getTokens(LiquidParser.PathSep); }
public TerminalNode PathSep(int i) {
return getToken(LiquidParser.PathSep, i);
}
public List DoubleNum() { return getTokens(LiquidParser.DoubleNum); }
public TerminalNode DoubleNum(int i) {
return getToken(LiquidParser.DoubleNum, i);
}
public List LongNum() { return getTokens(LiquidParser.LongNum); }
public TerminalNode LongNum(int i) {
return getToken(LiquidParser.LongNum, i);
}
public List Contains() { return getTokens(LiquidParser.Contains); }
public TerminalNode Contains(int i) {
return getToken(LiquidParser.Contains, i);
}
public List In() { return getTokens(LiquidParser.In); }
public TerminalNode In(int i) {
return getToken(LiquidParser.In, i);
}
public List And() { return getTokens(LiquidParser.And); }
public TerminalNode And(int i) {
return getToken(LiquidParser.And, i);
}
public List Or() { return getTokens(LiquidParser.Or); }
public TerminalNode Or(int i) {
return getToken(LiquidParser.Or, i);
}
public List True() { return getTokens(LiquidParser.True); }
public TerminalNode True(int i) {
return getToken(LiquidParser.True, i);
}
public List False() { return getTokens(LiquidParser.False); }
public TerminalNode False(int i) {
return getToken(LiquidParser.False, i);
}
public List Nil() { return getTokens(LiquidParser.Nil); }
public TerminalNode Nil(int i) {
return getToken(LiquidParser.Nil, i);
}
public List With() { return getTokens(LiquidParser.With); }
public TerminalNode With(int i) {
return getToken(LiquidParser.With, i);
}
public List Offset() { return getTokens(LiquidParser.Offset); }
public TerminalNode Offset(int i) {
return getToken(LiquidParser.Offset, i);
}
public List Continue() { return getTokens(LiquidParser.Continue); }
public TerminalNode Continue(int i) {
return getToken(LiquidParser.Continue, i);
}
public List Reversed() { return getTokens(LiquidParser.Reversed); }
public TerminalNode Reversed(int i) {
return getToken(LiquidParser.Reversed, i);
}
public List Empty() { return getTokens(LiquidParser.Empty); }
public TerminalNode Empty(int i) {
return getToken(LiquidParser.Empty, i);
}
public List Blank() { return getTokens(LiquidParser.Blank); }
public TerminalNode Blank(int i) {
return getToken(LiquidParser.Blank, i);
}
public List IdChain() { return getTokens(LiquidParser.IdChain); }
public TerminalNode IdChain(int i) {
return getToken(LiquidParser.IdChain, i);
}
public List Id() { return getTokens(LiquidParser.Id); }
public TerminalNode Id(int i) {
return getToken(LiquidParser.Id, i);
}
public Not_out_endContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_not_out_end; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterNot_out_end(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitNot_out_end(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitNot_out_end(this);
else return visitor.visitChildren(this);
}
}
public final Not_out_endContext not_out_end() throws RecognitionException {
Not_out_endContext _localctx = new Not_out_endContext(_ctx, getState());
enterRule(_localctx, 64, RULE_not_out_end);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(523);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(522);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726971904L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
setState(525);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726971904L) != 0) );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FilterContext extends ParserRuleContext {
public TerminalNode Pipe() { return getToken(LiquidParser.Pipe, 0); }
public TerminalNode Id() { return getToken(LiquidParser.Id, 0); }
public ParamsContext params() {
return getRuleContext(ParamsContext.class,0);
}
public FilterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_filter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFilter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFilter(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFilter(this);
else return visitor.visitChildren(this);
}
}
public final FilterContext filter() throws RecognitionException {
FilterContext _localctx = new FilterContext(_ctx, getState());
enterRule(_localctx, 66, RULE_filter);
try {
enterOuterAlt(_localctx, 1);
{
setState(527);
match(Pipe);
setState(528);
match(Id);
setState(530);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) {
case 1:
{
setState(529);
params();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ParamsContext extends ParserRuleContext {
public TerminalNode Col() { return getToken(LiquidParser.Col, 0); }
public List param_expr() {
return getRuleContexts(Param_exprContext.class);
}
public Param_exprContext param_expr(int i) {
return getRuleContext(Param_exprContext.class,i);
}
public List Comma() { return getTokens(LiquidParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(LiquidParser.Comma, i);
}
public ParamsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_params; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterParams(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitParams(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitParams(this);
else return visitor.visitChildren(this);
}
}
public final ParamsContext params() throws RecognitionException {
ParamsContext _localctx = new ParamsContext(_ctx, getState());
enterRule(_localctx, 68, RULE_params);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(532);
match(Col);
setState(533);
param_expr();
setState(538);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,48,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(534);
match(Comma);
setState(535);
param_expr();
}
}
}
setState(540);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,48,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Param_exprContext extends ParserRuleContext {
public Param_exprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_param_expr; }
public Param_exprContext() { }
public void copyFrom(Param_exprContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Param_expr_exprContext extends Param_exprContext {
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public Param_expr_exprContext(Param_exprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterParam_expr_expr(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitParam_expr_expr(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitParam_expr_expr(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Param_expr_key_valueContext extends Param_exprContext {
public Id2Context id2() {
return getRuleContext(Id2Context.class,0);
}
public TerminalNode Col() { return getToken(LiquidParser.Col, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public Param_expr_key_valueContext(Param_exprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterParam_expr_key_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitParam_expr_key_value(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitParam_expr_key_value(this);
else return visitor.visitChildren(this);
}
}
public final Param_exprContext param_expr() throws RecognitionException {
Param_exprContext _localctx = new Param_exprContext(_ctx, getState());
enterRule(_localctx, 70, RULE_param_expr);
try {
setState(546);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,49,_ctx) ) {
case 1:
_localctx = new Param_expr_key_valueContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(541);
id2();
setState(542);
match(Col);
setState(543);
expr(0);
}
break;
case 2:
_localctx = new Param_expr_exprContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(545);
expr(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 AssignmentContext extends ParserRuleContext {
public TerminalNode TagStart() { return getToken(LiquidParser.TagStart, 0); }
public TerminalNode Assign() { return getToken(LiquidParser.Assign, 0); }
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode EqSign() { return getToken(LiquidParser.EqSign, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode TagEnd() { return getToken(LiquidParser.TagEnd, 0); }
public List filter() {
return getRuleContexts(FilterContext.class);
}
public FilterContext filter(int i) {
return getRuleContext(FilterContext.class,i);
}
public AssignmentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_assignment; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterAssignment(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitAssignment(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitAssignment(this);
else return visitor.visitChildren(this);
}
}
public final AssignmentContext assignment() throws RecognitionException {
AssignmentContext _localctx = new AssignmentContext(_ctx, getState());
enterRule(_localctx, 72, RULE_assignment);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(548);
match(TagStart);
setState(549);
match(Assign);
setState(550);
id();
setState(551);
match(EqSign);
setState(552);
expr(0);
setState(556);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Pipe) {
{
{
setState(553);
filter();
}
}
setState(558);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(559);
match(TagEnd);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ExprContext extends ParserRuleContext {
public ExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expr; }
public ExprContext() { }
public void copyFrom(ExprContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Expr_containsContext extends ExprContext {
public ExprContext lhs;
public ExprContext rhs;
public TerminalNode Contains() { return getToken(LiquidParser.Contains, 0); }
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public Expr_containsContext(ExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterExpr_contains(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitExpr_contains(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitExpr_contains(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Expr_termContext extends ExprContext {
public TermContext term() {
return getRuleContext(TermContext.class,0);
}
public Expr_termContext(ExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterExpr_term(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitExpr_term(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitExpr_term(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Expr_relContext extends ExprContext {
public ExprContext lhs;
public Token op;
public ExprContext rhs;
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode LtEq() { return getToken(LiquidParser.LtEq, 0); }
public TerminalNode Lt() { return getToken(LiquidParser.Lt, 0); }
public TerminalNode GtEq() { return getToken(LiquidParser.GtEq, 0); }
public TerminalNode Gt() { return getToken(LiquidParser.Gt, 0); }
public Expr_relContext(ExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterExpr_rel(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitExpr_rel(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitExpr_rel(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Expr_eqContext extends ExprContext {
public ExprContext lhs;
public Token op;
public ExprContext rhs;
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode Eq() { return getToken(LiquidParser.Eq, 0); }
public TerminalNode NEq() { return getToken(LiquidParser.NEq, 0); }
public Expr_eqContext(ExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterExpr_eq(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitExpr_eq(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitExpr_eq(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Expr_logicContext extends ExprContext {
public ExprContext lhs;
public Token op;
public ExprContext rhs;
public List expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode And() { return getToken(LiquidParser.And, 0); }
public TerminalNode Or() { return getToken(LiquidParser.Or, 0); }
public Expr_logicContext(ExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterExpr_logic(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitExpr_logic(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitExpr_logic(this);
else return visitor.visitChildren(this);
}
}
public final ExprContext expr() throws RecognitionException {
return expr(0);
}
private ExprContext expr(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
ExprContext _localctx = new ExprContext(_ctx, _parentState);
ExprContext _prevctx = _localctx;
int _startState = 74;
enterRecursionRule(_localctx, 74, RULE_expr, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new Expr_termContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(562);
term();
}
_ctx.stop = _input.LT(-1);
setState(578);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,52,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(576);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) {
case 1:
{
_localctx = new Expr_relContext(new ExprContext(_parentctx, _parentState));
((Expr_relContext)_localctx).lhs = _prevctx;
pushNewRecursionContext(_localctx, _startState, RULE_expr);
setState(564);
if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
setState(565);
((Expr_relContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 3932160L) != 0)) ) {
((Expr_relContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(566);
((Expr_relContext)_localctx).rhs = expr(6);
}
break;
case 2:
{
_localctx = new Expr_eqContext(new ExprContext(_parentctx, _parentState));
((Expr_eqContext)_localctx).lhs = _prevctx;
pushNewRecursionContext(_localctx, _startState, RULE_expr);
setState(567);
if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
setState(568);
((Expr_eqContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==NEq || _la==Eq) ) {
((Expr_eqContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(569);
((Expr_eqContext)_localctx).rhs = expr(5);
}
break;
case 3:
{
_localctx = new Expr_containsContext(new ExprContext(_parentctx, _parentState));
((Expr_containsContext)_localctx).lhs = _prevctx;
pushNewRecursionContext(_localctx, _startState, RULE_expr);
setState(570);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(571);
match(Contains);
setState(572);
((Expr_containsContext)_localctx).rhs = expr(4);
}
break;
case 4:
{
_localctx = new Expr_logicContext(new ExprContext(_parentctx, _parentState));
((Expr_logicContext)_localctx).lhs = _prevctx;
pushNewRecursionContext(_localctx, _startState, RULE_expr);
setState(573);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(574);
((Expr_logicContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==And || _la==Or) ) {
((Expr_logicContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(575);
((Expr_logicContext)_localctx).rhs = expr(2);
}
break;
}
}
}
setState(580);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,52,_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 TermContext extends ParserRuleContext {
public TermContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_term; }
public TermContext() { }
public void copyFrom(TermContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_DoubleNumContext extends TermContext {
public TerminalNode DoubleNum() { return getToken(LiquidParser.DoubleNum, 0); }
public Term_DoubleNumContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_DoubleNum(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_DoubleNum(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_DoubleNum(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_lookupContext extends TermContext {
public LookupContext lookup() {
return getRuleContext(LookupContext.class,0);
}
public Term_lookupContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_lookup(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_lookup(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_lookup(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_exprContext extends TermContext {
public TerminalNode OPar() { return getToken(LiquidParser.OPar, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode CPar() { return getToken(LiquidParser.CPar, 0); }
public Term_exprContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_expr(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_expr(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_expr(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_TrueContext extends TermContext {
public TerminalNode True() { return getToken(LiquidParser.True, 0); }
public Term_TrueContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_True(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_True(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_True(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_BlankContext extends TermContext {
public TerminalNode Blank() { return getToken(LiquidParser.Blank, 0); }
public Term_BlankContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_Blank(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_Blank(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_Blank(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_LongNumContext extends TermContext {
public TerminalNode LongNum() { return getToken(LiquidParser.LongNum, 0); }
public Term_LongNumContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_LongNum(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_LongNum(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_LongNum(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_FalseContext extends TermContext {
public TerminalNode False() { return getToken(LiquidParser.False, 0); }
public Term_FalseContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_False(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_False(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_False(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_EmptyContext extends TermContext {
public TerminalNode Empty() { return getToken(LiquidParser.Empty, 0); }
public Term_EmptyContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_Empty(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_Empty(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_Empty(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_StrContext extends TermContext {
public TerminalNode Str() { return getToken(LiquidParser.Str, 0); }
public Term_StrContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_Str(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_Str(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_Str(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Term_NilContext extends TermContext {
public TerminalNode Nil() { return getToken(LiquidParser.Nil, 0); }
public Term_NilContext(TermContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterTerm_Nil(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitTerm_Nil(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitTerm_Nil(this);
else return visitor.visitChildren(this);
}
}
public final TermContext term() throws RecognitionException {
TermContext _localctx = new TermContext(_ctx, getState());
enterRule(_localctx, 76, RULE_term);
try {
setState(594);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) {
case 1:
_localctx = new Term_DoubleNumContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(581);
match(DoubleNum);
}
break;
case 2:
_localctx = new Term_LongNumContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(582);
match(LongNum);
}
break;
case 3:
_localctx = new Term_StrContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(583);
match(Str);
}
break;
case 4:
_localctx = new Term_TrueContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(584);
match(True);
}
break;
case 5:
_localctx = new Term_FalseContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(585);
match(False);
}
break;
case 6:
_localctx = new Term_NilContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(586);
match(Nil);
}
break;
case 7:
_localctx = new Term_lookupContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(587);
lookup();
}
break;
case 8:
_localctx = new Term_EmptyContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(588);
match(Empty);
}
break;
case 9:
_localctx = new Term_BlankContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(589);
match(Blank);
}
break;
case 10:
_localctx = new Term_exprContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(590);
match(OPar);
setState(591);
expr(0);
setState(592);
match(CPar);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LookupContext extends ParserRuleContext {
public LookupContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lookup; }
public LookupContext() { }
public void copyFrom(LookupContext ctx) {
super.copyFrom(ctx);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Lookup_IdContext extends LookupContext {
public TerminalNode OBr() { return getToken(LiquidParser.OBr, 0); }
public TerminalNode Id() { return getToken(LiquidParser.Id, 0); }
public TerminalNode CBr() { return getToken(LiquidParser.CBr, 0); }
public TerminalNode QMark() { return getToken(LiquidParser.QMark, 0); }
public Lookup_IdContext(LookupContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterLookup_Id(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitLookup_Id(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitLookup_Id(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Lookup_id_indexesContext extends LookupContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public List index() {
return getRuleContexts(IndexContext.class);
}
public IndexContext index(int i) {
return getRuleContext(IndexContext.class,i);
}
public TerminalNode QMark() { return getToken(LiquidParser.QMark, 0); }
public Lookup_id_indexesContext(LookupContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterLookup_id_indexes(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitLookup_id_indexes(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitLookup_id_indexes(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Lookup_emptyContext extends LookupContext {
public TerminalNode Empty() { return getToken(LiquidParser.Empty, 0); }
public Lookup_emptyContext(LookupContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterLookup_empty(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitLookup_empty(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitLookup_empty(this);
else return visitor.visitChildren(this);
}
}
@SuppressWarnings("CheckReturnValue")
public static class Lookup_StrContext extends LookupContext {
public TerminalNode OBr() { return getToken(LiquidParser.OBr, 0); }
public TerminalNode Str() { return getToken(LiquidParser.Str, 0); }
public TerminalNode CBr() { return getToken(LiquidParser.CBr, 0); }
public TerminalNode QMark() { return getToken(LiquidParser.QMark, 0); }
public Lookup_StrContext(LookupContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterLookup_Str(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitLookup_Str(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitLookup_Str(this);
else return visitor.visitChildren(this);
}
}
public final LookupContext lookup() throws RecognitionException {
LookupContext _localctx = new LookupContext(_ctx, getState());
enterRule(_localctx, 78, RULE_lookup);
try {
int _alt;
setState(619);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,58,_ctx) ) {
case 1:
_localctx = new Lookup_emptyContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(596);
match(Empty);
}
break;
case 2:
_localctx = new Lookup_id_indexesContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(597);
id();
setState(601);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,54,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(598);
index();
}
}
}
setState(603);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,54,_ctx);
}
setState(605);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,55,_ctx) ) {
case 1:
{
setState(604);
match(QMark);
}
break;
}
}
break;
case 3:
_localctx = new Lookup_StrContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(607);
match(OBr);
setState(608);
match(Str);
setState(609);
match(CBr);
setState(611);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) {
case 1:
{
setState(610);
match(QMark);
}
break;
}
}
break;
case 4:
_localctx = new Lookup_IdContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(613);
match(OBr);
setState(614);
match(Id);
setState(615);
match(CBr);
setState(617);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,57,_ctx) ) {
case 1:
{
setState(616);
match(QMark);
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class IdContext extends ParserRuleContext {
public TerminalNode Id() { return getToken(LiquidParser.Id, 0); }
public TerminalNode CaptureStart() { return getToken(LiquidParser.CaptureStart, 0); }
public TerminalNode CaptureEnd() { return getToken(LiquidParser.CaptureEnd, 0); }
public TerminalNode CommentStart() { return getToken(LiquidParser.CommentStart, 0); }
public TerminalNode CommentEnd() { return getToken(LiquidParser.CommentEnd, 0); }
public TerminalNode RawStart() { return getToken(LiquidParser.RawStart, 0); }
public TerminalNode RawEnd() { return getToken(LiquidParser.RawEnd, 0); }
public TerminalNode IfStart() { return getToken(LiquidParser.IfStart, 0); }
public TerminalNode Elsif() { return getToken(LiquidParser.Elsif, 0); }
public TerminalNode IfEnd() { return getToken(LiquidParser.IfEnd, 0); }
public TerminalNode UnlessStart() { return getToken(LiquidParser.UnlessStart, 0); }
public TerminalNode UnlessEnd() { return getToken(LiquidParser.UnlessEnd, 0); }
public TerminalNode Else() { return getToken(LiquidParser.Else, 0); }
public TerminalNode Contains() { return getToken(LiquidParser.Contains, 0); }
public TerminalNode CaseStart() { return getToken(LiquidParser.CaseStart, 0); }
public TerminalNode CaseEnd() { return getToken(LiquidParser.CaseEnd, 0); }
public TerminalNode When() { return getToken(LiquidParser.When, 0); }
public TerminalNode Cycle() { return getToken(LiquidParser.Cycle, 0); }
public TerminalNode ForStart() { return getToken(LiquidParser.ForStart, 0); }
public TerminalNode ForEnd() { return getToken(LiquidParser.ForEnd, 0); }
public TerminalNode In() { return getToken(LiquidParser.In, 0); }
public TerminalNode And() { return getToken(LiquidParser.And, 0); }
public TerminalNode Or() { return getToken(LiquidParser.Or, 0); }
public TerminalNode TableStart() { return getToken(LiquidParser.TableStart, 0); }
public TerminalNode TableEnd() { return getToken(LiquidParser.TableEnd, 0); }
public TerminalNode Assign() { return getToken(LiquidParser.Assign, 0); }
public TerminalNode Include() { return getToken(LiquidParser.Include, 0); }
public TerminalNode With() { return getToken(LiquidParser.With, 0); }
public TerminalNode Offset() { return getToken(LiquidParser.Offset, 0); }
public TerminalNode Continue() { return getToken(LiquidParser.Continue, 0); }
public TerminalNode Reversed() { return getToken(LiquidParser.Reversed, 0); }
public TerminalNode BlockId() { return getToken(LiquidParser.BlockId, 0); }
public TerminalNode EndBlockId() { return getToken(LiquidParser.EndBlockId, 0); }
public TerminalNode SimpleTagId() { return getToken(LiquidParser.SimpleTagId, 0); }
public IdContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_id; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterId(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitId(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitId(this);
else return visitor.visitChildren(this);
}
}
public final IdContext id() throws RecognitionException {
IdContext _localctx = new IdContext(_ctx, getState());
enterRule(_localctx, 80, RULE_id);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(621);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & -3874163580207090L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 2559L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Id2Context extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode Empty() { return getToken(LiquidParser.Empty, 0); }
public TerminalNode Nil() { return getToken(LiquidParser.Nil, 0); }
public TerminalNode True() { return getToken(LiquidParser.True, 0); }
public TerminalNode False() { return getToken(LiquidParser.False, 0); }
public Id2Context(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_id2; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterId2(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitId2(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitId2(this);
else return visitor.visitChildren(this);
}
}
public final Id2Context id2() throws RecognitionException {
Id2Context _localctx = new Id2Context(_ctx, getState());
enterRule(_localctx, 82, RULE_id2);
try {
setState(628);
_errHandler.sync(this);
switch (_input.LA(1)) {
case BlockId:
case EndBlockId:
case SimpleTagId:
case Contains:
case In:
case And:
case Or:
case With:
case Offset:
case Continue:
case Reversed:
case Id:
case CaptureStart:
case CaptureEnd:
case CommentStart:
case CommentEnd:
case RawStart:
case IfStart:
case Elsif:
case IfEnd:
case UnlessStart:
case UnlessEnd:
case Else:
case CaseStart:
case CaseEnd:
case When:
case Cycle:
case ForStart:
case ForEnd:
case TableStart:
case TableEnd:
case Assign:
case Include:
case RawEnd:
enterOuterAlt(_localctx, 1);
{
setState(623);
id();
}
break;
case Empty:
enterOuterAlt(_localctx, 2);
{
setState(624);
match(Empty);
}
break;
case Nil:
enterOuterAlt(_localctx, 3);
{
setState(625);
match(Nil);
}
break;
case True:
enterOuterAlt(_localctx, 4);
{
setState(626);
match(True);
}
break;
case False:
enterOuterAlt(_localctx, 5);
{
setState(627);
match(False);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class IndexContext extends ParserRuleContext {
public TerminalNode Dot() { return getToken(LiquidParser.Dot, 0); }
public Id2Context id2() {
return getRuleContext(Id2Context.class,0);
}
public TerminalNode OBr() { return getToken(LiquidParser.OBr, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode CBr() { return getToken(LiquidParser.CBr, 0); }
public IndexContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_index; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterIndex(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitIndex(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitIndex(this);
else return visitor.visitChildren(this);
}
}
public final IndexContext index() throws RecognitionException {
IndexContext _localctx = new IndexContext(_ctx, getState());
enterRule(_localctx, 84, RULE_index);
try {
setState(636);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Dot:
enterOuterAlt(_localctx, 1);
{
setState(630);
match(Dot);
setState(631);
id2();
}
break;
case OBr:
enterOuterAlt(_localctx, 2);
{
setState(632);
match(OBr);
setState(633);
expr(0);
setState(634);
match(CBr);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Other_tag_parametersContext extends ParserRuleContext {
public Other_than_tag_endContext other_than_tag_end() {
return getRuleContext(Other_than_tag_endContext.class,0);
}
public Other_tag_parametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_other_tag_parameters; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterOther_tag_parameters(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitOther_tag_parameters(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitOther_tag_parameters(this);
else return visitor.visitChildren(this);
}
}
public final Other_tag_parametersContext other_tag_parameters() throws RecognitionException {
Other_tag_parametersContext _localctx = new Other_tag_parametersContext(_ctx, getState());
enterRule(_localctx, 86, RULE_other_tag_parameters);
try {
enterOuterAlt(_localctx, 1);
{
setState(638);
other_than_tag_end();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class Other_than_tag_endContext extends ParserRuleContext {
public List OutEnd() { return getTokens(LiquidParser.OutEnd); }
public TerminalNode OutEnd(int i) {
return getToken(LiquidParser.OutEnd, i);
}
public List OutStart2() { return getTokens(LiquidParser.OutStart2); }
public TerminalNode OutStart2(int i) {
return getToken(LiquidParser.OutStart2, i);
}
public List Str() { return getTokens(LiquidParser.Str); }
public TerminalNode Str(int i) {
return getToken(LiquidParser.Str, i);
}
public List DotDot() { return getTokens(LiquidParser.DotDot); }
public TerminalNode DotDot(int i) {
return getToken(LiquidParser.DotDot, i);
}
public List Dot() { return getTokens(LiquidParser.Dot); }
public TerminalNode Dot(int i) {
return getToken(LiquidParser.Dot, i);
}
public List NEq() { return getTokens(LiquidParser.NEq); }
public TerminalNode NEq(int i) {
return getToken(LiquidParser.NEq, i);
}
public List Eq() { return getTokens(LiquidParser.Eq); }
public TerminalNode Eq(int i) {
return getToken(LiquidParser.Eq, i);
}
public List EqSign() { return getTokens(LiquidParser.EqSign); }
public TerminalNode EqSign(int i) {
return getToken(LiquidParser.EqSign, i);
}
public List GtEq() { return getTokens(LiquidParser.GtEq); }
public TerminalNode GtEq(int i) {
return getToken(LiquidParser.GtEq, i);
}
public List Gt() { return getTokens(LiquidParser.Gt); }
public TerminalNode Gt(int i) {
return getToken(LiquidParser.Gt, i);
}
public List LtEq() { return getTokens(LiquidParser.LtEq); }
public TerminalNode LtEq(int i) {
return getToken(LiquidParser.LtEq, i);
}
public List Lt() { return getTokens(LiquidParser.Lt); }
public TerminalNode Lt(int i) {
return getToken(LiquidParser.Lt, i);
}
public List Minus() { return getTokens(LiquidParser.Minus); }
public TerminalNode Minus(int i) {
return getToken(LiquidParser.Minus, i);
}
public List Pipe() { return getTokens(LiquidParser.Pipe); }
public TerminalNode Pipe(int i) {
return getToken(LiquidParser.Pipe, i);
}
public List Col() { return getTokens(LiquidParser.Col); }
public TerminalNode Col(int i) {
return getToken(LiquidParser.Col, i);
}
public List Comma() { return getTokens(LiquidParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(LiquidParser.Comma, i);
}
public List OPar() { return getTokens(LiquidParser.OPar); }
public TerminalNode OPar(int i) {
return getToken(LiquidParser.OPar, i);
}
public List CPar() { return getTokens(LiquidParser.CPar); }
public TerminalNode CPar(int i) {
return getToken(LiquidParser.CPar, i);
}
public List OBr() { return getTokens(LiquidParser.OBr); }
public TerminalNode OBr(int i) {
return getToken(LiquidParser.OBr, i);
}
public List CBr() { return getTokens(LiquidParser.CBr); }
public TerminalNode CBr(int i) {
return getToken(LiquidParser.CBr, i);
}
public List QMark() { return getTokens(LiquidParser.QMark); }
public TerminalNode QMark(int i) {
return getToken(LiquidParser.QMark, i);
}
public List PathSep() { return getTokens(LiquidParser.PathSep); }
public TerminalNode PathSep(int i) {
return getToken(LiquidParser.PathSep, i);
}
public List DoubleNum() { return getTokens(LiquidParser.DoubleNum); }
public TerminalNode DoubleNum(int i) {
return getToken(LiquidParser.DoubleNum, i);
}
public List LongNum() { return getTokens(LiquidParser.LongNum); }
public TerminalNode LongNum(int i) {
return getToken(LiquidParser.LongNum, i);
}
public List Contains() { return getTokens(LiquidParser.Contains); }
public TerminalNode Contains(int i) {
return getToken(LiquidParser.Contains, i);
}
public List In() { return getTokens(LiquidParser.In); }
public TerminalNode In(int i) {
return getToken(LiquidParser.In, i);
}
public List And() { return getTokens(LiquidParser.And); }
public TerminalNode And(int i) {
return getToken(LiquidParser.And, i);
}
public List Or() { return getTokens(LiquidParser.Or); }
public TerminalNode Or(int i) {
return getToken(LiquidParser.Or, i);
}
public List True() { return getTokens(LiquidParser.True); }
public TerminalNode True(int i) {
return getToken(LiquidParser.True, i);
}
public List False() { return getTokens(LiquidParser.False); }
public TerminalNode False(int i) {
return getToken(LiquidParser.False, i);
}
public List Nil() { return getTokens(LiquidParser.Nil); }
public TerminalNode Nil(int i) {
return getToken(LiquidParser.Nil, i);
}
public List With() { return getTokens(LiquidParser.With); }
public TerminalNode With(int i) {
return getToken(LiquidParser.With, i);
}
public List Offset() { return getTokens(LiquidParser.Offset); }
public TerminalNode Offset(int i) {
return getToken(LiquidParser.Offset, i);
}
public List Continue() { return getTokens(LiquidParser.Continue); }
public TerminalNode Continue(int i) {
return getToken(LiquidParser.Continue, i);
}
public List Reversed() { return getTokens(LiquidParser.Reversed); }
public TerminalNode Reversed(int i) {
return getToken(LiquidParser.Reversed, i);
}
public List Empty() { return getTokens(LiquidParser.Empty); }
public TerminalNode Empty(int i) {
return getToken(LiquidParser.Empty, i);
}
public List Blank() { return getTokens(LiquidParser.Blank); }
public TerminalNode Blank(int i) {
return getToken(LiquidParser.Blank, i);
}
public List IdChain() { return getTokens(LiquidParser.IdChain); }
public TerminalNode IdChain(int i) {
return getToken(LiquidParser.IdChain, i);
}
public List Id() { return getTokens(LiquidParser.Id); }
public TerminalNode Id(int i) {
return getToken(LiquidParser.Id, i);
}
public Other_than_tag_endContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_other_than_tag_end; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterOther_than_tag_end(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitOther_than_tag_end(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitOther_than_tag_end(this);
else return visitor.visitChildren(this);
}
}
public final Other_than_tag_endContext other_than_tag_end() throws RecognitionException {
Other_than_tag_endContext _localctx = new Other_than_tag_endContext(_ctx, getState());
enterRule(_localctx, 88, RULE_other_than_tag_end);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(641);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(640);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
setState(643);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & 1125882726970880L) != 0) );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FilenameContext extends ParserRuleContext {
public FilenameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_filename; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterFilename(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitFilename(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitFilename(this);
else return visitor.visitChildren(this);
}
}
public final FilenameContext filename() throws RecognitionException {
FilenameContext _localctx = new FilenameContext(_ctx, getState());
enterRule(_localctx, 90, RULE_filename);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(646);
_errHandler.sync(this);
_alt = 1+1;
do {
switch (_alt) {
case 1+1:
{
{
setState(645);
matchWildcard();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(648);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,62,_ctx);
} while ( _alt!=1 && _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 OutStartContext extends ParserRuleContext {
public TerminalNode OutStart() { return getToken(LiquidParser.OutStart, 0); }
public TerminalNode OutStart2() { return getToken(LiquidParser.OutStart2, 0); }
public OutStartContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_outStart; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterOutStart(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitOutStart(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitOutStart(this);
else return visitor.visitChildren(this);
}
}
public final OutStartContext outStart() throws RecognitionException {
OutStartContext _localctx = new OutStartContext(_ctx, getState());
enterRule(_localctx, 92, RULE_outStart);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(650);
_la = _input.LA(1);
if ( !(_la==OutStart || _la==OutStart2) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class OtherContext extends ParserRuleContext {
public List Other() { return getTokens(LiquidParser.Other); }
public TerminalNode Other(int i) {
return getToken(LiquidParser.Other, i);
}
public OtherContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_other; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).enterOther(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof LiquidParserListener ) ((LiquidParserListener)listener).exitOther(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof LiquidParserVisitor ) return ((LiquidParserVisitor extends T>)visitor).visitOther(this);
else return visitor.visitChildren(this);
}
}
public final OtherContext other() throws RecognitionException {
OtherContext _localctx = new OtherContext(_ctx, getState());
enterRule(_localctx, 94, RULE_other);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(653);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(652);
match(Other);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(655);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,63,_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;
}
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 27:
return include_tag_sempred((Include_tagContext)_localctx, predIndex);
case 28:
return include_relative_tag_sempred((Include_relative_tagContext)_localctx, predIndex);
case 31:
return output_sempred((OutputContext)_localctx, predIndex);
case 37:
return expr_sempred((ExprContext)_localctx, predIndex);
}
return true;
}
private boolean include_tag_sempred(Include_tagContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return isLiquidStyleInclude();
case 1:
return isJekyllStyleInclude();
}
return true;
}
private boolean include_relative_tag_sempred(Include_relative_tagContext _localctx, int predIndex) {
switch (predIndex) {
case 2:
return isJekyllStyleInclude();
}
return true;
}
private boolean output_sempred(OutputContext _localctx, int predIndex) {
switch (predIndex) {
case 3:
return isEvaluateInOutputTag();
case 4:
return isStrict();
case 5:
return isWarn() || isLax();
}
return true;
}
private boolean expr_sempred(ExprContext _localctx, int predIndex) {
switch (predIndex) {
case 6:
return precpred(_ctx, 5);
case 7:
return precpred(_ctx, 4);
case 8:
return precpred(_ctx, 3);
case 9:
return precpred(_ctx, 2);
}
return true;
}
public static final String _serializedATN =
"\u0004\u0001L\u0292\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"+
"\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007\u0012"+
"\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007\u0015"+
"\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007\u0018"+
"\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007\u001b"+
"\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007\u001e"+
"\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007\"\u0002"+
"#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007\'\u0002"+
"(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007,\u0002"+
"-\u0007-\u0002.\u0007.\u0002/\u0007/\u0001\u0000\u0001\u0000\u0001\u0000"+
"\u0001\u0001\u0005\u0001e\b\u0001\n\u0001\f\u0001h\t\u0001\u0001\u0002"+
"\u0001\u0002\u0001\u0002\u0001\u0002\u0003\u0002n\b\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\u0003\u0003~\b\u0003\u0001\u0004\u0001\u0004\u0001\u0004"+
"\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u0087\b\u0005"+
"\u0001\u0005\u0001\u0005\u0005\u0005\u008b\b\u0005\n\u0005\f\u0005\u008e"+
"\t\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u0094"+
"\b\u0005\u0001\u0006\u0001\u0006\u0001\u0006\u0003\u0006\u0099\b\u0006"+
"\u0001\u0006\u0001\u0006\u0005\u0006\u009d\b\u0006\n\u0006\f\u0006\u00a0"+
"\t\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001"+
"\u0006\u0001\u0006\u0003\u0006\u00a9\b\u0006\u0001\u0006\u0001\u0006\u0005"+
"\u0006\u00ad\b\u0006\n\u0006\f\u0006\u00b0\t\u0006\u0001\u0006\u0001\u0006"+
"\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0003\u0006"+
"\u00b9\b\u0006\u0001\u0006\u0001\u0006\u0005\u0006\u00bd\b\u0006\n\u0006"+
"\f\u0006\u00c0\t\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+
"\u0003\u0006\u00c6\b\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+
"\u0001\u0006\u0003\u0006\u00cd\b\u0006\u0001\u0007\u0001\u0007\u0001\u0007"+
"\u0003\u0007\u00d2\b\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001"+
"\b\u0001\b\u0001\b\u0001\b\u0001\t\u0005\t\u00dd\b\t\n\t\f\t\u00e0\t\t"+
"\u0001\n\u0001\n\u0001\n\u0001\n\u0005\n\u00e6\b\n\n\n\f\n\u00e9\t\n\u0001"+
"\n\u0001\n\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+
"\u0001\u000b\u0001\u000b\u0005\u000b\u00f5\b\u000b\n\u000b\f\u000b\u00f8"+
"\t\u000b\u0001\u000b\u0003\u000b\u00fb\b\u000b\u0001\u000b\u0001\u000b"+
"\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001"+
"\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001"+
"\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0003\u000e\u0112\b\u000e\u0001"+
"\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001"+
"\u000f\u0001\u000f\u0001\u000f\u0003\u000f\u011d\b\u000f\u0001\u000f\u0004"+
"\u000f\u0120\b\u000f\u000b\u000f\f\u000f\u0121\u0001\u000f\u0003\u000f"+
"\u0125\b\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u0010"+
"\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0005\u0010\u0130\b\u0010"+
"\n\u0010\f\u0010\u0133\t\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+
"\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0005"+
"\u0011\u013e\b\u0011\n\u0011\f\u0011\u0141\t\u0011\u0001\u0011\u0001\u0011"+
"\u0001\u0012\u0001\u0012\u0001\u0012\u0003\u0012\u0148\b\u0012\u0001\u0013"+
"\u0001\u0013\u0003\u0013\u014c\b\u0013\u0001\u0014\u0001\u0014\u0001\u0014"+
"\u0001\u0014\u0001\u0014\u0001\u0014\u0003\u0014\u0154\b\u0014\u0001\u0014"+
"\u0005\u0014\u0157\b\u0014\n\u0014\f\u0014\u015a\t\u0014\u0001\u0014\u0001"+
"\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001"+
"\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001"+
"\u0015\u0001\u0015\u0001\u0015\u0003\u0015\u016c\b\u0015\u0001\u0015\u0005"+
"\u0015\u016f\b\u0015\n\u0015\f\u0015\u0172\t\u0015\u0001\u0015\u0001\u0015"+
"\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016"+
"\u0001\u0016\u0001\u0016\u0001\u0016\u0003\u0016\u017f\b\u0016\u0001\u0017"+
"\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+
"\u0001\u0017\u0001\u0017\u0003\u0017\u018a\b\u0017\u0001\u0018\u0001\u0018"+
"\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0003\u0018\u0192\b\u0018"+
"\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+
"\u0005\u0019\u019a\b\u0019\n\u0019\f\u0019\u019d\t\u0019\u0001\u0019\u0001"+
"\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001"+
"\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+
"\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+
"\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u01b7"+
"\b\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
"\u001b\u0003\u001b\u01bf\b\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
"\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0005\u001b\u01c8\b\u001b\n"+
"\u001b\f\u001b\u01cb\t\u001b\u0001\u001b\u0001\u001b\u0003\u001b\u01cf"+
"\b\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0005"+
"\u001c\u01d6\b\u001c\n\u001c\f\u001c\u01d9\t\u001c\u0001\u001c\u0001\u001c"+
"\u0001\u001d\u0001\u001d\u0003\u001d\u01df\b\u001d\u0001\u001e\u0001\u001e"+
"\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+
"\u0005\u001f\u01e9\b\u001f\n\u001f\f\u001f\u01ec\t\u001f\u0001\u001f\u0001"+
"\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u01f4"+
"\b\u001f\n\u001f\f\u001f\u01f7\t\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+
"\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u01ff\b\u001f\n\u001f"+
"\f\u001f\u0202\t\u001f\u0001\u001f\u0003\u001f\u0205\b\u001f\u0001\u001f"+
"\u0001\u001f\u0003\u001f\u0209\b\u001f\u0001 \u0004 \u020c\b \u000b \f"+
" \u020d\u0001!\u0001!\u0001!\u0003!\u0213\b!\u0001\"\u0001\"\u0001\"\u0001"+
"\"\u0005\"\u0219\b\"\n\"\f\"\u021c\t\"\u0001#\u0001#\u0001#\u0001#\u0001"+
"#\u0003#\u0223\b#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0005$\u022b"+
"\b$\n$\f$\u022e\t$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+
"%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0005"+
"%\u0241\b%\n%\f%\u0244\t%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+
"&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0003&\u0253\b&\u0001\'\u0001"+
"\'\u0001\'\u0005\'\u0258\b\'\n\'\f\'\u025b\t\'\u0001\'\u0003\'\u025e\b"+
"\'\u0001\'\u0001\'\u0001\'\u0001\'\u0003\'\u0264\b\'\u0001\'\u0001\'\u0001"+
"\'\u0001\'\u0003\'\u026a\b\'\u0003\'\u026c\b\'\u0001(\u0001(\u0001)\u0001"+
")\u0001)\u0001)\u0001)\u0003)\u0275\b)\u0001*\u0001*\u0001*\u0001*\u0001"+
"*\u0001*\u0003*\u027d\b*\u0001+\u0001+\u0001,\u0004,\u0282\b,\u000b,\f"+
",\u0283\u0001-\u0004-\u0287\b-\u000b-\f-\u0288\u0001.\u0001.\u0001/\u0004"+
"/\u028e\b/\u000b/\f/\u028f\u0001/\u0006\u008c\u009e\u00ae\u00be\u00e7"+
"\u0288\u0001J0\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016"+
"\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^\u0000\b\u0002"+
"\u0000\u0019\u0019&&\u0003\u0000\t\t\u000b!#1\u0001\u0000\u0012\u0015"+
"\u0001\u0000\u000f\u0010\u0001\u0000%&\u0006\u0000\u0001\u0003#&*-114"+
"HKK\u0003\u0000\t\n\f!#1\u0002\u0000\u0006\u0006\t\t\u02c3\u0000`\u0001"+
"\u0000\u0000\u0000\u0002f\u0001\u0000\u0000\u0000\u0004m\u0001\u0000\u0000"+
"\u0000\u0006}\u0001\u0000\u0000\u0000\b\u007f\u0001\u0000\u0000\u0000"+
"\n\u0093\u0001\u0000\u0000\u0000\f\u00cc\u0001\u0000\u0000\u0000\u000e"+
"\u00ce\u0001\u0000\u0000\u0000\u0010\u00d5\u0001\u0000\u0000\u0000\u0012"+
"\u00de\u0001\u0000\u0000\u0000\u0014\u00e1\u0001\u0000\u0000\u0000\u0016"+
"\u00ee\u0001\u0000\u0000\u0000\u0018\u0100\u0001\u0000\u0000\u0000\u001a"+
"\u0106\u0001\u0000\u0000\u0000\u001c\u010b\u0001\u0000\u0000\u0000\u001e"+
"\u0117\u0001\u0000\u0000\u0000 \u012a\u0001\u0000\u0000\u0000\"\u0137"+
"\u0001\u0000\u0000\u0000$\u0147\u0001\u0000\u0000\u0000&\u014b\u0001\u0000"+
"\u0000\u0000(\u014d\u0001\u0000\u0000\u0000*\u0161\u0001\u0000\u0000\u0000"+
",\u0179\u0001\u0000\u0000\u0000.\u0189\u0001\u0000\u0000\u00000\u0191"+
"\u0001\u0000\u0000\u00002\u0193\u0001\u0000\u0000\u00004\u01b6\u0001\u0000"+
"\u0000\u00006\u01ce\u0001\u0000\u0000\u00008\u01d0\u0001\u0000\u0000\u0000"+
":\u01de\u0001\u0000\u0000\u0000<\u01e0\u0001\u0000\u0000\u0000>\u0208"+
"\u0001\u0000\u0000\u0000@\u020b\u0001\u0000\u0000\u0000B\u020f\u0001\u0000"+
"\u0000\u0000D\u0214\u0001\u0000\u0000\u0000F\u0222\u0001\u0000\u0000\u0000"+
"H\u0224\u0001\u0000\u0000\u0000J\u0231\u0001\u0000\u0000\u0000L\u0252"+
"\u0001\u0000\u0000\u0000N\u026b\u0001\u0000\u0000\u0000P\u026d\u0001\u0000"+
"\u0000\u0000R\u0274\u0001\u0000\u0000\u0000T\u027c\u0001\u0000\u0000\u0000"+
"V\u027e\u0001\u0000\u0000\u0000X\u0281\u0001\u0000\u0000\u0000Z\u0286"+
"\u0001\u0000\u0000\u0000\\\u028a\u0001\u0000\u0000\u0000^\u028d\u0001"+
"\u0000\u0000\u0000`a\u0003\u0002\u0001\u0000ab\u0005\u0000\u0000\u0001"+
"b\u0001\u0001\u0000\u0000\u0000ce\u0003\u0004\u0002\u0000dc\u0001\u0000"+
"\u0000\u0000eh\u0001\u0000\u0000\u0000fd\u0001\u0000\u0000\u0000fg\u0001"+
"\u0000\u0000\u0000g\u0003\u0001\u0000\u0000\u0000hf\u0001\u0000\u0000"+
"\u0000in\u0003\u0006\u0003\u0000jn\u0003>\u001f\u0000kn\u0003H$\u0000"+
"ln\u0003^/\u0000mi\u0001\u0000\u0000\u0000mj\u0001\u0000\u0000\u0000m"+
"k\u0001\u0000\u0000\u0000ml\u0001\u0000\u0000\u0000n\u0005\u0001\u0000"+
"\u0000\u0000o~\u0003\u0010\b\u0000p~\u0003\u0014\n\u0000q~\u0003\u0016"+
"\u000b\u0000r~\u0003\u001c\u000e\u0000s~\u0003\u001e\u000f\u0000t~\u0003"+
"\"\u0011\u0000u~\u0003&\u0013\u0000v~\u00032\u0019\u0000w~\u00034\u001a"+
"\u0000x~\u00036\u001b\u0000y~\u00038\u001c\u0000z~\u0003\b\u0004\u0000"+
"{~\u0003\u000e\u0007\u0000|~\u0003\n\u0005\u0000}o\u0001\u0000\u0000\u0000"+
"}p\u0001\u0000\u0000\u0000}q\u0001\u0000\u0000\u0000}r\u0001\u0000\u0000"+
"\u0000}s\u0001\u0000\u0000\u0000}t\u0001\u0000\u0000\u0000}u\u0001\u0000"+
"\u0000\u0000}v\u0001\u0000\u0000\u0000}w\u0001\u0000\u0000\u0000}x\u0001"+
"\u0000\u0000\u0000}y\u0001\u0000\u0000\u0000}z\u0001\u0000\u0000\u0000"+
"}{\u0001\u0000\u0000\u0000}|\u0001\u0000\u0000\u0000~\u0007\u0001\u0000"+
"\u0000\u0000\u007f\u0080\u0005\u0007\u0000\u0000\u0080\u0081\u0005,\u0000"+
"\u0000\u0081\u0082\u0005\u000b\u0000\u0000\u0082\t\u0001\u0000\u0000\u0000"+
"\u0083\u0084\u0005\u0007\u0000\u0000\u0084\u0086\u0005\u0001\u0000\u0000"+
"\u0085\u0087\u0003V+\u0000\u0086\u0085\u0001\u0000\u0000\u0000\u0086\u0087"+
"\u0001\u0000\u0000\u0000\u0087\u0088\u0001\u0000\u0000\u0000\u0088\u008c"+
"\u0005\u000b\u0000\u0000\u0089\u008b\u0003\u0004\u0002\u0000\u008a\u0089"+
"\u0001\u0000\u0000\u0000\u008b\u008e\u0001\u0000\u0000\u0000\u008c\u008d"+
"\u0001\u0000\u0000\u0000\u008c\u008a\u0001\u0000\u0000\u0000\u008d\u008f"+
"\u0001\u0000\u0000\u0000\u008e\u008c\u0001\u0000\u0000\u0000\u008f\u0090"+
"\u0005\u0007\u0000\u0000\u0090\u0091\u0005\u0002\u0000\u0000\u0091\u0094"+
"\u0005\u000b\u0000\u0000\u0092\u0094\u0003\f\u0006\u0000\u0093\u0083\u0001"+
"\u0000\u0000\u0000\u0093\u0092\u0001\u0000\u0000\u0000\u0094\u000b\u0001"+
"\u0000\u0000\u0000\u0095\u0096\u0005\u0007\u0000\u0000\u0096\u0098\u0005"+
"\u0001\u0000\u0000\u0097\u0099\u0003V+\u0000\u0098\u0097\u0001\u0000\u0000"+
"\u0000\u0098\u0099\u0001\u0000\u0000\u0000\u0099\u009a\u0001\u0000\u0000"+
"\u0000\u009a\u009e\u0005\u000b\u0000\u0000\u009b\u009d\u0003\u0004\u0002"+
"\u0000\u009c\u009b\u0001\u0000\u0000\u0000\u009d\u00a0\u0001\u0000\u0000"+
"\u0000\u009e\u009f\u0001\u0000\u0000\u0000\u009e\u009c\u0001\u0000\u0000"+
"\u0000\u009f\u00a1\u0001\u0000\u0000\u0000\u00a0\u009e\u0001\u0000\u0000"+
"\u0000\u00a1\u00a2\u0005\u0007\u0000\u0000\u00a2\u00a3\u0005\u0005\u0000"+
"\u0000\u00a3\u00a4\u0005\u000b\u0000\u0000\u00a4\u00cd\u0006\u0006\uffff"+
"\uffff\u0000\u00a5\u00a6\u0005\u0007\u0000\u0000\u00a6\u00a8\u0005\u0001"+
"\u0000\u0000\u00a7\u00a9\u0003V+\u0000\u00a8\u00a7\u0001\u0000\u0000\u0000"+
"\u00a8\u00a9\u0001\u0000\u0000\u0000\u00a9\u00aa\u0001\u0000\u0000\u0000"+
"\u00aa\u00ae\u0005\u000b\u0000\u0000\u00ab\u00ad\u0003\u0004\u0002\u0000"+
"\u00ac\u00ab\u0001\u0000\u0000\u0000\u00ad\u00b0\u0001\u0000\u0000\u0000"+
"\u00ae\u00af\u0001\u0000\u0000\u0000\u00ae\u00ac\u0001\u0000\u0000\u0000"+
"\u00af\u00b1\u0001\u0000\u0000\u0000\u00b0\u00ae\u0001\u0000\u0000\u0000"+
"\u00b1\u00b2\u0005\u0007\u0000\u0000\u00b2\u00b3\u0005\u0004\u0000\u0000"+
"\u00b3\u00b4\u0005\u000b\u0000\u0000\u00b4\u00cd\u0006\u0006\uffff\uffff"+
"\u0000\u00b5\u00b6\u0005\u0007\u0000\u0000\u00b6\u00b8\u0005\u0001\u0000"+
"\u0000\u00b7\u00b9\u0003V+\u0000\u00b8\u00b7\u0001\u0000\u0000\u0000\u00b8"+
"\u00b9\u0001\u0000\u0000\u0000\u00b9\u00ba\u0001\u0000\u0000\u0000\u00ba"+
"\u00be\u0005\u000b\u0000\u0000\u00bb\u00bd\u0003\u0004\u0002\u0000\u00bc"+
"\u00bb\u0001\u0000\u0000\u0000\u00bd\u00c0\u0001\u0000\u0000\u0000\u00be"+
"\u00bf\u0001\u0000\u0000\u0000\u00be\u00bc\u0001\u0000\u0000\u0000\u00bf"+
"\u00c1\u0001\u0000\u0000\u0000\u00c0\u00be\u0001\u0000\u0000\u0000\u00c1"+
"\u00cd\u0006\u0006\uffff\uffff\u0000\u00c2\u00c3\u0005\u0007\u0000\u0000"+
"\u00c3\u00c5\u0005J\u0000\u0000\u00c4\u00c6\u0003V+\u0000\u00c5\u00c4"+
"\u0001\u0000\u0000\u0000\u00c5\u00c6\u0001\u0000\u0000\u0000\u00c6\u00c7"+
"\u0001\u0000\u0000\u0000\u00c7\u00c8\u0005\u000b\u0000\u0000\u00c8\u00cd"+
"\u0006\u0006\uffff\uffff\u0000\u00c9\u00ca\u0005\u0007\u0000\u0000\u00ca"+
"\u00cb\u00053\u0000\u0000\u00cb\u00cd\u0006\u0006\uffff\uffff\u0000\u00cc"+
"\u0095\u0001\u0000\u0000\u0000\u00cc\u00a5\u0001\u0000\u0000\u0000\u00cc"+
"\u00b5\u0001\u0000\u0000\u0000\u00cc\u00c2\u0001\u0000\u0000\u0000\u00cc"+
"\u00c9\u0001\u0000\u0000\u0000\u00cd\r\u0001\u0000\u0000\u0000\u00ce\u00cf"+
"\u0005\u0007\u0000\u0000\u00cf\u00d1\u0005\u0003\u0000\u0000\u00d0\u00d2"+
"\u0003V+\u0000\u00d1\u00d0\u0001\u0000\u0000\u0000\u00d1\u00d2\u0001\u0000"+
"\u0000\u0000\u00d2\u00d3\u0001\u0000\u0000\u0000\u00d3\u00d4\u0005\u000b"+
"\u0000\u0000\u00d4\u000f\u0001\u0000\u0000\u0000\u00d5\u00d6\u0005\u0007"+
"\u0000\u0000\u00d6\u00d7\u00058\u0000\u0000\u00d7\u00d8\u0003\u0012\t"+
"\u0000\u00d8\u00d9\u0005K\u0000\u0000\u00d9\u00da\u0005\u000b\u0000\u0000"+
"\u00da\u0011\u0001\u0000\u0000\u0000\u00db\u00dd\u0005L\u0000\u0000\u00dc"+
"\u00db\u0001\u0000\u0000\u0000\u00dd\u00e0\u0001\u0000\u0000\u0000\u00de"+
"\u00dc\u0001\u0000\u0000\u0000\u00de\u00df\u0001\u0000\u0000\u0000\u00df"+
"\u0013\u0001\u0000\u0000\u0000\u00e0\u00de\u0001\u0000\u0000\u0000\u00e1"+
"\u00e2\u0005\u0007\u0000\u0000\u00e2\u00e3\u00056\u0000\u0000\u00e3\u00e7"+
"\u0005\u000b\u0000\u0000\u00e4\u00e6\t\u0000\u0000\u0000\u00e5\u00e4\u0001"+
"\u0000\u0000\u0000\u00e6\u00e9\u0001\u0000\u0000\u0000\u00e7\u00e8\u0001"+
"\u0000\u0000\u0000\u00e7\u00e5\u0001\u0000\u0000\u0000\u00e8\u00ea\u0001"+
"\u0000\u0000\u0000\u00e9\u00e7\u0001\u0000\u0000\u0000\u00ea\u00eb\u0005"+
"\u0007\u0000\u0000\u00eb\u00ec\u00057\u0000\u0000\u00ec\u00ed\u0005\u000b"+
"\u0000\u0000\u00ed\u0015\u0001\u0000\u0000\u0000\u00ee\u00ef\u0005\u0007"+
"\u0000\u0000\u00ef\u00f0\u00059\u0000\u0000\u00f0\u00f1\u0003J%\u0000"+
"\u00f1\u00f2\u0005\u000b\u0000\u0000\u00f2\u00f6\u0003\u0002\u0001\u0000"+
"\u00f3\u00f5\u0003\u0018\f\u0000\u00f4\u00f3\u0001\u0000\u0000\u0000\u00f5"+
"\u00f8\u0001\u0000\u0000\u0000\u00f6\u00f4\u0001\u0000\u0000\u0000\u00f6"+
"\u00f7\u0001\u0000\u0000\u0000\u00f7\u00fa\u0001\u0000\u0000\u0000\u00f8"+
"\u00f6\u0001\u0000\u0000\u0000\u00f9\u00fb\u0003\u001a\r\u0000\u00fa\u00f9"+
"\u0001\u0000\u0000\u0000\u00fa\u00fb\u0001\u0000\u0000\u0000\u00fb\u00fc"+
"\u0001\u0000\u0000\u0000\u00fc\u00fd\u0005\u0007\u0000\u0000\u00fd\u00fe"+
"\u0005;\u0000\u0000\u00fe\u00ff\u0005\u000b\u0000\u0000\u00ff\u0017\u0001"+
"\u0000\u0000\u0000\u0100\u0101\u0005\u0007\u0000\u0000\u0101\u0102\u0005"+
":\u0000\u0000\u0102\u0103\u0003J%\u0000\u0103\u0104\u0005\u000b\u0000"+
"\u0000\u0104\u0105\u0003\u0002\u0001\u0000\u0105\u0019\u0001\u0000\u0000"+
"\u0000\u0106\u0107\u0005\u0007\u0000\u0000\u0107\u0108\u0005>\u0000\u0000"+
"\u0108\u0109\u0005\u000b\u0000\u0000\u0109\u010a\u0003\u0002\u0001\u0000"+
"\u010a\u001b\u0001\u0000\u0000\u0000\u010b\u010c\u0005\u0007\u0000\u0000"+
"\u010c\u010d\u0005<\u0000\u0000\u010d\u010e\u0003J%\u0000\u010e\u010f"+
"\u0005\u000b\u0000\u0000\u010f\u0111\u0003\u0002\u0001\u0000\u0110\u0112"+
"\u0003\u001a\r\u0000\u0111\u0110\u0001\u0000\u0000\u0000\u0111\u0112\u0001"+
"\u0000\u0000\u0000\u0112\u0113\u0001\u0000\u0000\u0000\u0113\u0114\u0005"+
"\u0007\u0000\u0000\u0114\u0115\u0005=\u0000\u0000\u0115\u0116\u0005\u000b"+
"\u0000\u0000\u0116\u001d\u0001\u0000\u0000\u0000\u0117\u0118\u0005\u0007"+
"\u0000\u0000\u0118\u0119\u0005?\u0000\u0000\u0119\u011a\u0003J%\u0000"+
"\u011a\u011c\u0005\u000b\u0000\u0000\u011b\u011d\u0003^/\u0000\u011c\u011b"+
"\u0001\u0000\u0000\u0000\u011c\u011d\u0001\u0000\u0000\u0000\u011d\u011f"+
"\u0001\u0000\u0000\u0000\u011e\u0120\u0003 \u0010\u0000\u011f\u011e\u0001"+
"\u0000\u0000\u0000\u0120\u0121\u0001\u0000\u0000\u0000\u0121\u011f\u0001"+
"\u0000\u0000\u0000\u0121\u0122\u0001\u0000\u0000\u0000\u0122\u0124\u0001"+
"\u0000\u0000\u0000\u0123\u0125\u0003\u001a\r\u0000\u0124\u0123\u0001\u0000"+
"\u0000\u0000\u0124\u0125\u0001\u0000\u0000\u0000\u0125\u0126\u0001\u0000"+
"\u0000\u0000\u0126\u0127\u0005\u0007\u0000\u0000\u0127\u0128\u0005@\u0000"+
"\u0000\u0128\u0129\u0005\u000b\u0000\u0000\u0129\u001f\u0001\u0000\u0000"+
"\u0000\u012a\u012b\u0005\u0007\u0000\u0000\u012b\u012c\u0005A\u0000\u0000"+
"\u012c\u0131\u0003L&\u0000\u012d\u012e\u0007\u0000\u0000\u0000\u012e\u0130"+
"\u0003L&\u0000\u012f\u012d\u0001\u0000\u0000\u0000\u0130\u0133\u0001\u0000"+
"\u0000\u0000\u0131\u012f\u0001\u0000\u0000\u0000\u0131\u0132\u0001\u0000"+
"\u0000\u0000\u0132\u0134\u0001\u0000\u0000\u0000\u0133\u0131\u0001\u0000"+
"\u0000\u0000\u0134\u0135\u0005\u000b\u0000\u0000\u0135\u0136\u0003\u0002"+
"\u0001\u0000\u0136!\u0001\u0000\u0000\u0000\u0137\u0138\u0005\u0007\u0000"+
"\u0000\u0138\u0139\u0005B\u0000\u0000\u0139\u013a\u0003$\u0012\u0000\u013a"+
"\u013f\u0003J%\u0000\u013b\u013c\u0005\u0019\u0000\u0000\u013c\u013e\u0003"+
"J%\u0000\u013d\u013b\u0001\u0000\u0000\u0000\u013e\u0141\u0001\u0000\u0000"+
"\u0000\u013f\u013d\u0001\u0000\u0000\u0000\u013f\u0140\u0001\u0000\u0000"+
"\u0000\u0140\u0142\u0001\u0000\u0000\u0000\u0141\u013f\u0001\u0000\u0000"+
"\u0000\u0142\u0143\u0005\u000b\u0000\u0000\u0143#\u0001\u0000\u0000\u0000"+
"\u0144\u0145\u0003J%\u0000\u0145\u0146\u0005\u0018\u0000\u0000\u0146\u0148"+
"\u0001\u0000\u0000\u0000\u0147\u0144\u0001\u0000\u0000\u0000\u0147\u0148"+
"\u0001\u0000\u0000\u0000\u0148%\u0001\u0000\u0000\u0000\u0149\u014c\u0003"+
"(\u0014\u0000\u014a\u014c\u0003*\u0015\u0000\u014b\u0149\u0001\u0000\u0000"+
"\u0000\u014b\u014a\u0001\u0000\u0000\u0000\u014c\'\u0001\u0000\u0000\u0000"+
"\u014d\u014e\u0005\u0007\u0000\u0000\u014e\u014f\u0005C\u0000\u0000\u014f"+
"\u0150\u0003P(\u0000\u0150\u0151\u0005$\u0000\u0000\u0151\u0153\u0003"+
"N\'\u0000\u0152\u0154\u0005-\u0000\u0000\u0153\u0152\u0001\u0000\u0000"+
"\u0000\u0153\u0154\u0001\u0000\u0000\u0000\u0154\u0158\u0001\u0000\u0000"+
"\u0000\u0155\u0157\u0003.\u0017\u0000\u0156\u0155\u0001\u0000\u0000\u0000"+
"\u0157\u015a\u0001\u0000\u0000\u0000\u0158\u0156\u0001\u0000\u0000\u0000"+
"\u0158\u0159\u0001\u0000\u0000\u0000\u0159\u015b\u0001\u0000\u0000\u0000"+
"\u015a\u0158\u0001\u0000\u0000\u0000\u015b\u015c\u0005\u000b\u0000\u0000"+
"\u015c\u015d\u0003,\u0016\u0000\u015d\u015e\u0005\u0007\u0000\u0000\u015e"+
"\u015f\u0005D\u0000\u0000\u015f\u0160\u0005\u000b\u0000\u0000\u0160)\u0001"+
"\u0000\u0000\u0000\u0161\u0162\u0005\u0007\u0000\u0000\u0162\u0163\u0005"+
"C\u0000\u0000\u0163\u0164\u0003P(\u0000\u0164\u0165\u0005$\u0000\u0000"+
"\u0165\u0166\u0005\u001a\u0000\u0000\u0166\u0167\u0003J%\u0000\u0167\u0168"+
"\u0005\r\u0000\u0000\u0168\u0169\u0003J%\u0000\u0169\u016b\u0005\u001b"+
"\u0000\u0000\u016a\u016c\u0005-\u0000\u0000\u016b\u016a\u0001\u0000\u0000"+
"\u0000\u016b\u016c\u0001\u0000\u0000\u0000\u016c\u0170\u0001\u0000\u0000"+
"\u0000\u016d\u016f\u0003.\u0017\u0000\u016e\u016d\u0001\u0000\u0000\u0000"+
"\u016f\u0172\u0001\u0000\u0000\u0000\u0170\u016e\u0001\u0000\u0000\u0000"+
"\u0170\u0171\u0001\u0000\u0000\u0000\u0171\u0173\u0001\u0000\u0000\u0000"+
"\u0172\u0170\u0001\u0000\u0000\u0000\u0173\u0174\u0005\u000b\u0000\u0000"+
"\u0174\u0175\u0003\u0002\u0001\u0000\u0175\u0176\u0005\u0007\u0000\u0000"+
"\u0176\u0177\u0005D\u0000\u0000\u0177\u0178\u0005\u000b\u0000\u0000\u0178"+
"+\u0001\u0000\u0000\u0000\u0179\u017e\u0003\u0002\u0001\u0000\u017a\u017b"+
"\u0005\u0007\u0000\u0000\u017b\u017c\u0005>\u0000\u0000\u017c\u017d\u0005"+
"\u000b\u0000\u0000\u017d\u017f\u0003\u0002\u0001\u0000\u017e\u017a\u0001"+
"\u0000\u0000\u0000\u017e\u017f\u0001\u0000\u0000\u0000\u017f-\u0001\u0000"+
"\u0000\u0000\u0180\u0181\u0005+\u0000\u0000\u0181\u0182\u0005\u0018\u0000"+
"\u0000\u0182\u018a\u0005,\u0000\u0000\u0183\u0184\u0005+\u0000\u0000\u0184"+
"\u0185\u0005\u0018\u0000\u0000\u0185\u018a\u0003J%\u0000\u0186\u0187\u0005"+
"1\u0000\u0000\u0187\u0188\u0005\u0018\u0000\u0000\u0188\u018a\u0003J%"+
"\u0000\u0189\u0180\u0001\u0000\u0000\u0000\u0189\u0183\u0001\u0000\u0000"+
"\u0000\u0189\u0186\u0001\u0000\u0000\u0000\u018a/\u0001\u0000\u0000\u0000"+
"\u018b\u018c\u0005+\u0000\u0000\u018c\u018d\u0005\u0018\u0000\u0000\u018d"+
"\u0192\u0003J%\u0000\u018e\u018f\u00051\u0000\u0000\u018f\u0190\u0005"+
"\u0018\u0000\u0000\u0190\u0192\u0003J%\u0000\u0191\u018b\u0001\u0000\u0000"+
"\u0000\u0191\u018e\u0001\u0000\u0000\u0000\u01921\u0001\u0000\u0000\u0000"+
"\u0193\u0194\u0005\u0007\u0000\u0000\u0194\u0195\u0005E\u0000\u0000\u0195"+
"\u0196\u0003P(\u0000\u0196\u0197\u0005$\u0000\u0000\u0197\u019b\u0003"+
"N\'\u0000\u0198\u019a\u00030\u0018\u0000\u0199\u0198\u0001\u0000\u0000"+
"\u0000\u019a\u019d\u0001\u0000\u0000\u0000\u019b\u0199\u0001\u0000\u0000"+
"\u0000\u019b\u019c\u0001\u0000\u0000\u0000\u019c\u019e\u0001\u0000\u0000"+
"\u0000\u019d\u019b\u0001\u0000\u0000\u0000\u019e\u019f\u0005\u000b\u0000"+
"\u0000\u019f\u01a0\u0003\u0002\u0001\u0000\u01a0\u01a1\u0005\u0007\u0000"+
"\u0000\u01a1\u01a2\u0005F\u0000\u0000\u01a2\u01a3\u0005\u000b\u0000\u0000"+
"\u01a33\u0001\u0000\u0000\u0000\u01a4\u01a5\u0005\u0007\u0000\u0000\u01a5"+
"\u01a6\u00054\u0000\u0000\u01a6\u01a7\u0003P(\u0000\u01a7\u01a8\u0005"+
"\u000b\u0000\u0000\u01a8\u01a9\u0003\u0002\u0001\u0000\u01a9\u01aa\u0005"+
"\u0007\u0000\u0000\u01aa\u01ab\u00055\u0000\u0000\u01ab\u01ac\u0005\u000b"+
"\u0000\u0000\u01ac\u01b7\u0001\u0000\u0000\u0000\u01ad\u01ae\u0005\u0007"+
"\u0000\u0000\u01ae\u01af\u00054\u0000\u0000\u01af\u01b0\u0005\f\u0000"+
"\u0000\u01b0\u01b1\u0005\u000b\u0000\u0000\u01b1\u01b2\u0003\u0002\u0001"+
"\u0000\u01b2\u01b3\u0005\u0007\u0000\u0000\u01b3\u01b4\u00055\u0000\u0000"+
"\u01b4\u01b5\u0005\u000b\u0000\u0000\u01b5\u01b7\u0001\u0000\u0000\u0000"+
"\u01b6\u01a4\u0001\u0000\u0000\u0000\u01b6\u01ad\u0001\u0000\u0000\u0000"+
"\u01b75\u0001\u0000\u0000\u0000\u01b8\u01b9\u0004\u001b\u0000\u0000\u01b9"+
"\u01ba\u0005\u0007\u0000\u0000\u01ba\u01bb\u0005H\u0000\u0000\u01bb\u01be"+
"\u0003J%\u0000\u01bc\u01bd\u0005*\u0000\u0000\u01bd\u01bf\u0003J%\u0000"+
"\u01be\u01bc\u0001\u0000\u0000\u0000\u01be\u01bf\u0001\u0000\u0000\u0000"+
"\u01bf\u01c0\u0001\u0000\u0000\u0000\u01c0\u01c1\u0005\u000b\u0000\u0000"+
"\u01c1\u01cf\u0001\u0000\u0000\u0000\u01c2\u01c3\u0004\u001b\u0001\u0000"+
"\u01c3\u01c4\u0005\u0007\u0000\u0000\u01c4\u01c5\u0005H\u0000\u0000\u01c5"+
"\u01c9\u0003:\u001d\u0000\u01c6\u01c8\u0003<\u001e\u0000\u01c7\u01c6\u0001"+
"\u0000\u0000\u0000\u01c8\u01cb\u0001\u0000\u0000\u0000\u01c9\u01c7\u0001"+
"\u0000\u0000\u0000\u01c9\u01ca\u0001\u0000\u0000\u0000\u01ca\u01cc\u0001"+
"\u0000\u0000\u0000\u01cb\u01c9\u0001\u0000\u0000\u0000\u01cc\u01cd\u0005"+
"\u000b\u0000\u0000\u01cd\u01cf\u0001\u0000\u0000\u0000\u01ce\u01b8\u0001"+
"\u0000\u0000\u0000\u01ce\u01c2\u0001\u0000\u0000\u0000\u01cf7\u0001\u0000"+
"\u0000\u0000\u01d0\u01d1\u0004\u001c\u0002\u0000\u01d1\u01d2\u0005\u0007"+
"\u0000\u0000\u01d2\u01d3\u0005I\u0000\u0000\u01d3\u01d7\u0003:\u001d\u0000"+
"\u01d4\u01d6\u0003<\u001e\u0000\u01d5\u01d4\u0001\u0000\u0000\u0000\u01d6"+
"\u01d9\u0001\u0000\u0000\u0000\u01d7\u01d5\u0001\u0000\u0000\u0000\u01d7"+
"\u01d8\u0001\u0000\u0000\u0000\u01d8\u01da\u0001\u0000\u0000\u0000\u01d9"+
"\u01d7\u0001\u0000\u0000\u0000\u01da\u01db\u0005\u000b\u0000\u0000\u01db"+
"9\u0001\u0000\u0000\u0000\u01dc\u01df\u0003>\u001f\u0000\u01dd\u01df\u0003"+
"Z-\u0000\u01de\u01dc\u0001\u0000\u0000\u0000\u01de\u01dd\u0001\u0000\u0000"+
"\u0000\u01df;\u0001\u0000\u0000\u0000\u01e0\u01e1\u0003P(\u0000\u01e1"+
"\u01e2\u0005\u0011\u0000\u0000\u01e2\u01e3\u0003J%\u0000\u01e3=\u0001"+
"\u0000\u0000\u0000\u01e4\u01e5\u0004\u001f\u0003\u0000\u01e5\u01e6\u0003"+
"\\.\u0000\u01e6\u01ea\u0003J%\u0000\u01e7\u01e9\u0003B!\u0000\u01e8\u01e7"+
"\u0001\u0000\u0000\u0000\u01e9\u01ec\u0001\u0000\u0000\u0000\u01ea\u01e8"+
"\u0001\u0000\u0000\u0000\u01ea\u01eb\u0001\u0000\u0000\u0000\u01eb\u01ed"+
"\u0001\u0000\u0000\u0000\u01ec\u01ea\u0001\u0000\u0000\u0000\u01ed\u01ee"+
"\u0005\n\u0000\u0000\u01ee\u0209\u0001\u0000\u0000\u0000\u01ef\u01f0\u0004"+
"\u001f\u0004\u0000\u01f0\u01f1\u0003\\.\u0000\u01f1\u01f5\u0003L&\u0000"+
"\u01f2\u01f4\u0003B!\u0000\u01f3\u01f2\u0001\u0000\u0000\u0000\u01f4\u01f7"+
"\u0001\u0000\u0000\u0000\u01f5\u01f3\u0001\u0000\u0000\u0000\u01f5\u01f6"+
"\u0001\u0000\u0000\u0000\u01f6\u01f8\u0001\u0000\u0000\u0000\u01f7\u01f5"+
"\u0001\u0000\u0000\u0000\u01f8\u01f9\u0005\n\u0000\u0000\u01f9\u0209\u0001"+
"\u0000\u0000\u0000\u01fa\u01fb\u0004\u001f\u0005\u0000\u01fb\u01fc\u0003"+
"\\.\u0000\u01fc\u0200\u0003L&\u0000\u01fd\u01ff\u0003B!\u0000\u01fe\u01fd"+
"\u0001\u0000\u0000\u0000\u01ff\u0202\u0001\u0000\u0000\u0000\u0200\u01fe"+
"\u0001\u0000\u0000\u0000\u0200\u0201\u0001\u0000\u0000\u0000\u0201\u0204"+
"\u0001\u0000\u0000\u0000\u0202\u0200\u0001\u0000\u0000\u0000\u0203\u0205"+
"\u0003@ \u0000\u0204\u0203\u0001\u0000\u0000\u0000\u0204\u0205\u0001\u0000"+
"\u0000\u0000\u0205\u0206\u0001\u0000\u0000\u0000\u0206\u0207\u0005\n\u0000"+
"\u0000\u0207\u0209\u0001\u0000\u0000\u0000\u0208\u01e4\u0001\u0000\u0000"+
"\u0000\u0208\u01ef\u0001\u0000\u0000\u0000\u0208\u01fa\u0001\u0000\u0000"+
"\u0000\u0209?\u0001\u0000\u0000\u0000\u020a\u020c\u0007\u0001\u0000\u0000"+
"\u020b\u020a\u0001\u0000\u0000\u0000\u020c\u020d\u0001\u0000\u0000\u0000"+
"\u020d\u020b\u0001\u0000\u0000\u0000\u020d\u020e\u0001\u0000\u0000\u0000"+
"\u020eA\u0001\u0000\u0000\u0000\u020f\u0210\u0005\u0017\u0000\u0000\u0210"+
"\u0212\u00051\u0000\u0000\u0211\u0213\u0003D\"\u0000\u0212\u0211\u0001"+
"\u0000\u0000\u0000\u0212\u0213\u0001\u0000\u0000\u0000\u0213C\u0001\u0000"+
"\u0000\u0000\u0214\u0215\u0005\u0018\u0000\u0000\u0215\u021a\u0003F#\u0000"+
"\u0216\u0217\u0005\u0019\u0000\u0000\u0217\u0219\u0003F#\u0000\u0218\u0216"+
"\u0001\u0000\u0000\u0000\u0219\u021c\u0001\u0000\u0000\u0000\u021a\u0218"+
"\u0001\u0000\u0000\u0000\u021a\u021b\u0001\u0000\u0000\u0000\u021bE\u0001"+
"\u0000\u0000\u0000\u021c\u021a\u0001\u0000\u0000\u0000\u021d\u021e\u0003"+
"R)\u0000\u021e\u021f\u0005\u0018\u0000\u0000\u021f\u0220\u0003J%\u0000"+
"\u0220\u0223\u0001\u0000\u0000\u0000\u0221\u0223\u0003J%\u0000\u0222\u021d"+
"\u0001\u0000\u0000\u0000\u0222\u0221\u0001\u0000\u0000\u0000\u0223G\u0001"+
"\u0000\u0000\u0000\u0224\u0225\u0005\u0007\u0000\u0000\u0225\u0226\u0005"+
"G\u0000\u0000\u0226\u0227\u0003P(\u0000\u0227\u0228\u0005\u0011\u0000"+
"\u0000\u0228\u022c\u0003J%\u0000\u0229\u022b\u0003B!\u0000\u022a\u0229"+
"\u0001\u0000\u0000\u0000\u022b\u022e\u0001\u0000\u0000\u0000\u022c\u022a"+
"\u0001\u0000\u0000\u0000\u022c\u022d\u0001\u0000\u0000\u0000\u022d\u022f"+
"\u0001\u0000\u0000\u0000\u022e\u022c\u0001\u0000\u0000\u0000\u022f\u0230"+
"\u0005\u000b\u0000\u0000\u0230I\u0001\u0000\u0000\u0000\u0231\u0232\u0006"+
"%\uffff\uffff\u0000\u0232\u0233\u0003L&\u0000\u0233\u0242\u0001\u0000"+
"\u0000\u0000\u0234\u0235\n\u0005\u0000\u0000\u0235\u0236\u0007\u0002\u0000"+
"\u0000\u0236\u0241\u0003J%\u0006\u0237\u0238\n\u0004\u0000\u0000\u0238"+
"\u0239\u0007\u0003\u0000\u0000\u0239\u0241\u0003J%\u0005\u023a\u023b\n"+
"\u0003\u0000\u0000\u023b\u023c\u0005#\u0000\u0000\u023c\u0241\u0003J%"+
"\u0004\u023d\u023e\n\u0002\u0000\u0000\u023e\u023f\u0007\u0004\u0000\u0000"+
"\u023f\u0241\u0003J%\u0002\u0240\u0234\u0001\u0000\u0000\u0000\u0240\u0237"+
"\u0001\u0000\u0000\u0000\u0240\u023a\u0001\u0000\u0000\u0000\u0240\u023d"+
"\u0001\u0000\u0000\u0000\u0241\u0244\u0001\u0000\u0000\u0000\u0242\u0240"+
"\u0001\u0000\u0000\u0000\u0242\u0243\u0001\u0000\u0000\u0000\u0243K\u0001"+
"\u0000\u0000\u0000\u0244\u0242\u0001\u0000\u0000\u0000\u0245\u0253\u0005"+
" \u0000\u0000\u0246\u0253\u0005!\u0000\u0000\u0247\u0253\u0005\f\u0000"+
"\u0000\u0248\u0253\u0005\'\u0000\u0000\u0249\u0253\u0005(\u0000\u0000"+
"\u024a\u0253\u0005)\u0000\u0000\u024b\u0253\u0003N\'\u0000\u024c\u0253"+
"\u0005.\u0000\u0000\u024d\u0253\u0005/\u0000\u0000\u024e\u024f\u0005\u001a"+
"\u0000\u0000\u024f\u0250\u0003J%\u0000\u0250\u0251\u0005\u001b\u0000\u0000"+
"\u0251\u0253\u0001\u0000\u0000\u0000\u0252\u0245\u0001\u0000\u0000\u0000"+
"\u0252\u0246\u0001\u0000\u0000\u0000\u0252\u0247\u0001\u0000\u0000\u0000"+
"\u0252\u0248\u0001\u0000\u0000\u0000\u0252\u0249\u0001\u0000\u0000\u0000"+
"\u0252\u024a\u0001\u0000\u0000\u0000\u0252\u024b\u0001\u0000\u0000\u0000"+
"\u0252\u024c\u0001\u0000\u0000\u0000\u0252\u024d\u0001\u0000\u0000\u0000"+
"\u0252\u024e\u0001\u0000\u0000\u0000\u0253M\u0001\u0000\u0000\u0000\u0254"+
"\u026c\u0005.\u0000\u0000\u0255\u0259\u0003P(\u0000\u0256\u0258\u0003"+
"T*\u0000\u0257\u0256\u0001\u0000\u0000\u0000\u0258\u025b\u0001\u0000\u0000"+
"\u0000\u0259\u0257\u0001\u0000\u0000\u0000\u0259\u025a\u0001\u0000\u0000"+
"\u0000\u025a\u025d\u0001\u0000\u0000\u0000\u025b\u0259\u0001\u0000\u0000"+
"\u0000\u025c\u025e\u0005\u001e\u0000\u0000\u025d\u025c\u0001\u0000\u0000"+
"\u0000\u025d\u025e\u0001\u0000\u0000\u0000\u025e\u026c\u0001\u0000\u0000"+
"\u0000\u025f\u0260\u0005\u001c\u0000\u0000\u0260\u0261\u0005\f\u0000\u0000"+
"\u0261\u0263\u0005\u001d\u0000\u0000\u0262\u0264\u0005\u001e\u0000\u0000"+
"\u0263\u0262\u0001\u0000\u0000\u0000\u0263\u0264\u0001\u0000\u0000\u0000"+
"\u0264\u026c\u0001\u0000\u0000\u0000\u0265\u0266\u0005\u001c\u0000\u0000"+
"\u0266\u0267\u00051\u0000\u0000\u0267\u0269\u0005\u001d\u0000\u0000\u0268"+
"\u026a\u0005\u001e\u0000\u0000\u0269\u0268\u0001\u0000\u0000\u0000\u0269"+
"\u026a\u0001\u0000\u0000\u0000\u026a\u026c\u0001\u0000\u0000\u0000\u026b"+
"\u0254\u0001\u0000\u0000\u0000\u026b\u0255\u0001\u0000\u0000\u0000\u026b"+
"\u025f\u0001\u0000\u0000\u0000\u026b\u0265\u0001\u0000\u0000\u0000\u026c"+
"O\u0001\u0000\u0000\u0000\u026d\u026e\u0007\u0005\u0000\u0000\u026eQ\u0001"+
"\u0000\u0000\u0000\u026f\u0275\u0003P(\u0000\u0270\u0275\u0005.\u0000"+
"\u0000\u0271\u0275\u0005)\u0000\u0000\u0272\u0275\u0005\'\u0000\u0000"+
"\u0273\u0275\u0005(\u0000\u0000\u0274\u026f\u0001\u0000\u0000\u0000\u0274"+
"\u0270\u0001\u0000\u0000\u0000\u0274\u0271\u0001\u0000\u0000\u0000\u0274"+
"\u0272\u0001\u0000\u0000\u0000\u0274\u0273\u0001\u0000\u0000\u0000\u0275"+
"S\u0001\u0000\u0000\u0000\u0276\u0277\u0005\u000e\u0000\u0000\u0277\u027d"+
"\u0003R)\u0000\u0278\u0279\u0005\u001c\u0000\u0000\u0279\u027a\u0003J"+
"%\u0000\u027a\u027b\u0005\u001d\u0000\u0000\u027b\u027d\u0001\u0000\u0000"+
"\u0000\u027c\u0276\u0001\u0000\u0000\u0000\u027c\u0278\u0001\u0000\u0000"+
"\u0000\u027dU\u0001\u0000\u0000\u0000\u027e\u027f\u0003X,\u0000\u027f"+
"W\u0001\u0000\u0000\u0000\u0280\u0282\u0007\u0006\u0000\u0000\u0281\u0280"+
"\u0001\u0000\u0000\u0000\u0282\u0283\u0001\u0000\u0000\u0000\u0283\u0281"+
"\u0001\u0000\u0000\u0000\u0283\u0284\u0001\u0000\u0000\u0000\u0284Y\u0001"+
"\u0000\u0000\u0000\u0285\u0287\t\u0000\u0000\u0000\u0286\u0285\u0001\u0000"+
"\u0000\u0000\u0287\u0288\u0001\u0000\u0000\u0000\u0288\u0289\u0001\u0000"+
"\u0000\u0000\u0288\u0286\u0001\u0000\u0000\u0000\u0289[\u0001\u0000\u0000"+
"\u0000\u028a\u028b\u0007\u0007\u0000\u0000\u028b]\u0001\u0000\u0000\u0000"+
"\u028c\u028e\u0005\b\u0000\u0000\u028d\u028c\u0001\u0000\u0000\u0000\u028e"+
"\u028f\u0001\u0000\u0000\u0000\u028f\u028d\u0001\u0000\u0000\u0000\u028f"+
"\u0290\u0001\u0000\u0000\u0000\u0290_\u0001\u0000\u0000\u0000@fm}\u0086"+
"\u008c\u0093\u0098\u009e\u00a8\u00ae\u00b8\u00be\u00c5\u00cc\u00d1\u00de"+
"\u00e7\u00f6\u00fa\u0111\u011c\u0121\u0124\u0131\u013f\u0147\u014b\u0153"+
"\u0158\u016b\u0170\u017e\u0189\u0191\u019b\u01b6\u01be\u01c9\u01ce\u01d7"+
"\u01de\u01ea\u01f5\u0200\u0204\u0208\u020d\u0212\u021a\u0222\u022c\u0240"+
"\u0242\u0252\u0259\u025d\u0263\u0269\u026b\u0274\u027c\u0283\u0288\u028f";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy