// $ANTLR 3.2 Sep 23, 2009 12:02:23 /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g 2011-07-30 15:16:09
package com.babel17.antlr;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import org.antlr.runtime.tree.*;
public class babel17Parser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "PROG", "NIL_TOKEN", "ANY", "LAMBDA", "SQUARE_LIST", "ROUND_LIST", "LIST_CONS", "COMPARE", "APPLY", "IF", "MAP_OR_SET_OR_OBJ", "EMPTY_MAP", "EXCEPTION", "MATCH", "TRY", "CASES", "OBJ", "FOR_EXPR", "WHILE_DO", "MESSAGE_SEND", "UMINUS", "POW", "PARENTS_PLUS", "PARENTS_MUL", "BLOCK", "BEGIN", "WITH", "VAL", "ASSIGN", "LENS_ASSIGN", "LENS_MODIFY_LEFT", "LENS_MODIFY_RIGHT", "ARROW", "DEF", "YIELD", "PRIVATE", "TYPEDEF", "TYPEDEF_CLAUSE", "GETTYPE", "MEMOIZE", "MEMOID_STRONG", "MEMOID_WEAK", "PRIVATEID", "IF_PATTERN", "TYPE_PATTERN", "INNERVALUE_PATTERN", "TYPEID", "TYPEVAL", "MODULEID", "TYPE_EXPR", "TYPEOF", "CONVERSION", "AUTOMATIC_CONVERSION", "CONVERT", "RELATE", "INTERVAL", "IMPORT_PREFIX", "IMPORT_ALL", "IMPORT_SET", "IMPORT_PLUS", "IMPORT_MINUS", "MESSAGE_ID", "MESSAGE_LENS", "FUNCTIONS_LENS", "Newline", "NotNewline", "COMMENT", "LINECOMMENT", "SmallLetter", "BigLetter", "Letter", "Digit", "Hex", "ML_plus", "MR_plus", "ML_plusplus", "MR_plusplus", "ML_minus", "MR_minus", "ML_minusminus", "MR_minusminus", "ML_times", "MR_times", "ML_timestimes", "MR_timestimes", "ML_slash", "MR_slash", "ML_slashslash", "MR_slashslash", "ML_pow", "MR_pow", "L_begin", "L_end", "L_obj", "L_with", "L_if", "L_then", "L_else", "L_elseif", "L_while", "L_for", "L_do", "L_yield", "L_match", "L_case", "L_as", "L_val", "L_def", "L_in", "L_exception", "L_to", "L_downto", "L_try", "L_catch", "L_concurrent", "L_choose", "L_lazy", "L_memoize", "L_true", "L_false", "L_this", "L_random", "L_nil", "L_div", "L_mod", "L_module", "L_typedef", "L_typeof", "L_private", "L_import", "L_unittest", "L_and", "L_not", "L_or", "L_xor", "L_root", "L_native", "L_min", "L_max", "L_lens", "A_EQUAL", "U_EQUAL", "A_NOT_EQUAL", "U_NOT_EQUAL", "LESS", "A_LESS_EQ", "U_LESS_EQ", "GREATER", "A_GREATER_EQ", "U_GREATER_EQ", "SC", "PLUS", "MINUS", "TIMES", "QUOTIENT", "POW_tok", "TOK_RELATE", "TOK_CONVERT", "A_DOUBLE_COLON", "U_DOUBLE_COLON", "TIMESTIMES", "QUOTIENTQUOTIENT", "PLUSPLUS", "MINUSMINUS", "A_DOUBLE_ARROW", "U_DOUBLE_ARROW", "A_ARROW", "U_ARROW", "A_ELLIPSIS", "U_ELLIPSIS", "COMMA", "PERIOD", "QUESTION_MARK", "EXCLAMATION_MARK", "L_force", "WsChar", "WS", "NL", "Constr", "Id", "Exponent", "Float", "Num", "Charcode", "String", "ROUND_BRACKET_OPEN", "ROUND_BRACKET_CLOSE", "SQUARE_BRACKET_OPEN", "SQUARE_BRACKET_CLOSE", "CURLY_BRACKET_OPEN", "CURLY_BRACKET_CLOSE", "UNDERSCORE", "COLON", "PRAGMA_LOG", "PRAGMA_PRINT", "PRAGMA_ASSERT", "PRAGMA_PROFILE", "PRAGMA_CATCH"
};
public static final int PRAGMA_CATCH=201;
public static final int U_NOT_EQUAL=147;
public static final int BigLetter=73;
public static final int TIMESTIMES=164;
public static final int ROUND_BRACKET_CLOSE=190;
public static final int L_native=140;
public static final int L_lens=143;
public static final int ML_plusplus=79;
public static final int Newline=68;
public static final int SQUARE_BRACKET_CLOSE=192;
public static final int EOF=-1;
public static final int U_DOUBLE_ARROW=169;
public static final int EMPTY_MAP=15;
public static final int Num=186;
public static final int L_false=123;
public static final int QUOTIENTQUOTIENT=165;
public static final int L_nil=126;
public static final int BEGIN=29;
public static final int QUESTION_MARK=176;
public static final int MESSAGE_SEND=23;
public static final int A_ARROW=170;
public static final int TYPE_EXPR=53;
public static final int L_this=124;
public static final int L_root=139;
public static final int L_force=178;
public static final int ML_pow=93;
public static final int NIL_TOKEN=5;
public static final int PRAGMA_PRINT=198;
public static final int CURLY_BRACKET_OPEN=193;
public static final int L_typedef=130;
public static final int UNDERSCORE=195;
public static final int MR_slashslash=92;
public static final int LENS_ASSIGN=33;
public static final int L_unittest=134;
public static final int MR_times=86;
public static final int WS=180;
public static final int Charcode=187;
public static final int TYPEOF=54;
public static final int L_match=107;
public static final int ML_times=85;
public static final int L_module=129;
public static final int MESSAGE_ID=65;
public static final int RELATE=58;
public static final int MEMOID_WEAK=45;
public static final int APPLY=12;
public static final int LENS_MODIFY_LEFT=34;
public static final int A_EQUAL=144;
public static final int L_yield=106;
public static final int L_div=127;
public static final int PLUSPLUS=166;
public static final int L_while=103;
public static final int CASES=19;
public static final int IF_PATTERN=47;
public static final int A_ELLIPSIS=172;
public static final int SQUARE_BRACKET_OPEN=191;
public static final int MEMOIZE=43;
public static final int L_xor=138;
public static final int INNERVALUE_PATTERN=49;
public static final int TYPEDEF_CLAUSE=41;
public static final int L_max=142;
public static final int YIELD=38;
public static final int ML_plus=77;
public static final int U_EQUAL=145;
public static final int PLUS=155;
public static final int FUNCTIONS_LENS=67;
public static final int String=188;
public static final int LAMBDA=7;
public static final int L_or=137;
public static final int MR_pow=94;
public static final int MR_minusminus=84;
public static final int L_then=100;
public static final int TYPEDEF=40;
public static final int ML_slash=89;
public static final int IMPORT_SET=62;
public static final int CURLY_BRACKET_CLOSE=194;
public static final int FOR_EXPR=21;
public static final int UMINUS=24;
public static final int Constr=182;
public static final int MINUS=156;
public static final int L_memoize=121;
public static final int MR_slash=90;
public static final int CONVERSION=55;
public static final int A_GREATER_EQ=152;
public static final int ROUND_LIST=9;
public static final int COLON=196;
public static final int SC=154;
public static final int L_downto=115;
public static final int L_random=125;
public static final int BLOCK=28;
public static final int IMPORT_PLUS=63;
public static final int ARROW=36;
public static final int L_case=108;
public static final int PARENTS_MUL=27;
public static final int L_end=96;
public static final int L_try=116;
public static final int TOK_RELATE=160;
public static final int L_mod=128;
public static final int MR_timestimes=88;
public static final int IMPORT_PREFIX=60;
public static final int MINUSMINUS=167;
public static final int LINECOMMENT=71;
public static final int MAP_OR_SET_OR_OBJ=14;
public static final int TYPEID=50;
public static final int L_exception=113;
public static final int ML_minus=81;
public static final int GREATER=151;
public static final int POW=25;
public static final int L_catch=117;
public static final int L_concurrent=118;
public static final int LIST_CONS=10;
public static final int L_with=98;
public static final int AUTOMATIC_CONVERSION=56;
public static final int LESS=148;
public static final int ROUND_BRACKET_OPEN=189;
public static final int MODULEID=52;
public static final int SQUARE_LIST=8;
public static final int VAL=31;
public static final int L_as=109;
public static final int NL=181;
public static final int COMMENT=70;
public static final int A_DOUBLE_COLON=162;
public static final int MR_plusplus=80;
public static final int L_def=111;
public static final int EXCEPTION=16;
public static final int L_and=135;
public static final int IMPORT_ALL=61;
public static final int L_choose=119;
public static final int PRIVATE=39;
public static final int PERIOD=175;
public static final int SmallLetter=72;
public static final int L_import=133;
public static final int ML_timestimes=87;
public static final int ML_slashslash=91;
public static final int MATCH=17;
public static final int U_LESS_EQ=150;
public static final int TRY=18;
public static final int L_to=114;
public static final int Float=185;
public static final int IMPORT_MINUS=64;
public static final int MR_plus=78;
public static final int L_do=105;
public static final int L_val=110;
public static final int TOK_CONVERT=161;
public static final int MR_minus=82;
public static final int L_obj=97;
public static final int WsChar=179;
public static final int Hex=76;
public static final int GETTYPE=42;
public static final int L_private=132;
public static final int TYPE_PATTERN=48;
public static final int L_for=104;
public static final int Letter=74;
public static final int EXCLAMATION_MARK=177;
public static final int PRAGMA_ASSERT=199;
public static final int U_ARROW=171;
public static final int PRAGMA_LOG=197;
public static final int PRIVATEID=46;
public static final int L_else=101;
public static final int DEF=37;
public static final int L_begin=95;
public static final int L_typeof=131;
public static final int ML_minusminus=83;
public static final int MEMOID_STRONG=44;
public static final int L_min=141;
public static final int POW_tok=159;
public static final int Exponent=184;
public static final int PARENTS_PLUS=26;
public static final int A_DOUBLE_ARROW=168;
public static final int INTERVAL=59;
public static final int IF=13;
public static final int L_not=136;
public static final int PROG=4;
public static final int OBJ=20;
public static final int COMMA=174;
public static final int TYPEVAL=51;
public static final int U_ELLIPSIS=173;
public static final int COMPARE=11;
public static final int U_GREATER_EQ=153;
public static final int L_true=122;
public static final int Id=183;
public static final int WITH=30;
public static final int L_in=112;
public static final int CONVERT=57;
public static final int L_lazy=120;
public static final int NotNewline=69;
public static final int QUOTIENT=158;
public static final int L_if=99;
public static final int WHILE_DO=22;
public static final int L_elseif=102;
public static final int Digit=75;
public static final int LENS_MODIFY_RIGHT=35;
public static final int PRAGMA_PROFILE=200;
public static final int ANY=6;
public static final int A_NOT_EQUAL=146;
public static final int ASSIGN=32;
public static final int U_DOUBLE_COLON=163;
public static final int MESSAGE_LENS=66;
public static final int TIMES=157;
public static final int A_LESS_EQ=149;
// delegates
// delegators
public babel17Parser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public babel17Parser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
public String[] getTokenNames() { return babel17Parser.tokenNames; }
public String getGrammarFileName() { return "/Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g"; }
public boolean errorDuringParsing = false;
public ArrayList<RecognitionException> parsingErrors = new ArrayList<RecognitionException>();
@Override
public void reportError(RecognitionException e) {
errorDuringParsing = true;
parsingErrors.add(e);
}
public static class prog_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "prog"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:141:1: prog : block EOF -> ^( PROG block ) ;
public final babel17Parser.prog_return prog() throws RecognitionException {
babel17Parser.prog_return retval = new babel17Parser.prog_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token EOF2=null;
babel17Parser.block_return block1 = null;
CommonTree EOF2_tree=null;
RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:141:7: ( block EOF -> ^( PROG block ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:141:9: block EOF
{
pushFollow(FOLLOW_block_in_prog280);
block1=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block1.getTree());
EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_prog282); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EOF.add(EOF2);
// AST REWRITE
// elements: block
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 141:19: -> ^( PROG block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:141:22: ^( PROG block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PROG, "PROG"), root_1);
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "prog"
public static class token_EQUAL_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_EQUAL"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:300:1: token_EQUAL : ( A_EQUAL | U_EQUAL );
public final babel17Parser.token_EQUAL_return token_EQUAL() throws RecognitionException {
babel17Parser.token_EQUAL_return retval = new babel17Parser.token_EQUAL_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set3=null;
CommonTree set3_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:301:2: ( A_EQUAL | U_EQUAL )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set3=(Token)input.LT(1);
if ( (input.LA(1)>=A_EQUAL && input.LA(1)<=U_EQUAL) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set3));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_EQUAL"
public static class token_NOT_EQUAL_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_NOT_EQUAL"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:308:1: token_NOT_EQUAL : ( A_NOT_EQUAL | U_NOT_EQUAL );
public final babel17Parser.token_NOT_EQUAL_return token_NOT_EQUAL() throws RecognitionException {
babel17Parser.token_NOT_EQUAL_return retval = new babel17Parser.token_NOT_EQUAL_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set4=null;
CommonTree set4_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:309:2: ( A_NOT_EQUAL | U_NOT_EQUAL )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set4=(Token)input.LT(1);
if ( (input.LA(1)>=A_NOT_EQUAL && input.LA(1)<=U_NOT_EQUAL) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set4));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_NOT_EQUAL"
public static class token_LESS_EQ_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_LESS_EQ"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:317:1: token_LESS_EQ : ( A_LESS_EQ | U_LESS_EQ );
public final babel17Parser.token_LESS_EQ_return token_LESS_EQ() throws RecognitionException {
babel17Parser.token_LESS_EQ_return retval = new babel17Parser.token_LESS_EQ_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set5=null;
CommonTree set5_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:318:2: ( A_LESS_EQ | U_LESS_EQ )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set5=(Token)input.LT(1);
if ( (input.LA(1)>=A_LESS_EQ && input.LA(1)<=U_LESS_EQ) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set5));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_LESS_EQ"
public static class token_GREATER_EQ_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_GREATER_EQ"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:327:1: token_GREATER_EQ : ( A_GREATER_EQ | U_GREATER_EQ );
public final babel17Parser.token_GREATER_EQ_return token_GREATER_EQ() throws RecognitionException {
babel17Parser.token_GREATER_EQ_return retval = new babel17Parser.token_GREATER_EQ_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set6=null;
CommonTree set6_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:328:2: ( A_GREATER_EQ | U_GREATER_EQ )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set6=(Token)input.LT(1);
if ( (input.LA(1)>=A_GREATER_EQ && input.LA(1)<=U_GREATER_EQ) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set6));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_GREATER_EQ"
public static class token_OR_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_OR"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:343:1: token_OR : L_or ;
public final babel17Parser.token_OR_return token_OR() throws RecognitionException {
babel17Parser.token_OR_return retval = new babel17Parser.token_OR_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_or7=null;
CommonTree L_or7_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:343:9: ( L_or )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:343:11: L_or
{
root_0 = (CommonTree)adaptor.nil();
L_or7=(Token)match(input,L_or,FOLLOW_L_or_in_token_OR1275); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_or7_tree = (CommonTree)adaptor.create(L_or7);
adaptor.addChild(root_0, L_or7_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_OR"
public static class token_AND_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_AND"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:344:1: token_AND : L_and ;
public final babel17Parser.token_AND_return token_AND() throws RecognitionException {
babel17Parser.token_AND_return retval = new babel17Parser.token_AND_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_and8=null;
CommonTree L_and8_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:345:2: ( L_and )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:345:4: L_and
{
root_0 = (CommonTree)adaptor.nil();
L_and8=(Token)match(input,L_and,FOLLOW_L_and_in_token_AND1283); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_and8_tree = (CommonTree)adaptor.create(L_and8);
adaptor.addChild(root_0, L_and8_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_AND"
public static class token_NOT_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_NOT"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:346:1: token_NOT : L_not ;
public final babel17Parser.token_NOT_return token_NOT() throws RecognitionException {
babel17Parser.token_NOT_return retval = new babel17Parser.token_NOT_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_not9=null;
CommonTree L_not9_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:347:2: ( L_not )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:347:4: L_not
{
root_0 = (CommonTree)adaptor.nil();
L_not9=(Token)match(input,L_not,FOLLOW_L_not_in_token_NOT1291); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_not9_tree = (CommonTree)adaptor.create(L_not9);
adaptor.addChild(root_0, L_not9_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_NOT"
public static class token_XOR_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_XOR"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:349:1: token_XOR : L_xor ;
public final babel17Parser.token_XOR_return token_XOR() throws RecognitionException {
babel17Parser.token_XOR_return retval = new babel17Parser.token_XOR_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_xor10=null;
CommonTree L_xor10_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:350:2: ( L_xor )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:350:4: L_xor
{
root_0 = (CommonTree)adaptor.nil();
L_xor10=(Token)match(input,L_xor,FOLLOW_L_xor_in_token_XOR1301); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_xor10_tree = (CommonTree)adaptor.create(L_xor10);
adaptor.addChild(root_0, L_xor10_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_XOR"
public static class token_DOUBLE_COLON_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_DOUBLE_COLON"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:356:1: token_DOUBLE_COLON : ( A_DOUBLE_COLON | U_DOUBLE_COLON );
public final babel17Parser.token_DOUBLE_COLON_return token_DOUBLE_COLON() throws RecognitionException {
babel17Parser.token_DOUBLE_COLON_return retval = new babel17Parser.token_DOUBLE_COLON_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set11=null;
CommonTree set11_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:357:2: ( A_DOUBLE_COLON | U_DOUBLE_COLON )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set11=(Token)input.LT(1);
if ( (input.LA(1)>=A_DOUBLE_COLON && input.LA(1)<=U_DOUBLE_COLON) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set11));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_DOUBLE_COLON"
public static class token_DOUBLE_ARROW_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_DOUBLE_ARROW"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:373:1: token_DOUBLE_ARROW : ( A_DOUBLE_ARROW | U_DOUBLE_ARROW );
public final babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW() throws RecognitionException {
babel17Parser.token_DOUBLE_ARROW_return retval = new babel17Parser.token_DOUBLE_ARROW_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set12=null;
CommonTree set12_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:374:2: ( A_DOUBLE_ARROW | U_DOUBLE_ARROW )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set12=(Token)input.LT(1);
if ( (input.LA(1)>=A_DOUBLE_ARROW && input.LA(1)<=U_DOUBLE_ARROW) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set12));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_DOUBLE_ARROW"
public static class token_ARROW_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_ARROW"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:378:1: token_ARROW : ( A_ARROW | U_ARROW );
public final babel17Parser.token_ARROW_return token_ARROW() throws RecognitionException {
babel17Parser.token_ARROW_return retval = new babel17Parser.token_ARROW_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set13=null;
CommonTree set13_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:379:2: ( A_ARROW | U_ARROW )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set13=(Token)input.LT(1);
if ( (input.LA(1)>=A_ARROW && input.LA(1)<=U_ARROW) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set13));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_ARROW"
public static class token_ELLIPSIS_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "token_ELLIPSIS"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:384:1: token_ELLIPSIS : ( A_ELLIPSIS | U_ELLIPSIS );
public final babel17Parser.token_ELLIPSIS_return token_ELLIPSIS() throws RecognitionException {
babel17Parser.token_ELLIPSIS_return retval = new babel17Parser.token_ELLIPSIS_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set14=null;
CommonTree set14_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:385:2: ( A_ELLIPSIS | U_ELLIPSIS )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set14=(Token)input.LT(1);
if ( (input.LA(1)>=A_ELLIPSIS && input.LA(1)<=U_ELLIPSIS) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set14));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "token_ELLIPSIS"
public static class typeid_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeid"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:1: typeid : Id ( ( NL )? PERIOD ( NL )? Id )* -> ^( TYPEID ( Id )* ) ;
public final babel17Parser.typeid_return typeid() throws RecognitionException {
babel17Parser.typeid_return retval = new babel17Parser.typeid_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id15=null;
Token NL16=null;
Token PERIOD17=null;
Token NL18=null;
Token Id19=null;
CommonTree Id15_tree=null;
CommonTree NL16_tree=null;
CommonTree PERIOD17_tree=null;
CommonTree NL18_tree=null;
CommonTree Id19_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleTokenStream stream_PERIOD=new RewriteRuleTokenStream(adaptor,"token PERIOD");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:9: ( Id ( ( NL )? PERIOD ( NL )? Id )* -> ^( TYPEID ( Id )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:11: Id ( ( NL )? PERIOD ( NL )? Id )*
{
Id15=(Token)match(input,Id,FOLLOW_Id_in_typeid1951); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id15);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:14: ( ( NL )? PERIOD ( NL )? Id )*
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==NL) ) {
int LA3_1 = input.LA(2);
if ( (LA3_1==PERIOD) ) {
alt3=1;
}
}
else if ( (LA3_0==PERIOD) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:15: ( NL )? PERIOD ( NL )? Id
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:15: ( NL )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==NL) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:15: NL
{
NL16=(Token)match(input,NL,FOLLOW_NL_in_typeid1954); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL16);
}
break;
}
PERIOD17=(Token)match(input,PERIOD,FOLLOW_PERIOD_in_typeid1957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERIOD.add(PERIOD17);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:26: ( NL )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==NL) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:26: NL
{
NL18=(Token)match(input,NL,FOLLOW_NL_in_typeid1959); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL18);
}
break;
}
Id19=(Token)match(input,Id,FOLLOW_Id_in_typeid1962); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id19);
}
break;
default :
break loop3;
}
} while (true);
// AST REWRITE
// elements: Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 467:35: -> ^( TYPEID ( Id )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:38: ^( TYPEID ( Id )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEID, "TYPEID"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:467:47: ( Id )*
while ( stream_Id.hasNext() ) {
adaptor.addChild(root_1, stream_Id.nextNode());
}
stream_Id.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "typeid"
public static class typeannotation_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeannotation"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:469:1: typeannotation : ( typeid | '(' protected_expr ')' -> ^( TYPEVAL protected_expr ) );
public final babel17Parser.typeannotation_return typeannotation() throws RecognitionException {
babel17Parser.typeannotation_return retval = new babel17Parser.typeannotation_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal21=null;
Token char_literal23=null;
babel17Parser.typeid_return typeid20 = null;
babel17Parser.protected_expr_return protected_expr22 = null;
CommonTree char_literal21_tree=null;
CommonTree char_literal23_tree=null;
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:470:2: ( typeid | '(' protected_expr ')' -> ^( TYPEVAL protected_expr ) )
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==Id) ) {
alt4=1;
}
else if ( (LA4_0==ROUND_BRACKET_OPEN) ) {
alt4=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:470:4: typeid
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_typeid_in_typeannotation1982);
typeid20=typeid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeid20.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:471:4: '(' protected_expr ')'
{
char_literal21=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_typeannotation1987); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal21);
pushFollow(FOLLOW_protected_expr_in_typeannotation1989);
protected_expr22=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr22.getTree());
char_literal23=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_typeannotation1991); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal23);
// AST REWRITE
// elements: protected_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 471:27: -> ^( TYPEVAL protected_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:471:30: ^( TYPEVAL protected_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEVAL, "TYPEVAL"), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "typeannotation"
public static class pattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "pattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:1: pattern : ( Constr ( ( NL )? pattern )? -> ^( Constr ( pattern )? ) | primitive_pattern ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )* -> ^( LIST_CONS ( primitive_pattern )* ) | L_exception ( NL )? pattern -> ^( L_exception pattern ) | token_ELLIPSIS );
public final babel17Parser.pattern_return pattern() throws RecognitionException {
babel17Parser.pattern_return retval = new babel17Parser.pattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Constr24=null;
Token NL25=null;
Token NL28=null;
Token NL30=null;
Token L_exception32=null;
Token NL33=null;
babel17Parser.pattern_return pattern26 = null;
babel17Parser.primitive_pattern_return primitive_pattern27 = null;
babel17Parser.token_DOUBLE_COLON_return token_DOUBLE_COLON29 = null;
babel17Parser.primitive_pattern_return primitive_pattern31 = null;
babel17Parser.pattern_return pattern34 = null;
babel17Parser.token_ELLIPSIS_return token_ELLIPSIS35 = null;
CommonTree Constr24_tree=null;
CommonTree NL25_tree=null;
CommonTree NL28_tree=null;
CommonTree NL30_tree=null;
CommonTree L_exception32_tree=null;
CommonTree NL33_tree=null;
RewriteRuleTokenStream stream_L_exception=new RewriteRuleTokenStream(adaptor,"token L_exception");
RewriteRuleTokenStream stream_Constr=new RewriteRuleTokenStream(adaptor,"token Constr");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_primitive_pattern=new RewriteRuleSubtreeStream(adaptor,"rule primitive_pattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_COLON=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_COLON");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:9: ( Constr ( ( NL )? pattern )? -> ^( Constr ( pattern )? ) | primitive_pattern ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )* -> ^( LIST_CONS ( primitive_pattern )* ) | L_exception ( NL )? pattern -> ^( L_exception pattern ) | token_ELLIPSIS )
int alt11=4;
switch ( input.LA(1) ) {
case Constr:
{
alt11=1;
}
break;
case L_true:
case L_false:
case L_nil:
case MINUS:
case Id:
case Num:
case String:
case ROUND_BRACKET_OPEN:
case SQUARE_BRACKET_OPEN:
case CURLY_BRACKET_OPEN:
case UNDERSCORE:
{
alt11=2;
}
break;
case L_exception:
{
alt11=3;
}
break;
case A_ELLIPSIS:
case U_ELLIPSIS:
{
alt11=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:11: Constr ( ( NL )? pattern )?
{
Constr24=(Token)match(input,Constr,FOLLOW_Constr_in_pattern2008); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Constr.add(Constr24);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:18: ( ( NL )? pattern )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==NL) ) {
int LA6_1 = input.LA(2);
if ( (LA6_1==L_exception||(LA6_1>=L_true && LA6_1<=L_false)||LA6_1==L_nil||LA6_1==MINUS||(LA6_1>=A_ELLIPSIS && LA6_1<=U_ELLIPSIS)||(LA6_1>=Constr && LA6_1<=Id)||LA6_1==Num||(LA6_1>=String && LA6_1<=ROUND_BRACKET_OPEN)||LA6_1==SQUARE_BRACKET_OPEN||LA6_1==CURLY_BRACKET_OPEN||LA6_1==UNDERSCORE) ) {
alt6=1;
}
}
else if ( (LA6_0==L_exception||(LA6_0>=L_true && LA6_0<=L_false)||LA6_0==L_nil||LA6_0==MINUS||(LA6_0>=A_ELLIPSIS && LA6_0<=U_ELLIPSIS)||(LA6_0>=Constr && LA6_0<=Id)||LA6_0==Num||(LA6_0>=String && LA6_0<=ROUND_BRACKET_OPEN)||LA6_0==SQUARE_BRACKET_OPEN||LA6_0==CURLY_BRACKET_OPEN||LA6_0==UNDERSCORE) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:19: ( NL )? pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:19: ( NL )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==NL) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:19: NL
{
NL25=(Token)match(input,NL,FOLLOW_NL_in_pattern2011); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL25);
}
break;
}
pushFollow(FOLLOW_pattern_in_pattern2014);
pattern26=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern26.getTree());
}
break;
}
// AST REWRITE
// elements: Constr, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 474:33: -> ^( Constr ( pattern )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:36: ^( Constr ( pattern )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_Constr.nextNode(), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:474:45: ( pattern )?
if ( stream_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_pattern.nextTree());
}
stream_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:4: primitive_pattern ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )*
{
pushFollow(FOLLOW_primitive_pattern_in_pattern2030);
primitive_pattern27=primitive_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_pattern.add(primitive_pattern27.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:22: ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )*
loop9:
do {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==NL) ) {
int LA9_1 = input.LA(2);
if ( ((LA9_1>=A_DOUBLE_COLON && LA9_1<=U_DOUBLE_COLON)) ) {
alt9=1;
}
}
else if ( ((LA9_0>=A_DOUBLE_COLON && LA9_0<=U_DOUBLE_COLON)) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:23: ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:23: ( NL )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==NL) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:23: NL
{
NL28=(Token)match(input,NL,FOLLOW_NL_in_pattern2033); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL28);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_COLON_in_pattern2036);
token_DOUBLE_COLON29=token_DOUBLE_COLON();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_COLON.add(token_DOUBLE_COLON29.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:46: ( NL )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==NL) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:475:46: NL
{
NL30=(Token)match(input,NL,FOLLOW_NL_in_pattern2038); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL30);
}
break;
}
pushFollow(FOLLOW_primitive_pattern_in_pattern2041);
primitive_pattern31=primitive_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_pattern.add(primitive_pattern31.getTree());
}
break;
default :
break loop9;
}
} while (true);
// AST REWRITE
// elements: primitive_pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 476:3: -> ^( LIST_CONS ( primitive_pattern )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:476:6: ^( LIST_CONS ( primitive_pattern )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LIST_CONS, "LIST_CONS"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:476:18: ( primitive_pattern )*
while ( stream_primitive_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_primitive_pattern.nextTree());
}
stream_primitive_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:477:4: L_exception ( NL )? pattern
{
L_exception32=(Token)match(input,L_exception,FOLLOW_L_exception_in_pattern2060); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_exception.add(L_exception32);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:477:16: ( NL )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==NL) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:477:16: NL
{
NL33=(Token)match(input,NL,FOLLOW_NL_in_pattern2062); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL33);
}
break;
}
pushFollow(FOLLOW_pattern_in_pattern2065);
pattern34=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern34.getTree());
// AST REWRITE
// elements: pattern, L_exception
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 477:28: -> ^( L_exception pattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:477:31: ^( L_exception pattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_exception.nextNode(), root_1);
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:478:4: token_ELLIPSIS
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_ELLIPSIS_in_pattern2078);
token_ELLIPSIS35=token_ELLIPSIS();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_ELLIPSIS35.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "pattern"
public static class defpattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "defpattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:480:1: defpattern : ( primitive_pattern ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )* -> ^( LIST_CONS ( primitive_pattern )* ) | Constr ( defpattern )? -> ^( Constr ( defpattern )? ) );
public final babel17Parser.defpattern_return defpattern() throws RecognitionException {
babel17Parser.defpattern_return retval = new babel17Parser.defpattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL37=null;
Token NL39=null;
Token Constr41=null;
babel17Parser.primitive_pattern_return primitive_pattern36 = null;
babel17Parser.token_DOUBLE_COLON_return token_DOUBLE_COLON38 = null;
babel17Parser.primitive_pattern_return primitive_pattern40 = null;
babel17Parser.defpattern_return defpattern42 = null;
CommonTree NL37_tree=null;
CommonTree NL39_tree=null;
CommonTree Constr41_tree=null;
RewriteRuleTokenStream stream_Constr=new RewriteRuleTokenStream(adaptor,"token Constr");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_primitive_pattern=new RewriteRuleSubtreeStream(adaptor,"rule primitive_pattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_COLON=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_COLON");
RewriteRuleSubtreeStream stream_defpattern=new RewriteRuleSubtreeStream(adaptor,"rule defpattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:2: ( primitive_pattern ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )* -> ^( LIST_CONS ( primitive_pattern )* ) | Constr ( defpattern )? -> ^( Constr ( defpattern )? ) )
int alt16=2;
int LA16_0 = input.LA(1);
if ( ((LA16_0>=L_true && LA16_0<=L_false)||LA16_0==L_nil||LA16_0==MINUS||LA16_0==Id||LA16_0==Num||(LA16_0>=String && LA16_0<=ROUND_BRACKET_OPEN)||LA16_0==SQUARE_BRACKET_OPEN||LA16_0==CURLY_BRACKET_OPEN||LA16_0==UNDERSCORE) ) {
alt16=1;
}
else if ( (LA16_0==Constr) ) {
alt16=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:4: primitive_pattern ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )*
{
pushFollow(FOLLOW_primitive_pattern_in_defpattern2088);
primitive_pattern36=primitive_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_pattern.add(primitive_pattern36.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:22: ( ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern )*
loop14:
do {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==NL) ) {
int LA14_1 = input.LA(2);
if ( ((LA14_1>=A_DOUBLE_COLON && LA14_1<=U_DOUBLE_COLON)) ) {
alt14=1;
}
}
else if ( ((LA14_0>=A_DOUBLE_COLON && LA14_0<=U_DOUBLE_COLON)) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:23: ( NL )? token_DOUBLE_COLON ( NL )? primitive_pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:23: ( NL )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==NL) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:23: NL
{
NL37=(Token)match(input,NL,FOLLOW_NL_in_defpattern2091); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL37);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_COLON_in_defpattern2094);
token_DOUBLE_COLON38=token_DOUBLE_COLON();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_COLON.add(token_DOUBLE_COLON38.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:46: ( NL )?
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==NL) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:481:46: NL
{
NL39=(Token)match(input,NL,FOLLOW_NL_in_defpattern2096); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL39);
}
break;
}
pushFollow(FOLLOW_primitive_pattern_in_defpattern2099);
primitive_pattern40=primitive_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_pattern.add(primitive_pattern40.getTree());
}
break;
default :
break loop14;
}
} while (true);
// AST REWRITE
// elements: primitive_pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 482:3: -> ^( LIST_CONS ( primitive_pattern )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:482:6: ^( LIST_CONS ( primitive_pattern )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LIST_CONS, "LIST_CONS"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:482:18: ( primitive_pattern )*
while ( stream_primitive_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_primitive_pattern.nextTree());
}
stream_primitive_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:483:4: Constr ( defpattern )?
{
Constr41=(Token)match(input,Constr,FOLLOW_Constr_in_defpattern2117); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Constr.add(Constr41);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:483:11: ( defpattern )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( ((LA15_0>=L_true && LA15_0<=L_false)||LA15_0==L_nil||LA15_0==MINUS||(LA15_0>=Constr && LA15_0<=Id)||LA15_0==Num||(LA15_0>=String && LA15_0<=ROUND_BRACKET_OPEN)||LA15_0==SQUARE_BRACKET_OPEN||LA15_0==CURLY_BRACKET_OPEN||LA15_0==UNDERSCORE) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:483:11: defpattern
{
pushFollow(FOLLOW_defpattern_in_defpattern2119);
defpattern42=defpattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_defpattern.add(defpattern42.getTree());
}
break;
}
// AST REWRITE
// elements: Constr, defpattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 483:23: -> ^( Constr ( defpattern )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:483:26: ^( Constr ( defpattern )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_Constr.nextNode(), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:483:35: ( defpattern )?
if ( stream_defpattern.hasNext() ) {
adaptor.addChild(root_1, stream_defpattern.nextTree());
}
stream_defpattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "defpattern"
public static class valpattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "valpattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:485:1: valpattern : ( ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation -> ^( TYPE_PATTERN typeannotation pattern ) | pattern );
public final babel17Parser.valpattern_return valpattern() throws RecognitionException {
babel17Parser.valpattern_return retval = new babel17Parser.valpattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL44=null;
Token char_literal45=null;
Token NL46=null;
babel17Parser.pattern_return pattern43 = null;
babel17Parser.typeannotation_return typeannotation47 = null;
babel17Parser.pattern_return pattern48 = null;
CommonTree NL44_tree=null;
CommonTree char_literal45_tree=null;
CommonTree NL46_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_typeannotation=new RewriteRuleSubtreeStream(adaptor,"rule typeannotation");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:2: ( ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation -> ^( TYPE_PATTERN typeannotation pattern ) | pattern )
int alt19=2;
alt19 = dfa19.predict(input);
switch (alt19) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:4: ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation
{
pushFollow(FOLLOW_pattern_in_valpattern2150);
pattern43=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern43.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:33: ( NL )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==NL) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:33: NL
{
NL44=(Token)match(input,NL,FOLLOW_NL_in_valpattern2152); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL44);
}
break;
}
char_literal45=(Token)match(input,COLON,FOLLOW_COLON_in_valpattern2155); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal45);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:41: ( NL )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==NL) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:41: NL
{
NL46=(Token)match(input,NL,FOLLOW_NL_in_valpattern2157); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL46);
}
break;
}
pushFollow(FOLLOW_typeannotation_in_valpattern2160);
typeannotation47=typeannotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeannotation.add(typeannotation47.getTree());
// AST REWRITE
// elements: typeannotation, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 486:60: -> ^( TYPE_PATTERN typeannotation pattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:63: ^( TYPE_PATTERN typeannotation pattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_PATTERN, "TYPE_PATTERN"), root_1);
adaptor.addChild(root_1, stream_typeannotation.nextTree());
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:487:4: pattern
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_pattern_in_valpattern2175);
pattern48=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pattern48.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "valpattern"
public static class casepattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "casepattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:489:1: casepattern : bracket_pattern ;
public final babel17Parser.casepattern_return casepattern() throws RecognitionException {
babel17Parser.casepattern_return retval = new babel17Parser.casepattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.bracket_pattern_return bracket_pattern49 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:490:2: ( bracket_pattern )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:490:4: bracket_pattern
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_bracket_pattern_in_casepattern2184);
bracket_pattern49=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bracket_pattern49.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "casepattern"
public static class bracket_pattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bracket_pattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:492:1: bracket_pattern : ( ( Id ( NL )? L_as )=> Id ( NL )? L_as ( NL )? pattern -> ^( L_as Id pattern ) | ( protected_expr ( NL )? QUESTION_MARK )=> protected_expr ( NL )? QUESTION_MARK ( ( NL )? pattern )? -> ^( QUESTION_MARK protected_expr ( pattern )? ) | ( protected_expr ( NL )? EXCLAMATION_MARK )=> protected_expr ( NL )? EXCLAMATION_MARK ( ( NL )? pattern )? -> ^( EXCLAMATION_MARK protected_expr ( pattern )? ) | ( Id pattern )=> Id pattern -> ^( INNERVALUE_PATTERN Id pattern ) | L_val ( NL )? protected_expr_nc -> ^( L_val protected_expr_nc ) | L_for ( NL )? ( bracket_pattern ( ( NL )? COMMA ( NL )? bracket_pattern )* ( NL )? )? L_end -> ^( L_for ( bracket_pattern )* ) | ( pattern ( NL )? L_if )=> pattern ( NL )? L_if ( NL )? protected_expr_nc -> ^( IF_PATTERN pattern protected_expr_nc ) | ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation -> ^( TYPE_PATTERN typeannotation pattern ) | pattern );
public final babel17Parser.bracket_pattern_return bracket_pattern() throws RecognitionException {
babel17Parser.bracket_pattern_return retval = new babel17Parser.bracket_pattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id50=null;
Token NL51=null;
Token L_as52=null;
Token NL53=null;
Token NL56=null;
Token QUESTION_MARK57=null;
Token NL58=null;
Token NL61=null;
Token EXCLAMATION_MARK62=null;
Token NL63=null;
Token Id65=null;
Token L_val67=null;
Token NL68=null;
Token L_for70=null;
Token NL71=null;
Token NL73=null;
Token COMMA74=null;
Token NL75=null;
Token NL77=null;
Token L_end78=null;
Token NL80=null;
Token L_if81=null;
Token NL82=null;
Token NL85=null;
Token char_literal86=null;
Token NL87=null;
babel17Parser.pattern_return pattern54 = null;
babel17Parser.protected_expr_return protected_expr55 = null;
babel17Parser.pattern_return pattern59 = null;
babel17Parser.protected_expr_return protected_expr60 = null;
babel17Parser.pattern_return pattern64 = null;
babel17Parser.pattern_return pattern66 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc69 = null;
babel17Parser.bracket_pattern_return bracket_pattern72 = null;
babel17Parser.bracket_pattern_return bracket_pattern76 = null;
babel17Parser.pattern_return pattern79 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc83 = null;
babel17Parser.pattern_return pattern84 = null;
babel17Parser.typeannotation_return typeannotation88 = null;
babel17Parser.pattern_return pattern89 = null;
CommonTree Id50_tree=null;
CommonTree NL51_tree=null;
CommonTree L_as52_tree=null;
CommonTree NL53_tree=null;
CommonTree NL56_tree=null;
CommonTree QUESTION_MARK57_tree=null;
CommonTree NL58_tree=null;
CommonTree NL61_tree=null;
CommonTree EXCLAMATION_MARK62_tree=null;
CommonTree NL63_tree=null;
CommonTree Id65_tree=null;
CommonTree L_val67_tree=null;
CommonTree NL68_tree=null;
CommonTree L_for70_tree=null;
CommonTree NL71_tree=null;
CommonTree NL73_tree=null;
CommonTree COMMA74_tree=null;
CommonTree NL75_tree=null;
CommonTree NL77_tree=null;
CommonTree L_end78_tree=null;
CommonTree NL80_tree=null;
CommonTree L_if81_tree=null;
CommonTree NL82_tree=null;
CommonTree NL85_tree=null;
CommonTree char_literal86_tree=null;
CommonTree NL87_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_EXCLAMATION_MARK=new RewriteRuleTokenStream(adaptor,"token EXCLAMATION_MARK");
RewriteRuleTokenStream stream_L_for=new RewriteRuleTokenStream(adaptor,"token L_for");
RewriteRuleTokenStream stream_L_as=new RewriteRuleTokenStream(adaptor,"token L_as");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleTokenStream stream_L_val=new RewriteRuleTokenStream(adaptor,"token L_val");
RewriteRuleTokenStream stream_L_if=new RewriteRuleTokenStream(adaptor,"token L_if");
RewriteRuleTokenStream stream_QUESTION_MARK=new RewriteRuleTokenStream(adaptor,"token QUESTION_MARK");
RewriteRuleSubtreeStream stream_typeannotation=new RewriteRuleSubtreeStream(adaptor,"rule typeannotation");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
RewriteRuleSubtreeStream stream_protected_expr_nc=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr_nc");
RewriteRuleSubtreeStream stream_bracket_pattern=new RewriteRuleSubtreeStream(adaptor,"rule bracket_pattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:2: ( ( Id ( NL )? L_as )=> Id ( NL )? L_as ( NL )? pattern -> ^( L_as Id pattern ) | ( protected_expr ( NL )? QUESTION_MARK )=> protected_expr ( NL )? QUESTION_MARK ( ( NL )? pattern )? -> ^( QUESTION_MARK protected_expr ( pattern )? ) | ( protected_expr ( NL )? EXCLAMATION_MARK )=> protected_expr ( NL )? EXCLAMATION_MARK ( ( NL )? pattern )? -> ^( EXCLAMATION_MARK protected_expr ( pattern )? ) | ( Id pattern )=> Id pattern -> ^( INNERVALUE_PATTERN Id pattern ) | L_val ( NL )? protected_expr_nc -> ^( L_val protected_expr_nc ) | L_for ( NL )? ( bracket_pattern ( ( NL )? COMMA ( NL )? bracket_pattern )* ( NL )? )? L_end -> ^( L_for ( bracket_pattern )* ) | ( pattern ( NL )? L_if )=> pattern ( NL )? L_if ( NL )? protected_expr_nc -> ^( IF_PATTERN pattern protected_expr_nc ) | ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation -> ^( TYPE_PATTERN typeannotation pattern ) | pattern )
int alt39=9;
alt39 = dfa39.predict(input);
switch (alt39) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:10: ( Id ( NL )? L_as )=> Id ( NL )? L_as ( NL )? pattern
{
Id50=(Token)match(input,Id,FOLLOW_Id_in_bracket_pattern2211); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id50);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:30: ( NL )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==NL) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:30: NL
{
NL51=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2213); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL51);
}
break;
}
L_as52=(Token)match(input,L_as,FOLLOW_L_as_in_bracket_pattern2216); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_as.add(L_as52);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:39: ( NL )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==NL) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:39: NL
{
NL53=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2218); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL53);
}
break;
}
pushFollow(FOLLOW_pattern_in_bracket_pattern2221);
pattern54=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern54.getTree());
// AST REWRITE
// elements: Id, L_as, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 493:51: -> ^( L_as Id pattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:54: ^( L_as Id pattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_as.nextNode(), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:494:4: ( protected_expr ( NL )? QUESTION_MARK )=> protected_expr ( NL )? QUESTION_MARK ( ( NL )? pattern )?
{
pushFollow(FOLLOW_protected_expr_in_bracket_pattern2250);
protected_expr55=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr55.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:18: ( NL )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==NL) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:18: NL
{
NL56=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2252); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL56);
}
break;
}
QUESTION_MARK57=(Token)match(input,QUESTION_MARK,FOLLOW_QUESTION_MARK_in_bracket_pattern2255); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QUESTION_MARK.add(QUESTION_MARK57);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:36: ( ( NL )? pattern )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==NL) ) {
int LA24_1 = input.LA(2);
if ( (LA24_1==L_exception||(LA24_1>=L_true && LA24_1<=L_false)||LA24_1==L_nil||LA24_1==MINUS||(LA24_1>=A_ELLIPSIS && LA24_1<=U_ELLIPSIS)||(LA24_1>=Constr && LA24_1<=Id)||LA24_1==Num||(LA24_1>=String && LA24_1<=ROUND_BRACKET_OPEN)||LA24_1==SQUARE_BRACKET_OPEN||LA24_1==CURLY_BRACKET_OPEN||LA24_1==UNDERSCORE) ) {
alt24=1;
}
}
else if ( (LA24_0==L_exception||(LA24_0>=L_true && LA24_0<=L_false)||LA24_0==L_nil||LA24_0==MINUS||(LA24_0>=A_ELLIPSIS && LA24_0<=U_ELLIPSIS)||(LA24_0>=Constr && LA24_0<=Id)||LA24_0==Num||(LA24_0>=String && LA24_0<=ROUND_BRACKET_OPEN)||LA24_0==SQUARE_BRACKET_OPEN||LA24_0==CURLY_BRACKET_OPEN||LA24_0==UNDERSCORE) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:37: ( NL )? pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:37: ( NL )?
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==NL) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:37: NL
{
NL58=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2258); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL58);
}
break;
}
pushFollow(FOLLOW_pattern_in_bracket_pattern2261);
pattern59=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern59.getTree());
}
break;
}
// AST REWRITE
// elements: protected_expr, pattern, QUESTION_MARK
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 495:51: -> ^( QUESTION_MARK protected_expr ( pattern )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:54: ^( QUESTION_MARK protected_expr ( pattern )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_QUESTION_MARK.nextNode(), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:495:85: ( pattern )?
if ( stream_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_pattern.nextTree());
}
stream_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:496:4: ( protected_expr ( NL )? EXCLAMATION_MARK )=> protected_expr ( NL )? EXCLAMATION_MARK ( ( NL )? pattern )?
{
pushFollow(FOLLOW_protected_expr_in_bracket_pattern2293);
protected_expr60=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr60.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:18: ( NL )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==NL) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:18: NL
{
NL61=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2295); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL61);
}
break;
}
EXCLAMATION_MARK62=(Token)match(input,EXCLAMATION_MARK,FOLLOW_EXCLAMATION_MARK_in_bracket_pattern2298); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXCLAMATION_MARK.add(EXCLAMATION_MARK62);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:39: ( ( NL )? pattern )?
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==NL) ) {
int LA27_1 = input.LA(2);
if ( (LA27_1==L_exception||(LA27_1>=L_true && LA27_1<=L_false)||LA27_1==L_nil||LA27_1==MINUS||(LA27_1>=A_ELLIPSIS && LA27_1<=U_ELLIPSIS)||(LA27_1>=Constr && LA27_1<=Id)||LA27_1==Num||(LA27_1>=String && LA27_1<=ROUND_BRACKET_OPEN)||LA27_1==SQUARE_BRACKET_OPEN||LA27_1==CURLY_BRACKET_OPEN||LA27_1==UNDERSCORE) ) {
alt27=1;
}
}
else if ( (LA27_0==L_exception||(LA27_0>=L_true && LA27_0<=L_false)||LA27_0==L_nil||LA27_0==MINUS||(LA27_0>=A_ELLIPSIS && LA27_0<=U_ELLIPSIS)||(LA27_0>=Constr && LA27_0<=Id)||LA27_0==Num||(LA27_0>=String && LA27_0<=ROUND_BRACKET_OPEN)||LA27_0==SQUARE_BRACKET_OPEN||LA27_0==CURLY_BRACKET_OPEN||LA27_0==UNDERSCORE) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:40: ( NL )? pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:40: ( NL )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==NL) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:40: NL
{
NL63=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2301); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL63);
}
break;
}
pushFollow(FOLLOW_pattern_in_bracket_pattern2304);
pattern64=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern64.getTree());
}
break;
}
// AST REWRITE
// elements: EXCLAMATION_MARK, protected_expr, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 497:54: -> ^( EXCLAMATION_MARK protected_expr ( pattern )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:57: ^( EXCLAMATION_MARK protected_expr ( pattern )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_EXCLAMATION_MARK.nextNode(), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:497:91: ( pattern )?
if ( stream_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_pattern.nextTree());
}
stream_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:498:4: ( Id pattern )=> Id pattern
{
Id65=(Token)match(input,Id,FOLLOW_Id_in_bracket_pattern2330); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id65);
pushFollow(FOLLOW_pattern_in_bracket_pattern2332);
pattern66=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern66.getTree());
// AST REWRITE
// elements: pattern, Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 498:31: -> ^( INNERVALUE_PATTERN Id pattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:498:34: ^( INNERVALUE_PATTERN Id pattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INNERVALUE_PATTERN, "INNERVALUE_PATTERN"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:499:4: L_val ( NL )? protected_expr_nc
{
L_val67=(Token)match(input,L_val,FOLLOW_L_val_in_bracket_pattern2347); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_val.add(L_val67);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:499:10: ( NL )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==NL) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:499:10: NL
{
NL68=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2349); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL68);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_bracket_pattern2352);
protected_expr_nc69=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc69.getTree());
// AST REWRITE
// elements: L_val, protected_expr_nc
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 499:32: -> ^( L_val protected_expr_nc )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:499:35: ^( L_val protected_expr_nc )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_val.nextNode(), root_1);
adaptor.addChild(root_1, stream_protected_expr_nc.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:10: L_for ( NL )? ( bracket_pattern ( ( NL )? COMMA ( NL )? bracket_pattern )* ( NL )? )? L_end
{
L_for70=(Token)match(input,L_for,FOLLOW_L_for_in_bracket_pattern2371); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_for.add(L_for70);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:16: ( NL )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==NL) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:16: NL
{
NL71=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2373); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL71);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:20: ( bracket_pattern ( ( NL )? COMMA ( NL )? bracket_pattern )* ( NL )? )?
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==L_begin||(LA34_0>=L_obj && LA34_0<=L_if)||(LA34_0>=L_while && LA34_0<=L_for)||LA34_0==L_match||LA34_0==L_val||LA34_0==L_exception||LA34_0==L_try||(LA34_0>=L_concurrent && LA34_0<=L_lazy)||(LA34_0>=L_true && LA34_0<=L_nil)||LA34_0==L_typeof||LA34_0==L_not||(LA34_0>=L_root && LA34_0<=L_lens)||LA34_0==MINUS||(LA34_0>=A_ELLIPSIS && LA34_0<=U_ELLIPSIS)||LA34_0==L_force||(LA34_0>=Constr && LA34_0<=Id)||(LA34_0>=Float && LA34_0<=Num)||(LA34_0>=String && LA34_0<=ROUND_BRACKET_OPEN)||LA34_0==SQUARE_BRACKET_OPEN||LA34_0==CURLY_BRACKET_OPEN||LA34_0==UNDERSCORE) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:21: bracket_pattern ( ( NL )? COMMA ( NL )? bracket_pattern )* ( NL )?
{
pushFollow(FOLLOW_bracket_pattern_in_bracket_pattern2377);
bracket_pattern72=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern72.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:37: ( ( NL )? COMMA ( NL )? bracket_pattern )*
loop32:
do {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==NL) ) {
int LA32_1 = input.LA(2);
if ( (LA32_1==COMMA) ) {
alt32=1;
}
}
else if ( (LA32_0==COMMA) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:39: ( NL )? COMMA ( NL )? bracket_pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:39: ( NL )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==NL) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:39: NL
{
NL73=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2381); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL73);
}
break;
}
COMMA74=(Token)match(input,COMMA,FOLLOW_COMMA_in_bracket_pattern2384); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA74);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:49: ( NL )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==NL) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:49: NL
{
NL75=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2386); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL75);
}
break;
}
pushFollow(FOLLOW_bracket_pattern_in_bracket_pattern2389);
bracket_pattern76=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern76.getTree());
}
break;
default :
break loop32;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:72: ( NL )?
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==NL) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:72: NL
{
NL77=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2394); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL77);
}
break;
}
}
break;
}
L_end78=(Token)match(input,L_end,FOLLOW_L_end_in_bracket_pattern2399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end78);
// AST REWRITE
// elements: bracket_pattern, L_for
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 500:84: -> ^( L_for ( bracket_pattern )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:87: ^( L_for ( bracket_pattern )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_for.nextNode(), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:500:95: ( bracket_pattern )*
while ( stream_bracket_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_bracket_pattern.nextTree());
}
stream_bracket_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:4: ( pattern ( NL )? L_if )=> pattern ( NL )? L_if ( NL )? protected_expr_nc
{
pushFollow(FOLLOW_pattern_in_bracket_pattern2424);
pattern79=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern79.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:34: ( NL )?
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==NL) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:34: NL
{
NL80=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2426); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL80);
}
break;
}
L_if81=(Token)match(input,L_if,FOLLOW_L_if_in_bracket_pattern2429); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_if.add(L_if81);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:43: ( NL )?
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==NL) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:43: NL
{
NL82=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2431); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL82);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_bracket_pattern2434);
protected_expr_nc83=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc83.getTree());
// AST REWRITE
// elements: protected_expr_nc, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 501:65: -> ^( IF_PATTERN pattern protected_expr_nc )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:68: ^( IF_PATTERN pattern protected_expr_nc )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IF_PATTERN, "IF_PATTERN"), root_1);
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_1, stream_protected_expr_nc.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:4: ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation
{
pushFollow(FOLLOW_pattern_in_bracket_pattern2460);
pattern84=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern84.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:33: ( NL )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==NL) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:33: NL
{
NL85=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2462); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL85);
}
break;
}
char_literal86=(Token)match(input,COLON,FOLLOW_COLON_in_bracket_pattern2465); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal86);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:41: ( NL )?
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==NL) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:41: NL
{
NL87=(Token)match(input,NL,FOLLOW_NL_in_bracket_pattern2467); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL87);
}
break;
}
pushFollow(FOLLOW_typeannotation_in_bracket_pattern2470);
typeannotation88=typeannotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeannotation.add(typeannotation88.getTree());
// AST REWRITE
// elements: typeannotation, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 502:60: -> ^( TYPE_PATTERN typeannotation pattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:63: ^( TYPE_PATTERN typeannotation pattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_PATTERN, "TYPE_PATTERN"), root_1);
adaptor.addChild(root_1, stream_typeannotation.nextTree());
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 9 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:503:4: pattern
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_pattern_in_bracket_pattern2485);
pattern89=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pattern89.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "bracket_pattern"
public static class arrow_or_assign_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arrow_or_assign"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:505:1: arrow_or_assign : ( token_ARROW -> ^( ARROW ) | ASSIGN -> ^( ASSIGN ) );
public final babel17Parser.arrow_or_assign_return arrow_or_assign() throws RecognitionException {
babel17Parser.arrow_or_assign_return retval = new babel17Parser.arrow_or_assign_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token ASSIGN91=null;
babel17Parser.token_ARROW_return token_ARROW90 = null;
CommonTree ASSIGN91_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_token_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_ARROW");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:506:2: ( token_ARROW -> ^( ARROW ) | ASSIGN -> ^( ASSIGN ) )
int alt40=2;
int LA40_0 = input.LA(1);
if ( ((LA40_0>=A_ARROW && LA40_0<=U_ARROW)) ) {
alt40=1;
}
else if ( (LA40_0==ASSIGN) ) {
alt40=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:506:4: token_ARROW
{
pushFollow(FOLLOW_token_ARROW_in_arrow_or_assign2495);
token_ARROW90=token_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_ARROW.add(token_ARROW90.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 506:16: -> ^( ARROW )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:506:19: ^( ARROW )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ARROW, "ARROW"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:507:4: ASSIGN
{
ASSIGN91=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_arrow_or_assign2506); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN91);
// AST REWRITE
// elements: ASSIGN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 507:11: -> ^( ASSIGN )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:507:14: ^( ASSIGN )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_ASSIGN.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arrow_or_assign"
public static class mselem_pattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "mselem_pattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:509:1: mselem_pattern : bracket_pattern ( ( NL )? arrow_or_assign ( NL )? bracket_pattern )? -> ^( NIL_TOKEN ^( NIL_TOKEN ( bracket_pattern )* ) ( arrow_or_assign )* ) ;
public final babel17Parser.mselem_pattern_return mselem_pattern() throws RecognitionException {
babel17Parser.mselem_pattern_return retval = new babel17Parser.mselem_pattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL93=null;
Token NL95=null;
babel17Parser.bracket_pattern_return bracket_pattern92 = null;
babel17Parser.arrow_or_assign_return arrow_or_assign94 = null;
babel17Parser.bracket_pattern_return bracket_pattern96 = null;
CommonTree NL93_tree=null;
CommonTree NL95_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_arrow_or_assign=new RewriteRuleSubtreeStream(adaptor,"rule arrow_or_assign");
RewriteRuleSubtreeStream stream_bracket_pattern=new RewriteRuleSubtreeStream(adaptor,"rule bracket_pattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:2: ( bracket_pattern ( ( NL )? arrow_or_assign ( NL )? bracket_pattern )? -> ^( NIL_TOKEN ^( NIL_TOKEN ( bracket_pattern )* ) ( arrow_or_assign )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:4: bracket_pattern ( ( NL )? arrow_or_assign ( NL )? bracket_pattern )?
{
pushFollow(FOLLOW_bracket_pattern_in_mselem_pattern2521);
bracket_pattern92=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern92.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:20: ( ( NL )? arrow_or_assign ( NL )? bracket_pattern )?
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==NL) ) {
int LA43_1 = input.LA(2);
if ( (LA43_1==ASSIGN||(LA43_1>=A_ARROW && LA43_1<=U_ARROW)) ) {
alt43=1;
}
}
else if ( (LA43_0==ASSIGN||(LA43_0>=A_ARROW && LA43_0<=U_ARROW)) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:21: ( NL )? arrow_or_assign ( NL )? bracket_pattern
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:21: ( NL )?
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==NL) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:21: NL
{
NL93=(Token)match(input,NL,FOLLOW_NL_in_mselem_pattern2524); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL93);
}
break;
}
pushFollow(FOLLOW_arrow_or_assign_in_mselem_pattern2527);
arrow_or_assign94=arrow_or_assign();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrow_or_assign.add(arrow_or_assign94.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:41: ( NL )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==NL) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:510:41: NL
{
NL95=(Token)match(input,NL,FOLLOW_NL_in_mselem_pattern2529); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL95);
}
break;
}
pushFollow(FOLLOW_bracket_pattern_in_mselem_pattern2532);
bracket_pattern96=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern96.getTree());
}
break;
}
// AST REWRITE
// elements: bracket_pattern, arrow_or_assign
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 511:3: -> ^( NIL_TOKEN ^( NIL_TOKEN ( bracket_pattern )* ) ( arrow_or_assign )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:511:6: ^( NIL_TOKEN ^( NIL_TOKEN ( bracket_pattern )* ) ( arrow_or_assign )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:511:18: ^( NIL_TOKEN ( bracket_pattern )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:511:30: ( bracket_pattern )*
while ( stream_bracket_pattern.hasNext() ) {
adaptor.addChild(root_2, stream_bracket_pattern.nextTree());
}
stream_bracket_pattern.reset();
adaptor.addChild(root_1, root_2);
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:511:48: ( arrow_or_assign )*
while ( stream_arrow_or_assign.hasNext() ) {
adaptor.addChild(root_1, stream_arrow_or_assign.nextTree());
}
stream_arrow_or_assign.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "mselem_pattern"
public static class primitive_pattern_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "primitive_pattern"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:513:1: primitive_pattern : ( Id | '_' -> ANY | String | Num | L_true | L_false | L_nil | '-' ( NL )? Num -> ^( UMINUS Num ) | '[' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* )? ']' -> ^( SQUARE_LIST ( bracket_pattern )* ) | '(' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* ( COMMA ( NL )? )? )? ')' -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( bracket_pattern )* ) ) | '{' ( NL )? ( mselem_pattern ( NL )? ( COMMA ( NL )? mselem_pattern ( NL )? )* )? '}' -> ^( MAP_OR_SET_OR_OBJ ( mselem_pattern )* ) | '{' ( NL )? token_ARROW ( NL )? '}' -> ^( EMPTY_MAP ) );
public final babel17Parser.primitive_pattern_return primitive_pattern() throws RecognitionException {
babel17Parser.primitive_pattern_return retval = new babel17Parser.primitive_pattern_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id97=null;
Token char_literal98=null;
Token String99=null;
Token Num100=null;
Token L_true101=null;
Token L_false102=null;
Token L_nil103=null;
Token char_literal104=null;
Token NL105=null;
Token Num106=null;
Token char_literal107=null;
Token NL108=null;
Token NL110=null;
Token COMMA111=null;
Token NL112=null;
Token NL114=null;
Token char_literal115=null;
Token char_literal116=null;
Token NL117=null;
Token NL119=null;
Token COMMA120=null;
Token NL121=null;
Token NL123=null;
Token COMMA124=null;
Token NL125=null;
Token char_literal126=null;
Token char_literal127=null;
Token NL128=null;
Token NL130=null;
Token COMMA131=null;
Token NL132=null;
Token NL134=null;
Token char_literal135=null;
Token char_literal136=null;
Token NL137=null;
Token NL139=null;
Token char_literal140=null;
babel17Parser.bracket_pattern_return bracket_pattern109 = null;
babel17Parser.bracket_pattern_return bracket_pattern113 = null;
babel17Parser.bracket_pattern_return bracket_pattern118 = null;
babel17Parser.bracket_pattern_return bracket_pattern122 = null;
babel17Parser.mselem_pattern_return mselem_pattern129 = null;
babel17Parser.mselem_pattern_return mselem_pattern133 = null;
babel17Parser.token_ARROW_return token_ARROW138 = null;
CommonTree Id97_tree=null;
CommonTree char_literal98_tree=null;
CommonTree String99_tree=null;
CommonTree Num100_tree=null;
CommonTree L_true101_tree=null;
CommonTree L_false102_tree=null;
CommonTree L_nil103_tree=null;
CommonTree char_literal104_tree=null;
CommonTree NL105_tree=null;
CommonTree Num106_tree=null;
CommonTree char_literal107_tree=null;
CommonTree NL108_tree=null;
CommonTree NL110_tree=null;
CommonTree COMMA111_tree=null;
CommonTree NL112_tree=null;
CommonTree NL114_tree=null;
CommonTree char_literal115_tree=null;
CommonTree char_literal116_tree=null;
CommonTree NL117_tree=null;
CommonTree NL119_tree=null;
CommonTree COMMA120_tree=null;
CommonTree NL121_tree=null;
CommonTree NL123_tree=null;
CommonTree COMMA124_tree=null;
CommonTree NL125_tree=null;
CommonTree char_literal126_tree=null;
CommonTree char_literal127_tree=null;
CommonTree NL128_tree=null;
CommonTree NL130_tree=null;
CommonTree COMMA131_tree=null;
CommonTree NL132_tree=null;
CommonTree NL134_tree=null;
CommonTree char_literal135_tree=null;
CommonTree char_literal136_tree=null;
CommonTree NL137_tree=null;
CommonTree NL139_tree=null;
CommonTree char_literal140_tree=null;
RewriteRuleTokenStream stream_CURLY_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token CURLY_BRACKET_OPEN");
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_CURLY_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token CURLY_BRACKET_CLOSE");
RewriteRuleTokenStream stream_UNDERSCORE=new RewriteRuleTokenStream(adaptor,"token UNDERSCORE");
RewriteRuleTokenStream stream_Num=new RewriteRuleTokenStream(adaptor,"token Num");
RewriteRuleTokenStream stream_SQUARE_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token SQUARE_BRACKET_CLOSE");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleTokenStream stream_MINUS=new RewriteRuleTokenStream(adaptor,"token MINUS");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_SQUARE_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token SQUARE_BRACKET_OPEN");
RewriteRuleSubtreeStream stream_mselem_pattern=new RewriteRuleSubtreeStream(adaptor,"rule mselem_pattern");
RewriteRuleSubtreeStream stream_token_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_ARROW");
RewriteRuleSubtreeStream stream_bracket_pattern=new RewriteRuleSubtreeStream(adaptor,"rule bracket_pattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:514:2: ( Id | '_' -> ANY | String | Num | L_true | L_false | L_nil | '-' ( NL )? Num -> ^( UMINUS Num ) | '[' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* )? ']' -> ^( SQUARE_LIST ( bracket_pattern )* ) | '(' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* ( COMMA ( NL )? )? )? ')' -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( bracket_pattern )* ) ) | '{' ( NL )? ( mselem_pattern ( NL )? ( COMMA ( NL )? mselem_pattern ( NL )? )* )? '}' -> ^( MAP_OR_SET_OR_OBJ ( mselem_pattern )* ) | '{' ( NL )? token_ARROW ( NL )? '}' -> ^( EMPTY_MAP ) )
int alt67=12;
alt67 = dfa67.predict(input);
switch (alt67) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:514:4: Id
{
root_0 = (CommonTree)adaptor.nil();
Id97=(Token)match(input,Id,FOLLOW_Id_in_primitive_pattern2561); if (state.failed) return retval;
if ( state.backtracking==0 ) {
Id97_tree = (CommonTree)adaptor.create(Id97);
adaptor.addChild(root_0, Id97_tree);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:515:4: '_'
{
char_literal98=(Token)match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_primitive_pattern2566); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_UNDERSCORE.add(char_literal98);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 515:8: -> ANY
{
adaptor.addChild(root_0, (CommonTree)adaptor.create(ANY, "ANY"));
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:516:4: String
{
root_0 = (CommonTree)adaptor.nil();
String99=(Token)match(input,String,FOLLOW_String_in_primitive_pattern2575); if (state.failed) return retval;
if ( state.backtracking==0 ) {
String99_tree = (CommonTree)adaptor.create(String99);
adaptor.addChild(root_0, String99_tree);
}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:517:4: Num
{
root_0 = (CommonTree)adaptor.nil();
Num100=(Token)match(input,Num,FOLLOW_Num_in_primitive_pattern2580); if (state.failed) return retval;
if ( state.backtracking==0 ) {
Num100_tree = (CommonTree)adaptor.create(Num100);
adaptor.addChild(root_0, Num100_tree);
}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:518:4: L_true
{
root_0 = (CommonTree)adaptor.nil();
L_true101=(Token)match(input,L_true,FOLLOW_L_true_in_primitive_pattern2585); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_true101_tree = (CommonTree)adaptor.create(L_true101);
adaptor.addChild(root_0, L_true101_tree);
}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:519:4: L_false
{
root_0 = (CommonTree)adaptor.nil();
L_false102=(Token)match(input,L_false,FOLLOW_L_false_in_primitive_pattern2590); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_false102_tree = (CommonTree)adaptor.create(L_false102);
adaptor.addChild(root_0, L_false102_tree);
}
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:520:4: L_nil
{
root_0 = (CommonTree)adaptor.nil();
L_nil103=(Token)match(input,L_nil,FOLLOW_L_nil_in_primitive_pattern2595); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_nil103_tree = (CommonTree)adaptor.create(L_nil103);
adaptor.addChild(root_0, L_nil103_tree);
}
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:523:4: '-' ( NL )? Num
{
char_literal104=(Token)match(input,MINUS,FOLLOW_MINUS_in_primitive_pattern2603); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUS.add(char_literal104);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:523:8: ( NL )?
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==NL) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:523:8: NL
{
NL105=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2605); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL105);
}
break;
}
Num106=(Token)match(input,Num,FOLLOW_Num_in_primitive_pattern2608); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Num.add(Num106);
// AST REWRITE
// elements: Num
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 523:16: -> ^( UMINUS Num )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:523:19: ^( UMINUS Num )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UMINUS, "UMINUS"), root_1);
adaptor.addChild(root_1, stream_Num.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 9 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:4: '[' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* )? ']'
{
char_literal107=(Token)match(input,SQUARE_BRACKET_OPEN,FOLLOW_SQUARE_BRACKET_OPEN_in_primitive_pattern2621); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SQUARE_BRACKET_OPEN.add(char_literal107);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:9: ( NL )?
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==NL) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:9: NL
{
NL108=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2624); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL108);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:13: ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* )?
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==L_begin||(LA50_0>=L_obj && LA50_0<=L_if)||(LA50_0>=L_while && LA50_0<=L_for)||LA50_0==L_match||LA50_0==L_val||LA50_0==L_exception||LA50_0==L_try||(LA50_0>=L_concurrent && LA50_0<=L_lazy)||(LA50_0>=L_true && LA50_0<=L_nil)||LA50_0==L_typeof||LA50_0==L_not||(LA50_0>=L_root && LA50_0<=L_lens)||LA50_0==MINUS||(LA50_0>=A_ELLIPSIS && LA50_0<=U_ELLIPSIS)||LA50_0==L_force||(LA50_0>=Constr && LA50_0<=Id)||(LA50_0>=Float && LA50_0<=Num)||(LA50_0>=String && LA50_0<=ROUND_BRACKET_OPEN)||LA50_0==SQUARE_BRACKET_OPEN||LA50_0==CURLY_BRACKET_OPEN||LA50_0==UNDERSCORE) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:14: bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )*
{
pushFollow(FOLLOW_bracket_pattern_in_primitive_pattern2628);
bracket_pattern109=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern109.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:30: ( NL )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==NL) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:30: NL
{
NL110=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2630); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL110);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:34: ( COMMA ( NL )? bracket_pattern ( NL )? )*
loop49:
do {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==COMMA) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:36: COMMA ( NL )? bracket_pattern ( NL )?
{
COMMA111=(Token)match(input,COMMA,FOLLOW_COMMA_in_primitive_pattern2635); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA111);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:42: ( NL )?
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==NL) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:42: NL
{
NL112=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2637); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL112);
}
break;
}
pushFollow(FOLLOW_bracket_pattern_in_primitive_pattern2640);
bracket_pattern113=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern113.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:62: ( NL )?
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==NL) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:524:62: NL
{
NL114=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2642); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL114);
}
break;
}
}
break;
default :
break loop49;
}
} while (true);
}
break;
}
char_literal115=(Token)match(input,SQUARE_BRACKET_CLOSE,FOLLOW_SQUARE_BRACKET_CLOSE_in_primitive_pattern2650); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SQUARE_BRACKET_CLOSE.add(char_literal115);
// AST REWRITE
// elements: bracket_pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 525:6: -> ^( SQUARE_LIST ( bracket_pattern )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:525:9: ^( SQUARE_LIST ( bracket_pattern )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(SQUARE_LIST, "SQUARE_LIST"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:525:23: ( bracket_pattern )*
while ( stream_bracket_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_bracket_pattern.nextTree());
}
stream_bracket_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 10 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:4: '(' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* ( COMMA ( NL )? )? )? ')'
{
char_literal116=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_primitive_pattern2670); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal116);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:9: ( NL )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==NL) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:9: NL
{
NL117=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2673); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL117);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:13: ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* ( COMMA ( NL )? )? )?
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==L_begin||(LA58_0>=L_obj && LA58_0<=L_if)||(LA58_0>=L_while && LA58_0<=L_for)||LA58_0==L_match||LA58_0==L_val||LA58_0==L_exception||LA58_0==L_try||(LA58_0>=L_concurrent && LA58_0<=L_lazy)||(LA58_0>=L_true && LA58_0<=L_nil)||LA58_0==L_typeof||LA58_0==L_not||(LA58_0>=L_root && LA58_0<=L_lens)||LA58_0==MINUS||(LA58_0>=A_ELLIPSIS && LA58_0<=U_ELLIPSIS)||LA58_0==L_force||(LA58_0>=Constr && LA58_0<=Id)||(LA58_0>=Float && LA58_0<=Num)||(LA58_0>=String && LA58_0<=ROUND_BRACKET_OPEN)||LA58_0==SQUARE_BRACKET_OPEN||LA58_0==CURLY_BRACKET_OPEN||LA58_0==UNDERSCORE) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:14: bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* ( COMMA ( NL )? )?
{
pushFollow(FOLLOW_bracket_pattern_in_primitive_pattern2677);
bracket_pattern118=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern118.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:30: ( NL )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==NL) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:30: NL
{
NL119=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2679); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL119);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:34: ( COMMA ( NL )? bracket_pattern ( NL )? )*
loop55:
do {
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==COMMA) ) {
int LA55_1 = input.LA(2);
if ( (LA55_1==NL) ) {
int LA55_3 = input.LA(3);
if ( (LA55_3==L_begin||(LA55_3>=L_obj && LA55_3<=L_if)||(LA55_3>=L_while && LA55_3<=L_for)||LA55_3==L_match||LA55_3==L_val||LA55_3==L_exception||LA55_3==L_try||(LA55_3>=L_concurrent && LA55_3<=L_lazy)||(LA55_3>=L_true && LA55_3<=L_nil)||LA55_3==L_typeof||LA55_3==L_not||(LA55_3>=L_root && LA55_3<=L_lens)||LA55_3==MINUS||(LA55_3>=A_ELLIPSIS && LA55_3<=U_ELLIPSIS)||LA55_3==L_force||(LA55_3>=Constr && LA55_3<=Id)||(LA55_3>=Float && LA55_3<=Num)||(LA55_3>=String && LA55_3<=ROUND_BRACKET_OPEN)||LA55_3==SQUARE_BRACKET_OPEN||LA55_3==CURLY_BRACKET_OPEN||LA55_3==UNDERSCORE) ) {
alt55=1;
}
}
else if ( (LA55_1==L_begin||(LA55_1>=L_obj && LA55_1<=L_if)||(LA55_1>=L_while && LA55_1<=L_for)||LA55_1==L_match||LA55_1==L_val||LA55_1==L_exception||LA55_1==L_try||(LA55_1>=L_concurrent && LA55_1<=L_lazy)||(LA55_1>=L_true && LA55_1<=L_nil)||LA55_1==L_typeof||LA55_1==L_not||(LA55_1>=L_root && LA55_1<=L_lens)||LA55_1==MINUS||(LA55_1>=A_ELLIPSIS && LA55_1<=U_ELLIPSIS)||LA55_1==L_force||(LA55_1>=Constr && LA55_1<=Id)||(LA55_1>=Float && LA55_1<=Num)||(LA55_1>=String && LA55_1<=ROUND_BRACKET_OPEN)||LA55_1==SQUARE_BRACKET_OPEN||LA55_1==CURLY_BRACKET_OPEN||LA55_1==UNDERSCORE) ) {
alt55=1;
}
}
switch (alt55) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:36: COMMA ( NL )? bracket_pattern ( NL )?
{
COMMA120=(Token)match(input,COMMA,FOLLOW_COMMA_in_primitive_pattern2684); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA120);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:43: ( NL )?
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==NL) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:43: NL
{
NL121=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2687); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL121);
}
break;
}
pushFollow(FOLLOW_bracket_pattern_in_primitive_pattern2690);
bracket_pattern122=bracket_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bracket_pattern.add(bracket_pattern122.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:63: ( NL )?
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==NL) ) {
alt54=1;
}
switch (alt54) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:63: NL
{
NL123=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2692); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL123);
}
break;
}
}
break;
default :
break loop55;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:69: ( COMMA ( NL )? )?
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==COMMA) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:70: COMMA ( NL )?
{
COMMA124=(Token)match(input,COMMA,FOLLOW_COMMA_in_primitive_pattern2698); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA124);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:76: ( NL )?
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==NL) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:526:76: NL
{
NL125=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2700); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL125);
}
break;
}
}
break;
}
}
break;
}
char_literal126=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_primitive_pattern2707); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal126);
// AST REWRITE
// elements: COMMA, bracket_pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 527:5: -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( bracket_pattern )* ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:527:8: ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( bracket_pattern )* ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ROUND_LIST, "ROUND_LIST"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:527:21: ^( NIL_TOKEN ( COMMA )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:527:33: ( COMMA )*
while ( stream_COMMA.hasNext() ) {
adaptor.addChild(root_2, stream_COMMA.nextNode());
}
stream_COMMA.reset();
adaptor.addChild(root_1, root_2);
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:527:41: ^( NIL_TOKEN ( bracket_pattern )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:527:53: ( bracket_pattern )*
while ( stream_bracket_pattern.hasNext() ) {
adaptor.addChild(root_2, stream_bracket_pattern.nextTree());
}
stream_bracket_pattern.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 11 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:4: '{' ( NL )? ( mselem_pattern ( NL )? ( COMMA ( NL )? mselem_pattern ( NL )? )* )? '}'
{
char_literal127=(Token)match(input,CURLY_BRACKET_OPEN,FOLLOW_CURLY_BRACKET_OPEN_in_primitive_pattern2739); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_OPEN.add(char_literal127);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:9: ( NL )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==NL) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:9: NL
{
NL128=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2742); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL128);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:13: ( mselem_pattern ( NL )? ( COMMA ( NL )? mselem_pattern ( NL )? )* )?
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==L_begin||(LA64_0>=L_obj && LA64_0<=L_if)||(LA64_0>=L_while && LA64_0<=L_for)||LA64_0==L_match||LA64_0==L_val||LA64_0==L_exception||LA64_0==L_try||(LA64_0>=L_concurrent && LA64_0<=L_lazy)||(LA64_0>=L_true && LA64_0<=L_nil)||LA64_0==L_typeof||LA64_0==L_not||(LA64_0>=L_root && LA64_0<=L_lens)||LA64_0==MINUS||(LA64_0>=A_ELLIPSIS && LA64_0<=U_ELLIPSIS)||LA64_0==L_force||(LA64_0>=Constr && LA64_0<=Id)||(LA64_0>=Float && LA64_0<=Num)||(LA64_0>=String && LA64_0<=ROUND_BRACKET_OPEN)||LA64_0==SQUARE_BRACKET_OPEN||LA64_0==CURLY_BRACKET_OPEN||LA64_0==UNDERSCORE) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:14: mselem_pattern ( NL )? ( COMMA ( NL )? mselem_pattern ( NL )? )*
{
pushFollow(FOLLOW_mselem_pattern_in_primitive_pattern2746);
mselem_pattern129=mselem_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mselem_pattern.add(mselem_pattern129.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:29: ( NL )?
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==NL) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:29: NL
{
NL130=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2748); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL130);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:33: ( COMMA ( NL )? mselem_pattern ( NL )? )*
loop63:
do {
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==COMMA) ) {
alt63=1;
}
switch (alt63) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:35: COMMA ( NL )? mselem_pattern ( NL )?
{
COMMA131=(Token)match(input,COMMA,FOLLOW_COMMA_in_primitive_pattern2753); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA131);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:42: ( NL )?
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==NL) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:42: NL
{
NL132=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2756); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL132);
}
break;
}
pushFollow(FOLLOW_mselem_pattern_in_primitive_pattern2759);
mselem_pattern133=mselem_pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mselem_pattern.add(mselem_pattern133.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:61: ( NL )?
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==NL) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:528:61: NL
{
NL134=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2761); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL134);
}
break;
}
}
break;
default :
break loop63;
}
} while (true);
}
break;
}
char_literal135=(Token)match(input,CURLY_BRACKET_CLOSE,FOLLOW_CURLY_BRACKET_CLOSE_in_primitive_pattern2769); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_CLOSE.add(char_literal135);
// AST REWRITE
// elements: mselem_pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 529:5: -> ^( MAP_OR_SET_OR_OBJ ( mselem_pattern )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:529:8: ^( MAP_OR_SET_OR_OBJ ( mselem_pattern )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MAP_OR_SET_OR_OBJ, "MAP_OR_SET_OR_OBJ"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:529:28: ( mselem_pattern )*
while ( stream_mselem_pattern.hasNext() ) {
adaptor.addChild(root_1, stream_mselem_pattern.nextTree());
}
stream_mselem_pattern.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 12 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:530:4: '{' ( NL )? token_ARROW ( NL )? '}'
{
char_literal136=(Token)match(input,CURLY_BRACKET_OPEN,FOLLOW_CURLY_BRACKET_OPEN_in_primitive_pattern2787); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_OPEN.add(char_literal136);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:530:8: ( NL )?
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==NL) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:530:8: NL
{
NL137=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2789); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL137);
}
break;
}
pushFollow(FOLLOW_token_ARROW_in_primitive_pattern2792);
token_ARROW138=token_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_ARROW.add(token_ARROW138.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:530:24: ( NL )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==NL) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:530:24: NL
{
NL139=(Token)match(input,NL,FOLLOW_NL_in_primitive_pattern2794); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL139);
}
break;
}
char_literal140=(Token)match(input,CURLY_BRACKET_CLOSE,FOLLOW_CURLY_BRACKET_CLOSE_in_primitive_pattern2797); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_CLOSE.add(char_literal140);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 530:32: -> ^( EMPTY_MAP )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:530:35: ^( EMPTY_MAP )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(EMPTY_MAP, "EMPTY_MAP"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "primitive_pattern"
public static class sep_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "sep"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:533:1: sep : ( NL | SC )+ ;
public final babel17Parser.sep_return sep() throws RecognitionException {
babel17Parser.sep_return retval = new babel17Parser.sep_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set141=null;
CommonTree set141_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:533:5: ( ( NL | SC )+ )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:533:7: ( NL | SC )+
{
root_0 = (CommonTree)adaptor.nil();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:533:7: ( NL | SC )+
int cnt68=0;
loop68:
do {
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==SC||LA68_0==NL) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
set141=(Token)input.LT(1);
if ( input.LA(1)==SC||input.LA(1)==NL ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set141));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
default :
if ( cnt68 >= 1 ) break loop68;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(68, input);
throw eee;
}
cnt68++;
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "sep"
public static class block_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "block"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:1: block : ( ( sep )? statement ( sep statement )* ( sep )? -> ^( BLOCK ( statement )* ) | ( sep )? -> ^( BLOCK ) );
public final babel17Parser.block_return block() throws RecognitionException {
babel17Parser.block_return retval = new babel17Parser.block_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.sep_return sep142 = null;
babel17Parser.statement_return statement143 = null;
babel17Parser.sep_return sep144 = null;
babel17Parser.statement_return statement145 = null;
babel17Parser.sep_return sep146 = null;
babel17Parser.sep_return sep147 = null;
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_sep=new RewriteRuleSubtreeStream(adaptor,"rule sep");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:8: ( ( sep )? statement ( sep statement )* ( sep )? -> ^( BLOCK ( statement )* ) | ( sep )? -> ^( BLOCK ) )
int alt73=2;
alt73 = dfa73.predict(input);
switch (alt73) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:10: ( sep )? statement ( sep statement )* ( sep )?
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:10: ( sep )?
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==SC||LA69_0==NL) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:10: sep
{
pushFollow(FOLLOW_sep_in_block2829);
sep142=sep();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sep.add(sep142.getTree());
}
break;
}
pushFollow(FOLLOW_statement_in_block2832);
statement143=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement143.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:25: ( sep statement )*
loop70:
do {
int alt70=2;
alt70 = dfa70.predict(input);
switch (alt70) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:26: sep statement
{
pushFollow(FOLLOW_sep_in_block2835);
sep144=sep();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sep.add(sep144.getTree());
pushFollow(FOLLOW_statement_in_block2837);
statement145=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement145.getTree());
}
break;
default :
break loop70;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:42: ( sep )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==SC||LA71_0==NL) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:42: sep
{
pushFollow(FOLLOW_sep_in_block2841);
sep146=sep();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sep.add(sep146.getTree());
}
break;
}
// AST REWRITE
// elements: statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 535:47: -> ^( BLOCK ( statement )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:50: ^( BLOCK ( statement )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(BLOCK, "BLOCK"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:535:58: ( statement )*
while ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.nextTree());
}
stream_statement.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:536:4: ( sep )?
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:536:4: ( sep )?
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==SC||LA72_0==NL) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:536:4: sep
{
pushFollow(FOLLOW_sep_in_block2857);
sep147=sep();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sep.add(sep147.getTree());
}
break;
}
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 536:9: -> ^( BLOCK )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:536:12: ^( BLOCK )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(BLOCK, "BLOCK"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "block"
public static class pure_block_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "pure_block"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:538:1: pure_block : statement ( sep statement )* -> ^( BLOCK ( statement )* ) ;
public final babel17Parser.pure_block_return pure_block() throws RecognitionException {
babel17Parser.pure_block_return retval = new babel17Parser.pure_block_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.statement_return statement148 = null;
babel17Parser.sep_return sep149 = null;
babel17Parser.statement_return statement150 = null;
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_sep=new RewriteRuleSubtreeStream(adaptor,"rule sep");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:539:2: ( statement ( sep statement )* -> ^( BLOCK ( statement )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:539:4: statement ( sep statement )*
{
pushFollow(FOLLOW_statement_in_pure_block2874);
statement148=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement148.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:539:14: ( sep statement )*
loop74:
do {
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==NL) ) {
int LA74_1 = input.LA(2);
if ( (LA74_1==L_begin||(LA74_1>=L_obj && LA74_1<=L_if)||(LA74_1>=L_while && LA74_1<=L_for)||(LA74_1>=L_yield && LA74_1<=L_match)||(LA74_1>=L_val && LA74_1<=L_def)||LA74_1==L_exception||LA74_1==L_try||(LA74_1>=L_concurrent && LA74_1<=L_nil)||(LA74_1>=L_module && LA74_1<=L_import)||LA74_1==L_not||(LA74_1>=L_root && LA74_1<=L_lens)||LA74_1==SC||LA74_1==MINUS||(LA74_1>=A_ELLIPSIS && LA74_1<=U_ELLIPSIS)||LA74_1==L_force||(LA74_1>=NL && LA74_1<=Id)||(LA74_1>=Float && LA74_1<=Num)||(LA74_1>=String && LA74_1<=ROUND_BRACKET_OPEN)||LA74_1==SQUARE_BRACKET_OPEN||LA74_1==CURLY_BRACKET_OPEN||LA74_1==UNDERSCORE||(LA74_1>=PRAGMA_LOG && LA74_1<=PRAGMA_CATCH)) ) {
alt74=1;
}
}
else if ( (LA74_0==SC) ) {
alt74=1;
}
switch (alt74) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:539:15: sep statement
{
pushFollow(FOLLOW_sep_in_pure_block2877);
sep149=sep();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sep.add(sep149.getTree());
pushFollow(FOLLOW_statement_in_pure_block2879);
statement150=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement150.getTree());
}
break;
default :
break loop74;
}
} while (true);
// AST REWRITE
// elements: statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 539:31: -> ^( BLOCK ( statement )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:539:34: ^( BLOCK ( statement )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(BLOCK, "BLOCK"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:539:42: ( statement )*
while ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.nextTree());
}
stream_statement.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "pure_block"
public static class statement_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "statement"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:541:1: statement : ( st_typedef | st_val | st_def | st_yield | st_memoize | st_private | st_module | st_import | expr_or_assign | PRAGMA_PRINT ( NL )? expr -> ^( PRAGMA_PRINT expr ) | PRAGMA_LOG ( NL )? expr -> ^( PRAGMA_LOG expr ) | PRAGMA_PROFILE ( NL )? expr -> ^( PRAGMA_PROFILE expr ) | PRAGMA_ASSERT ( NL )? expr -> ^( PRAGMA_ASSERT expr ) | PRAGMA_CATCH ( NL )? casepattern ( NL )? L_try ( NL )? COLON ( NL )? expr -> ^( PRAGMA_CATCH expr casepattern ) );
public final babel17Parser.statement_return statement() throws RecognitionException {
babel17Parser.statement_return retval = new babel17Parser.statement_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token PRAGMA_PRINT160=null;
Token NL161=null;
Token PRAGMA_LOG163=null;
Token NL164=null;
Token PRAGMA_PROFILE166=null;
Token NL167=null;
Token PRAGMA_ASSERT169=null;
Token NL170=null;
Token PRAGMA_CATCH172=null;
Token NL173=null;
Token NL175=null;
Token L_try176=null;
Token NL177=null;
Token COLON178=null;
Token NL179=null;
babel17Parser.st_typedef_return st_typedef151 = null;
babel17Parser.st_val_return st_val152 = null;
babel17Parser.st_def_return st_def153 = null;
babel17Parser.st_yield_return st_yield154 = null;
babel17Parser.st_memoize_return st_memoize155 = null;
babel17Parser.st_private_return st_private156 = null;
babel17Parser.st_module_return st_module157 = null;
babel17Parser.st_import_return st_import158 = null;
babel17Parser.expr_or_assign_return expr_or_assign159 = null;
babel17Parser.expr_return expr162 = null;
babel17Parser.expr_return expr165 = null;
babel17Parser.expr_return expr168 = null;
babel17Parser.expr_return expr171 = null;
babel17Parser.casepattern_return casepattern174 = null;
babel17Parser.expr_return expr180 = null;
CommonTree PRAGMA_PRINT160_tree=null;
CommonTree NL161_tree=null;
CommonTree PRAGMA_LOG163_tree=null;
CommonTree NL164_tree=null;
CommonTree PRAGMA_PROFILE166_tree=null;
CommonTree NL167_tree=null;
CommonTree PRAGMA_ASSERT169_tree=null;
CommonTree NL170_tree=null;
CommonTree PRAGMA_CATCH172_tree=null;
CommonTree NL173_tree=null;
CommonTree NL175_tree=null;
CommonTree L_try176_tree=null;
CommonTree NL177_tree=null;
CommonTree COLON178_tree=null;
CommonTree NL179_tree=null;
RewriteRuleTokenStream stream_PRAGMA_CATCH=new RewriteRuleTokenStream(adaptor,"token PRAGMA_CATCH");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_PRAGMA_PROFILE=new RewriteRuleTokenStream(adaptor,"token PRAGMA_PROFILE");
RewriteRuleTokenStream stream_PRAGMA_ASSERT=new RewriteRuleTokenStream(adaptor,"token PRAGMA_ASSERT");
RewriteRuleTokenStream stream_PRAGMA_LOG=new RewriteRuleTokenStream(adaptor,"token PRAGMA_LOG");
RewriteRuleTokenStream stream_L_try=new RewriteRuleTokenStream(adaptor,"token L_try");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_PRAGMA_PRINT=new RewriteRuleTokenStream(adaptor,"token PRAGMA_PRINT");
RewriteRuleSubtreeStream stream_casepattern=new RewriteRuleSubtreeStream(adaptor,"rule casepattern");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:542:2: ( st_typedef | st_val | st_def | st_yield | st_memoize | st_private | st_module | st_import | expr_or_assign | PRAGMA_PRINT ( NL )? expr -> ^( PRAGMA_PRINT expr ) | PRAGMA_LOG ( NL )? expr -> ^( PRAGMA_LOG expr ) | PRAGMA_PROFILE ( NL )? expr -> ^( PRAGMA_PROFILE expr ) | PRAGMA_ASSERT ( NL )? expr -> ^( PRAGMA_ASSERT expr ) | PRAGMA_CATCH ( NL )? casepattern ( NL )? L_try ( NL )? COLON ( NL )? expr -> ^( PRAGMA_CATCH expr casepattern ) )
int alt83=14;
alt83 = dfa83.predict(input);
switch (alt83) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:542:4: st_typedef
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_typedef_in_statement2900);
st_typedef151=st_typedef();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_typedef151.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:543:10: st_val
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_val_in_statement2911);
st_val152=st_val();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_val152.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:544:4: st_def
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_def_in_statement2916);
st_def153=st_def();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_def153.getTree());
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:545:4: st_yield
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_yield_in_statement2921);
st_yield154=st_yield();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_yield154.getTree());
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:546:4: st_memoize
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_memoize_in_statement2926);
st_memoize155=st_memoize();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_memoize155.getTree());
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:547:4: st_private
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_private_in_statement2931);
st_private156=st_private();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_private156.getTree());
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:548:4: st_module
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_module_in_statement2936);
st_module157=st_module();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_module157.getTree());
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:549:4: st_import
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_st_import_in_statement2941);
st_import158=st_import();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, st_import158.getTree());
}
break;
case 9 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:550:4: expr_or_assign
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_expr_or_assign_in_statement2946);
expr_or_assign159=expr_or_assign();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr_or_assign159.getTree());
}
break;
case 10 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:551:5: PRAGMA_PRINT ( NL )? expr
{
PRAGMA_PRINT160=(Token)match(input,PRAGMA_PRINT,FOLLOW_PRAGMA_PRINT_in_statement2952); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA_PRINT.add(PRAGMA_PRINT160);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:551:18: ( NL )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==NL) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:551:18: NL
{
NL161=(Token)match(input,NL,FOLLOW_NL_in_statement2954); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL161);
}
break;
}
pushFollow(FOLLOW_expr_in_statement2957);
expr162=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr162.getTree());
// AST REWRITE
// elements: expr, PRAGMA_PRINT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 551:27: -> ^( PRAGMA_PRINT expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:551:30: ^( PRAGMA_PRINT expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_PRAGMA_PRINT.nextNode(), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 11 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:552:5: PRAGMA_LOG ( NL )? expr
{
PRAGMA_LOG163=(Token)match(input,PRAGMA_LOG,FOLLOW_PRAGMA_LOG_in_statement2971); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA_LOG.add(PRAGMA_LOG163);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:552:16: ( NL )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==NL) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:552:16: NL
{
NL164=(Token)match(input,NL,FOLLOW_NL_in_statement2973); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL164);
}
break;
}
pushFollow(FOLLOW_expr_in_statement2976);
expr165=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr165.getTree());
// AST REWRITE
// elements: PRAGMA_LOG, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 552:25: -> ^( PRAGMA_LOG expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:552:28: ^( PRAGMA_LOG expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_PRAGMA_LOG.nextNode(), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 12 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:553:5: PRAGMA_PROFILE ( NL )? expr
{
PRAGMA_PROFILE166=(Token)match(input,PRAGMA_PROFILE,FOLLOW_PRAGMA_PROFILE_in_statement2990); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA_PROFILE.add(PRAGMA_PROFILE166);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:553:20: ( NL )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==NL) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:553:20: NL
{
NL167=(Token)match(input,NL,FOLLOW_NL_in_statement2992); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL167);
}
break;
}
pushFollow(FOLLOW_expr_in_statement2995);
expr168=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr168.getTree());
// AST REWRITE
// elements: expr, PRAGMA_PROFILE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 553:29: -> ^( PRAGMA_PROFILE expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:553:32: ^( PRAGMA_PROFILE expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_PRAGMA_PROFILE.nextNode(), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 13 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:554:5: PRAGMA_ASSERT ( NL )? expr
{
PRAGMA_ASSERT169=(Token)match(input,PRAGMA_ASSERT,FOLLOW_PRAGMA_ASSERT_in_statement3009); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA_ASSERT.add(PRAGMA_ASSERT169);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:554:19: ( NL )?
int alt78=2;
int LA78_0 = input.LA(1);
if ( (LA78_0==NL) ) {
alt78=1;
}
switch (alt78) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:554:19: NL
{
NL170=(Token)match(input,NL,FOLLOW_NL_in_statement3011); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL170);
}
break;
}
pushFollow(FOLLOW_expr_in_statement3014);
expr171=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr171.getTree());
// AST REWRITE
// elements: PRAGMA_ASSERT, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 554:28: -> ^( PRAGMA_ASSERT expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:554:31: ^( PRAGMA_ASSERT expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_PRAGMA_ASSERT.nextNode(), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 14 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:4: PRAGMA_CATCH ( NL )? casepattern ( NL )? L_try ( NL )? COLON ( NL )? expr
{
PRAGMA_CATCH172=(Token)match(input,PRAGMA_CATCH,FOLLOW_PRAGMA_CATCH_in_statement3027); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA_CATCH.add(PRAGMA_CATCH172);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:17: ( NL )?
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==NL) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:17: NL
{
NL173=(Token)match(input,NL,FOLLOW_NL_in_statement3029); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL173);
}
break;
}
pushFollow(FOLLOW_casepattern_in_statement3032);
casepattern174=casepattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_casepattern.add(casepattern174.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:33: ( NL )?
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==NL) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:33: NL
{
NL175=(Token)match(input,NL,FOLLOW_NL_in_statement3034); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL175);
}
break;
}
L_try176=(Token)match(input,L_try,FOLLOW_L_try_in_statement3037); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_try.add(L_try176);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:43: ( NL )?
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==NL) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:43: NL
{
NL177=(Token)match(input,NL,FOLLOW_NL_in_statement3039); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL177);
}
break;
}
COLON178=(Token)match(input,COLON,FOLLOW_COLON_in_statement3042); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON178);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:53: ( NL )?
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==NL) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:53: NL
{
NL179=(Token)match(input,NL,FOLLOW_NL_in_statement3044); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL179);
}
break;
}
pushFollow(FOLLOW_expr_in_statement3047);
expr180=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr180.getTree());
// AST REWRITE
// elements: expr, casepattern, PRAGMA_CATCH
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 555:62: -> ^( PRAGMA_CATCH expr casepattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:555:65: ^( PRAGMA_CATCH expr casepattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_PRAGMA_CATCH.nextNode(), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_casepattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "statement"
public static class st_val_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_val"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:1: st_val : L_val ( NL )? valpattern ( NL )? '=' ( NL )? expr -> ^( VAL valpattern expr ) ;
public final babel17Parser.st_val_return st_val() throws RecognitionException {
babel17Parser.st_val_return retval = new babel17Parser.st_val_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_val181=null;
Token NL182=null;
Token NL184=null;
Token char_literal185=null;
Token NL186=null;
babel17Parser.valpattern_return valpattern183 = null;
babel17Parser.expr_return expr187 = null;
CommonTree L_val181_tree=null;
CommonTree NL182_tree=null;
CommonTree NL184_tree=null;
CommonTree char_literal185_tree=null;
CommonTree NL186_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_val=new RewriteRuleTokenStream(adaptor,"token L_val");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_valpattern=new RewriteRuleSubtreeStream(adaptor,"rule valpattern");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:8: ( L_val ( NL )? valpattern ( NL )? '=' ( NL )? expr -> ^( VAL valpattern expr ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:10: L_val ( NL )? valpattern ( NL )? '=' ( NL )? expr
{
L_val181=(Token)match(input,L_val,FOLLOW_L_val_in_st_val3066); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_val.add(L_val181);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:16: ( NL )?
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==NL) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:16: NL
{
NL182=(Token)match(input,NL,FOLLOW_NL_in_st_val3068); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL182);
}
break;
}
pushFollow(FOLLOW_valpattern_in_st_val3071);
valpattern183=valpattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_valpattern.add(valpattern183.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:31: ( NL )?
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==NL) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:31: NL
{
NL184=(Token)match(input,NL,FOLLOW_NL_in_st_val3073); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL184);
}
break;
}
char_literal185=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_st_val3076); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal185);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:39: ( NL )?
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==NL) ) {
alt86=1;
}
switch (alt86) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:39: NL
{
NL186=(Token)match(input,NL,FOLLOW_NL_in_st_val3078); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL186);
}
break;
}
pushFollow(FOLLOW_expr_in_st_val3081);
expr187=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr187.getTree());
// AST REWRITE
// elements: expr, valpattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 557:48: -> ^( VAL valpattern expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:557:51: ^( VAL valpattern expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VAL, "VAL"), root_1);
adaptor.addChild(root_1, stream_valpattern.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_val"
public static class st_def_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_def"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:1: st_def : ( L_def ( NL )? Id ( NL )? ( defpattern ( NL )? )? ( ':' ( NL )? typeid ( NL )? )? '=' ( NL )? expr -> ^( DEF Id ( typeid )? ( defpattern )? expr ) | L_def ( NL )? L_this ( NL )? ':' ( NL )? typeid ( NL )? '=' ( NL )? expr -> ^( AUTOMATIC_CONVERSION typeid expr ) | L_def ( NL )? L_this ( NL )? ':>' ( NL )? typeid ( NL )? '=' ( NL )? expr -> ^( CONVERSION typeid expr ) );
public final babel17Parser.st_def_return st_def() throws RecognitionException {
babel17Parser.st_def_return retval = new babel17Parser.st_def_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_def188=null;
Token NL189=null;
Token Id190=null;
Token NL191=null;
Token NL193=null;
Token char_literal194=null;
Token NL195=null;
Token NL197=null;
Token char_literal198=null;
Token NL199=null;
Token L_def201=null;
Token NL202=null;
Token L_this203=null;
Token NL204=null;
Token char_literal205=null;
Token NL206=null;
Token NL208=null;
Token char_literal209=null;
Token NL210=null;
Token L_def212=null;
Token NL213=null;
Token L_this214=null;
Token NL215=null;
Token string_literal216=null;
Token NL217=null;
Token NL219=null;
Token char_literal220=null;
Token NL221=null;
babel17Parser.defpattern_return defpattern192 = null;
babel17Parser.typeid_return typeid196 = null;
babel17Parser.expr_return expr200 = null;
babel17Parser.typeid_return typeid207 = null;
babel17Parser.expr_return expr211 = null;
babel17Parser.typeid_return typeid218 = null;
babel17Parser.expr_return expr222 = null;
CommonTree L_def188_tree=null;
CommonTree NL189_tree=null;
CommonTree Id190_tree=null;
CommonTree NL191_tree=null;
CommonTree NL193_tree=null;
CommonTree char_literal194_tree=null;
CommonTree NL195_tree=null;
CommonTree NL197_tree=null;
CommonTree char_literal198_tree=null;
CommonTree NL199_tree=null;
CommonTree L_def201_tree=null;
CommonTree NL202_tree=null;
CommonTree L_this203_tree=null;
CommonTree NL204_tree=null;
CommonTree char_literal205_tree=null;
CommonTree NL206_tree=null;
CommonTree NL208_tree=null;
CommonTree char_literal209_tree=null;
CommonTree NL210_tree=null;
CommonTree L_def212_tree=null;
CommonTree NL213_tree=null;
CommonTree L_this214_tree=null;
CommonTree NL215_tree=null;
CommonTree string_literal216_tree=null;
CommonTree NL217_tree=null;
CommonTree NL219_tree=null;
CommonTree char_literal220_tree=null;
CommonTree NL221_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_L_this=new RewriteRuleTokenStream(adaptor,"token L_this");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleTokenStream stream_L_def=new RewriteRuleTokenStream(adaptor,"token L_def");
RewriteRuleTokenStream stream_TOK_CONVERT=new RewriteRuleTokenStream(adaptor,"token TOK_CONVERT");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_typeid=new RewriteRuleSubtreeStream(adaptor,"rule typeid");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_defpattern=new RewriteRuleSubtreeStream(adaptor,"rule defpattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:8: ( L_def ( NL )? Id ( NL )? ( defpattern ( NL )? )? ( ':' ( NL )? typeid ( NL )? )? '=' ( NL )? expr -> ^( DEF Id ( typeid )? ( defpattern )? expr ) | L_def ( NL )? L_this ( NL )? ':' ( NL )? typeid ( NL )? '=' ( NL )? expr -> ^( AUTOMATIC_CONVERSION typeid expr ) | L_def ( NL )? L_this ( NL )? ':>' ( NL )? typeid ( NL )? '=' ( NL )? expr -> ^( CONVERSION typeid expr ) )
int alt105=3;
int LA105_0 = input.LA(1);
if ( (LA105_0==L_def) ) {
switch ( input.LA(2) ) {
case NL:
{
int LA105_2 = input.LA(3);
if ( (LA105_2==Id) ) {
alt105=1;
}
else if ( (LA105_2==L_this) ) {
switch ( input.LA(4) ) {
case NL:
{
int LA105_5 = input.LA(5);
if ( (LA105_5==TOK_CONVERT) ) {
alt105=3;
}
else if ( (LA105_5==COLON) ) {
alt105=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 5, input);
throw nvae;
}
}
break;
case TOK_CONVERT:
{
alt105=3;
}
break;
case COLON:
{
alt105=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 4, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 2, input);
throw nvae;
}
}
break;
case Id:
{
alt105=1;
}
break;
case L_this:
{
switch ( input.LA(3) ) {
case NL:
{
int LA105_5 = input.LA(4);
if ( (LA105_5==TOK_CONVERT) ) {
alt105=3;
}
else if ( (LA105_5==COLON) ) {
alt105=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 5, input);
throw nvae;
}
}
break;
case TOK_CONVERT:
{
alt105=3;
}
break;
case COLON:
{
alt105=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 4, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 0, input);
throw nvae;
}
switch (alt105) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:10: L_def ( NL )? Id ( NL )? ( defpattern ( NL )? )? ( ':' ( NL )? typeid ( NL )? )? '=' ( NL )? expr
{
L_def188=(Token)match(input,L_def,FOLLOW_L_def_in_st_def3101); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_def.add(L_def188);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:16: ( NL )?
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==NL) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:16: NL
{
NL189=(Token)match(input,NL,FOLLOW_NL_in_st_def3103); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL189);
}
break;
}
Id190=(Token)match(input,Id,FOLLOW_Id_in_st_def3106); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id190);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:23: ( NL )?
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==NL) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:23: NL
{
NL191=(Token)match(input,NL,FOLLOW_NL_in_st_def3108); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL191);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:27: ( defpattern ( NL )? )?
int alt90=2;
int LA90_0 = input.LA(1);
if ( ((LA90_0>=L_true && LA90_0<=L_false)||LA90_0==L_nil||LA90_0==MINUS||(LA90_0>=Constr && LA90_0<=Id)||LA90_0==Num||(LA90_0>=String && LA90_0<=ROUND_BRACKET_OPEN)||LA90_0==SQUARE_BRACKET_OPEN||LA90_0==CURLY_BRACKET_OPEN||LA90_0==UNDERSCORE) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:28: defpattern ( NL )?
{
pushFollow(FOLLOW_defpattern_in_st_def3112);
defpattern192=defpattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_defpattern.add(defpattern192.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:39: ( NL )?
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==NL) ) {
alt89=1;
}
switch (alt89) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:39: NL
{
NL193=(Token)match(input,NL,FOLLOW_NL_in_st_def3114); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL193);
}
break;
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:45: ( ':' ( NL )? typeid ( NL )? )?
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==COLON) ) {
alt93=1;
}
switch (alt93) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:46: ':' ( NL )? typeid ( NL )?
{
char_literal194=(Token)match(input,COLON,FOLLOW_COLON_in_st_def3120); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal194);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:50: ( NL )?
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==NL) ) {
alt91=1;
}
switch (alt91) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:50: NL
{
NL195=(Token)match(input,NL,FOLLOW_NL_in_st_def3122); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL195);
}
break;
}
pushFollow(FOLLOW_typeid_in_st_def3125);
typeid196=typeid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeid.add(typeid196.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:61: ( NL )?
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==NL) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:61: NL
{
NL197=(Token)match(input,NL,FOLLOW_NL_in_st_def3127); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL197);
}
break;
}
}
break;
}
char_literal198=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_st_def3132); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal198);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:71: ( NL )?
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==NL) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:559:71: NL
{
NL199=(Token)match(input,NL,FOLLOW_NL_in_st_def3134); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL199);
}
break;
}
pushFollow(FOLLOW_expr_in_st_def3137);
expr200=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr200.getTree());
// AST REWRITE
// elements: defpattern, Id, expr, typeid
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 560:5: -> ^( DEF Id ( typeid )? ( defpattern )? expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:560:8: ^( DEF Id ( typeid )? ( defpattern )? expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(DEF, "DEF"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:560:17: ( typeid )?
if ( stream_typeid.hasNext() ) {
adaptor.addChild(root_1, stream_typeid.nextTree());
}
stream_typeid.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:560:25: ( defpattern )?
if ( stream_defpattern.hasNext() ) {
adaptor.addChild(root_1, stream_defpattern.nextTree());
}
stream_defpattern.reset();
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:4: L_def ( NL )? L_this ( NL )? ':' ( NL )? typeid ( NL )? '=' ( NL )? expr
{
L_def201=(Token)match(input,L_def,FOLLOW_L_def_in_st_def3163); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_def.add(L_def201);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:10: ( NL )?
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==NL) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:10: NL
{
NL202=(Token)match(input,NL,FOLLOW_NL_in_st_def3165); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL202);
}
break;
}
L_this203=(Token)match(input,L_this,FOLLOW_L_this_in_st_def3168); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_this.add(L_this203);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:21: ( NL )?
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==NL) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:21: NL
{
NL204=(Token)match(input,NL,FOLLOW_NL_in_st_def3170); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL204);
}
break;
}
char_literal205=(Token)match(input,COLON,FOLLOW_COLON_in_st_def3173); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal205);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:29: ( NL )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==NL) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:29: NL
{
NL206=(Token)match(input,NL,FOLLOW_NL_in_st_def3175); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL206);
}
break;
}
pushFollow(FOLLOW_typeid_in_st_def3178);
typeid207=typeid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeid.add(typeid207.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:40: ( NL )?
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==NL) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:40: NL
{
NL208=(Token)match(input,NL,FOLLOW_NL_in_st_def3180); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL208);
}
break;
}
char_literal209=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_st_def3183); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal209);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:48: ( NL )?
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==NL) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:48: NL
{
NL210=(Token)match(input,NL,FOLLOW_NL_in_st_def3185); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL210);
}
break;
}
pushFollow(FOLLOW_expr_in_st_def3188);
expr211=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr211.getTree());
// AST REWRITE
// elements: expr, typeid
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 561:57: -> ^( AUTOMATIC_CONVERSION typeid expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:561:60: ^( AUTOMATIC_CONVERSION typeid expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(AUTOMATIC_CONVERSION, "AUTOMATIC_CONVERSION"), root_1);
adaptor.addChild(root_1, stream_typeid.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:4: L_def ( NL )? L_this ( NL )? ':>' ( NL )? typeid ( NL )? '=' ( NL )? expr
{
L_def212=(Token)match(input,L_def,FOLLOW_L_def_in_st_def3203); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_def.add(L_def212);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:10: ( NL )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==NL) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:10: NL
{
NL213=(Token)match(input,NL,FOLLOW_NL_in_st_def3205); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL213);
}
break;
}
L_this214=(Token)match(input,L_this,FOLLOW_L_this_in_st_def3208); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_this.add(L_this214);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:21: ( NL )?
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==NL) ) {
alt101=1;
}
switch (alt101) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:21: NL
{
NL215=(Token)match(input,NL,FOLLOW_NL_in_st_def3210); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL215);
}
break;
}
string_literal216=(Token)match(input,TOK_CONVERT,FOLLOW_TOK_CONVERT_in_st_def3213); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TOK_CONVERT.add(string_literal216);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:30: ( NL )?
int alt102=2;
int LA102_0 = input.LA(1);
if ( (LA102_0==NL) ) {
alt102=1;
}
switch (alt102) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:30: NL
{
NL217=(Token)match(input,NL,FOLLOW_NL_in_st_def3215); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL217);
}
break;
}
pushFollow(FOLLOW_typeid_in_st_def3218);
typeid218=typeid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeid.add(typeid218.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:41: ( NL )?
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==NL) ) {
alt103=1;
}
switch (alt103) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:41: NL
{
NL219=(Token)match(input,NL,FOLLOW_NL_in_st_def3220); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL219);
}
break;
}
char_literal220=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_st_def3223); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal220);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:49: ( NL )?
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==NL) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:49: NL
{
NL221=(Token)match(input,NL,FOLLOW_NL_in_st_def3225); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL221);
}
break;
}
pushFollow(FOLLOW_expr_in_st_def3228);
expr222=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr222.getTree());
// AST REWRITE
// elements: typeid, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 562:58: -> ^( CONVERSION typeid expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:562:61: ^( CONVERSION typeid expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CONVERSION, "CONVERSION"), root_1);
adaptor.addChild(root_1, stream_typeid.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_def"
public static class st_typedef_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_typedef"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:564:1: st_typedef : L_typedef ( NL )? Id ( NL )? typedef_clause ( ( NL )? COMMA ( NL )? typedef_clause )* -> ^( TYPEDEF Id ^( NIL_TOKEN ( typedef_clause )* ) ) ;
public final babel17Parser.st_typedef_return st_typedef() throws RecognitionException {
babel17Parser.st_typedef_return retval = new babel17Parser.st_typedef_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_typedef223=null;
Token NL224=null;
Token Id225=null;
Token NL226=null;
Token NL228=null;
Token COMMA229=null;
Token NL230=null;
babel17Parser.typedef_clause_return typedef_clause227 = null;
babel17Parser.typedef_clause_return typedef_clause231 = null;
CommonTree L_typedef223_tree=null;
CommonTree NL224_tree=null;
CommonTree Id225_tree=null;
CommonTree NL226_tree=null;
CommonTree NL228_tree=null;
CommonTree COMMA229_tree=null;
CommonTree NL230_tree=null;
RewriteRuleTokenStream stream_L_typedef=new RewriteRuleTokenStream(adaptor,"token L_typedef");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleSubtreeStream stream_typedef_clause=new RewriteRuleSubtreeStream(adaptor,"rule typedef_clause");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:2: ( L_typedef ( NL )? Id ( NL )? typedef_clause ( ( NL )? COMMA ( NL )? typedef_clause )* -> ^( TYPEDEF Id ^( NIL_TOKEN ( typedef_clause )* ) ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:4: L_typedef ( NL )? Id ( NL )? typedef_clause ( ( NL )? COMMA ( NL )? typedef_clause )*
{
L_typedef223=(Token)match(input,L_typedef,FOLLOW_L_typedef_in_st_typedef3251); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_typedef.add(L_typedef223);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:14: ( NL )?
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==NL) ) {
alt106=1;
}
switch (alt106) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:14: NL
{
NL224=(Token)match(input,NL,FOLLOW_NL_in_st_typedef3253); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL224);
}
break;
}
Id225=(Token)match(input,Id,FOLLOW_Id_in_st_typedef3256); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id225);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:21: ( NL )?
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==NL) ) {
alt107=1;
}
switch (alt107) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:21: NL
{
NL226=(Token)match(input,NL,FOLLOW_NL_in_st_typedef3258); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL226);
}
break;
}
pushFollow(FOLLOW_typedef_clause_in_st_typedef3261);
typedef_clause227=typedef_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typedef_clause.add(typedef_clause227.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:40: ( ( NL )? COMMA ( NL )? typedef_clause )*
loop110:
do {
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==NL) ) {
int LA110_1 = input.LA(2);
if ( (LA110_1==COMMA) ) {
alt110=1;
}
}
else if ( (LA110_0==COMMA) ) {
alt110=1;
}
switch (alt110) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:41: ( NL )? COMMA ( NL )? typedef_clause
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:41: ( NL )?
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==NL) ) {
alt108=1;
}
switch (alt108) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:41: NL
{
NL228=(Token)match(input,NL,FOLLOW_NL_in_st_typedef3264); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL228);
}
break;
}
COMMA229=(Token)match(input,COMMA,FOLLOW_COMMA_in_st_typedef3267); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA229);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:51: ( NL )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==NL) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:51: NL
{
NL230=(Token)match(input,NL,FOLLOW_NL_in_st_typedef3269); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL230);
}
break;
}
pushFollow(FOLLOW_typedef_clause_in_st_typedef3272);
typedef_clause231=typedef_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typedef_clause.add(typedef_clause231.getTree());
}
break;
default :
break loop110;
}
} while (true);
// AST REWRITE
// elements: Id, typedef_clause
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 565:72: -> ^( TYPEDEF Id ^( NIL_TOKEN ( typedef_clause )* ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:75: ^( TYPEDEF Id ^( NIL_TOKEN ( typedef_clause )* ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF, "TYPEDEF"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:88: ^( NIL_TOKEN ( typedef_clause )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:565:100: ( typedef_clause )*
while ( stream_typedef_clause.hasNext() ) {
adaptor.addChild(root_2, stream_typedef_clause.nextTree());
}
stream_typedef_clause.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_typedef"
public static class typedef_clause_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typedef_clause"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:567:1: typedef_clause : ( ( defpattern ( NL )? '=' )=> defpattern ( NL )? '=' ( NL )? expr -> ^( TYPEDEF_CLAUSE defpattern expr ) | defpattern -> ^( TYPEDEF_CLAUSE defpattern ) );
public final babel17Parser.typedef_clause_return typedef_clause() throws RecognitionException {
babel17Parser.typedef_clause_return retval = new babel17Parser.typedef_clause_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL233=null;
Token char_literal234=null;
Token NL235=null;
babel17Parser.defpattern_return defpattern232 = null;
babel17Parser.expr_return expr236 = null;
babel17Parser.defpattern_return defpattern237 = null;
CommonTree NL233_tree=null;
CommonTree char_literal234_tree=null;
CommonTree NL235_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_defpattern=new RewriteRuleSubtreeStream(adaptor,"rule defpattern");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:2: ( ( defpattern ( NL )? '=' )=> defpattern ( NL )? '=' ( NL )? expr -> ^( TYPEDEF_CLAUSE defpattern expr ) | defpattern -> ^( TYPEDEF_CLAUSE defpattern ) )
int alt113=2;
alt113 = dfa113.predict(input);
switch (alt113) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:4: ( defpattern ( NL )? '=' )=> defpattern ( NL )? '=' ( NL )? expr
{
pushFollow(FOLLOW_defpattern_in_typedef_clause3310);
defpattern232=defpattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_defpattern.add(defpattern232.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:39: ( NL )?
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==NL) ) {
alt111=1;
}
switch (alt111) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:39: NL
{
NL233=(Token)match(input,NL,FOLLOW_NL_in_typedef_clause3312); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL233);
}
break;
}
char_literal234=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_typedef_clause3315); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal234);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:47: ( NL )?
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==NL) ) {
alt112=1;
}
switch (alt112) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:47: NL
{
NL235=(Token)match(input,NL,FOLLOW_NL_in_typedef_clause3317); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL235);
}
break;
}
pushFollow(FOLLOW_expr_in_typedef_clause3320);
expr236=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr236.getTree());
// AST REWRITE
// elements: expr, defpattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 568:56: -> ^( TYPEDEF_CLAUSE defpattern expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:59: ^( TYPEDEF_CLAUSE defpattern expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF_CLAUSE, "TYPEDEF_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_defpattern.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:569:4: defpattern
{
pushFollow(FOLLOW_defpattern_in_typedef_clause3335);
defpattern237=defpattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_defpattern.add(defpattern237.getTree());
// AST REWRITE
// elements: defpattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 569:15: -> ^( TYPEDEF_CLAUSE defpattern )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:569:18: ^( TYPEDEF_CLAUSE defpattern )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF_CLAUSE, "TYPEDEF_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_defpattern.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "typedef_clause"
public static class st_yield_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_yield"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:571:1: st_yield : L_yield expr -> ^( YIELD expr ) ;
public final babel17Parser.st_yield_return st_yield() throws RecognitionException {
babel17Parser.st_yield_return retval = new babel17Parser.st_yield_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_yield238=null;
babel17Parser.expr_return expr239 = null;
CommonTree L_yield238_tree=null;
RewriteRuleTokenStream stream_L_yield=new RewriteRuleTokenStream(adaptor,"token L_yield");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:571:9: ( L_yield expr -> ^( YIELD expr ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:571:11: L_yield expr
{
L_yield238=(Token)match(input,L_yield,FOLLOW_L_yield_in_st_yield3354); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_yield.add(L_yield238);
pushFollow(FOLLOW_expr_in_st_yield3356);
expr239=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr239.getTree());
// AST REWRITE
// elements: expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 571:24: -> ^( YIELD expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:571:27: ^( YIELD expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(YIELD, "YIELD"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_yield"
public static class st_memoize_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_memoize"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:573:1: st_memoize : L_memoize memo_id ( ( NL )? COMMA ( NL )? memo_id )* -> ^( MEMOIZE ( memo_id )* ) ;
public final babel17Parser.st_memoize_return st_memoize() throws RecognitionException {
babel17Parser.st_memoize_return retval = new babel17Parser.st_memoize_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_memoize240=null;
Token NL242=null;
Token COMMA243=null;
Token NL244=null;
babel17Parser.memo_id_return memo_id241 = null;
babel17Parser.memo_id_return memo_id245 = null;
CommonTree L_memoize240_tree=null;
CommonTree NL242_tree=null;
CommonTree COMMA243_tree=null;
CommonTree NL244_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_memoize=new RewriteRuleTokenStream(adaptor,"token L_memoize");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_memo_id=new RewriteRuleSubtreeStream(adaptor,"rule memo_id");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:2: ( L_memoize memo_id ( ( NL )? COMMA ( NL )? memo_id )* -> ^( MEMOIZE ( memo_id )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:4: L_memoize memo_id ( ( NL )? COMMA ( NL )? memo_id )*
{
L_memoize240=(Token)match(input,L_memoize,FOLLOW_L_memoize_in_st_memoize3377); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_memoize.add(L_memoize240);
pushFollow(FOLLOW_memo_id_in_st_memoize3379);
memo_id241=memo_id();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_memo_id.add(memo_id241.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:22: ( ( NL )? COMMA ( NL )? memo_id )*
loop116:
do {
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==NL) ) {
int LA116_1 = input.LA(2);
if ( (LA116_1==COMMA) ) {
alt116=1;
}
}
else if ( (LA116_0==COMMA) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:23: ( NL )? COMMA ( NL )? memo_id
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:23: ( NL )?
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==NL) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:23: NL
{
NL242=(Token)match(input,NL,FOLLOW_NL_in_st_memoize3382); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL242);
}
break;
}
COMMA243=(Token)match(input,COMMA,FOLLOW_COMMA_in_st_memoize3385); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA243);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:33: ( NL )?
int alt115=2;
int LA115_0 = input.LA(1);
if ( (LA115_0==NL) ) {
alt115=1;
}
switch (alt115) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:574:33: NL
{
NL244=(Token)match(input,NL,FOLLOW_NL_in_st_memoize3387); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL244);
}
break;
}
pushFollow(FOLLOW_memo_id_in_st_memoize3390);
memo_id245=memo_id();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_memo_id.add(memo_id245.getTree());
}
break;
default :
break loop116;
}
} while (true);
// AST REWRITE
// elements: memo_id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 575:5: -> ^( MEMOIZE ( memo_id )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:575:8: ^( MEMOIZE ( memo_id )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MEMOIZE, "MEMOIZE"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:575:18: ( memo_id )*
while ( stream_memo_id.hasNext() ) {
adaptor.addChild(root_1, stream_memo_id.nextTree());
}
stream_memo_id.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_memoize"
public static class memo_id_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "memo_id"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:577:1: memo_id : ( Id -> ^( MEMOID_STRONG Id ) | '(' Id ')' -> ^( MEMOID_WEAK Id ) );
public final babel17Parser.memo_id_return memo_id() throws RecognitionException {
babel17Parser.memo_id_return retval = new babel17Parser.memo_id_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id246=null;
Token char_literal247=null;
Token Id248=null;
Token char_literal249=null;
CommonTree Id246_tree=null;
CommonTree char_literal247_tree=null;
CommonTree Id248_tree=null;
CommonTree char_literal249_tree=null;
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:577:9: ( Id -> ^( MEMOID_STRONG Id ) | '(' Id ')' -> ^( MEMOID_WEAK Id ) )
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==Id) ) {
alt117=1;
}
else if ( (LA117_0==ROUND_BRACKET_OPEN) ) {
alt117=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 117, 0, input);
throw nvae;
}
switch (alt117) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:577:11: Id
{
Id246=(Token)match(input,Id,FOLLOW_Id_in_memo_id3419); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id246);
// AST REWRITE
// elements: Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 577:14: -> ^( MEMOID_STRONG Id )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:577:17: ^( MEMOID_STRONG Id )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MEMOID_STRONG, "MEMOID_STRONG"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:578:4: '(' Id ')'
{
char_literal247=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_memo_id3432); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal247);
Id248=(Token)match(input,Id,FOLLOW_Id_in_memo_id3434); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id248);
char_literal249=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_memo_id3436); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal249);
// AST REWRITE
// elements: Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 578:15: -> ^( MEMOID_WEAK Id )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:578:18: ^( MEMOID_WEAK Id )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MEMOID_WEAK, "MEMOID_WEAK"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "memo_id"
public static class st_private_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_private"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:580:1: st_private : L_private private_id ( ( NL )? COMMA ( NL )? private_id )* -> ^( PRIVATE ( private_id )* ) ;
public final babel17Parser.st_private_return st_private() throws RecognitionException {
babel17Parser.st_private_return retval = new babel17Parser.st_private_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_private250=null;
Token NL252=null;
Token COMMA253=null;
Token NL254=null;
babel17Parser.private_id_return private_id251 = null;
babel17Parser.private_id_return private_id255 = null;
CommonTree L_private250_tree=null;
CommonTree NL252_tree=null;
CommonTree COMMA253_tree=null;
CommonTree NL254_tree=null;
RewriteRuleTokenStream stream_L_private=new RewriteRuleTokenStream(adaptor,"token L_private");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_private_id=new RewriteRuleSubtreeStream(adaptor,"rule private_id");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:2: ( L_private private_id ( ( NL )? COMMA ( NL )? private_id )* -> ^( PRIVATE ( private_id )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:4: L_private private_id ( ( NL )? COMMA ( NL )? private_id )*
{
L_private250=(Token)match(input,L_private,FOLLOW_L_private_in_st_private3453); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_private.add(L_private250);
pushFollow(FOLLOW_private_id_in_st_private3455);
private_id251=private_id();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_private_id.add(private_id251.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:25: ( ( NL )? COMMA ( NL )? private_id )*
loop120:
do {
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==NL) ) {
int LA120_1 = input.LA(2);
if ( (LA120_1==COMMA) ) {
alt120=1;
}
}
else if ( (LA120_0==COMMA) ) {
alt120=1;
}
switch (alt120) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:26: ( NL )? COMMA ( NL )? private_id
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:26: ( NL )?
int alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==NL) ) {
alt118=1;
}
switch (alt118) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:26: NL
{
NL252=(Token)match(input,NL,FOLLOW_NL_in_st_private3458); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL252);
}
break;
}
COMMA253=(Token)match(input,COMMA,FOLLOW_COMMA_in_st_private3461); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA253);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:36: ( NL )?
int alt119=2;
int LA119_0 = input.LA(1);
if ( (LA119_0==NL) ) {
alt119=1;
}
switch (alt119) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:581:36: NL
{
NL254=(Token)match(input,NL,FOLLOW_NL_in_st_private3463); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL254);
}
break;
}
pushFollow(FOLLOW_private_id_in_st_private3466);
private_id255=private_id();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_private_id.add(private_id255.getTree());
}
break;
default :
break loop120;
}
} while (true);
// AST REWRITE
// elements: private_id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 582:5: -> ^( PRIVATE ( private_id )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:582:8: ^( PRIVATE ( private_id )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PRIVATE, "PRIVATE"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:582:18: ( private_id )*
while ( stream_private_id.hasNext() ) {
adaptor.addChild(root_1, stream_private_id.nextTree());
}
stream_private_id.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_private"
public static class private_id_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "private_id"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:584:1: private_id : Id -> ^( PRIVATEID Id ) ;
public final babel17Parser.private_id_return private_id() throws RecognitionException {
babel17Parser.private_id_return retval = new babel17Parser.private_id_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id256=null;
CommonTree Id256_tree=null;
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:585:2: ( Id -> ^( PRIVATEID Id ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:585:4: Id
{
Id256=(Token)match(input,Id,FOLLOW_Id_in_private_id3492); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id256);
// AST REWRITE
// elements: Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 585:7: -> ^( PRIVATEID Id )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:585:10: ^( PRIVATEID Id )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PRIVATEID, "PRIVATEID"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "private_id"
public static class testid_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "testid"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:587:1: testid : ( Id | L_unittest );
public final babel17Parser.testid_return testid() throws RecognitionException {
babel17Parser.testid_return retval = new babel17Parser.testid_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set257=null;
CommonTree set257_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:587:8: ( Id | L_unittest )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set257=(Token)input.LT(1);
if ( input.LA(1)==L_unittest||input.LA(1)==Id ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set257));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "testid"
public static class moduleid_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "moduleid"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:590:1: moduleid : Id ( ( NL )? PERIOD ( NL )? testid )* -> ^( MODULEID ( Id )? ( testid )* ) ;
public final babel17Parser.moduleid_return moduleid() throws RecognitionException {
babel17Parser.moduleid_return retval = new babel17Parser.moduleid_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id258=null;
Token NL259=null;
Token PERIOD260=null;
Token NL261=null;
babel17Parser.testid_return testid262 = null;
CommonTree Id258_tree=null;
CommonTree NL259_tree=null;
CommonTree PERIOD260_tree=null;
CommonTree NL261_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleTokenStream stream_PERIOD=new RewriteRuleTokenStream(adaptor,"token PERIOD");
RewriteRuleSubtreeStream stream_testid=new RewriteRuleSubtreeStream(adaptor,"rule testid");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:2: ( Id ( ( NL )? PERIOD ( NL )? testid )* -> ^( MODULEID ( Id )? ( testid )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:4: Id ( ( NL )? PERIOD ( NL )? testid )*
{
Id258=(Token)match(input,Id,FOLLOW_Id_in_moduleid3525); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id258);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:7: ( ( NL )? PERIOD ( NL )? testid )*
loop123:
do {
int alt123=2;
int LA123_0 = input.LA(1);
if ( (LA123_0==NL) ) {
int LA123_1 = input.LA(2);
if ( (LA123_1==PERIOD) ) {
alt123=1;
}
}
else if ( (LA123_0==PERIOD) ) {
alt123=1;
}
switch (alt123) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:8: ( NL )? PERIOD ( NL )? testid
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:8: ( NL )?
int alt121=2;
int LA121_0 = input.LA(1);
if ( (LA121_0==NL) ) {
alt121=1;
}
switch (alt121) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:8: NL
{
NL259=(Token)match(input,NL,FOLLOW_NL_in_moduleid3528); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL259);
}
break;
}
PERIOD260=(Token)match(input,PERIOD,FOLLOW_PERIOD_in_moduleid3531); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERIOD.add(PERIOD260);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:19: ( NL )?
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==NL) ) {
alt122=1;
}
switch (alt122) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:19: NL
{
NL261=(Token)match(input,NL,FOLLOW_NL_in_moduleid3533); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL261);
}
break;
}
pushFollow(FOLLOW_testid_in_moduleid3536);
testid262=testid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_testid.add(testid262.getTree());
}
break;
default :
break loop123;
}
} while (true);
// AST REWRITE
// elements: Id, testid
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 591:32: -> ^( MODULEID ( Id )? ( testid )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:35: ^( MODULEID ( Id )? ( testid )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MODULEID, "MODULEID"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:46: ( Id )?
if ( stream_Id.hasNext() ) {
adaptor.addChild(root_1, stream_Id.nextNode());
}
stream_Id.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:591:50: ( testid )*
while ( stream_testid.hasNext() ) {
adaptor.addChild(root_1, stream_testid.nextTree());
}
stream_testid.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "moduleid"
public static class st_module_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_module"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:593:1: st_module : L_module ( NL )? moduleid block ( L_unittest block )? L_end -> ^( L_module moduleid block ( L_unittest )? ( block )? ) ;
public final babel17Parser.st_module_return st_module() throws RecognitionException {
babel17Parser.st_module_return retval = new babel17Parser.st_module_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_module263=null;
Token NL264=null;
Token L_unittest267=null;
Token L_end269=null;
babel17Parser.moduleid_return moduleid265 = null;
babel17Parser.block_return block266 = null;
babel17Parser.block_return block268 = null;
CommonTree L_module263_tree=null;
CommonTree NL264_tree=null;
CommonTree L_unittest267_tree=null;
CommonTree L_end269_tree=null;
RewriteRuleTokenStream stream_L_module=new RewriteRuleTokenStream(adaptor,"token L_module");
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_L_unittest=new RewriteRuleTokenStream(adaptor,"token L_unittest");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_moduleid=new RewriteRuleSubtreeStream(adaptor,"rule moduleid");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:2: ( L_module ( NL )? moduleid block ( L_unittest block )? L_end -> ^( L_module moduleid block ( L_unittest )? ( block )? ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:4: L_module ( NL )? moduleid block ( L_unittest block )? L_end
{
L_module263=(Token)match(input,L_module,FOLLOW_L_module_in_st_module3559); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_module.add(L_module263);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:13: ( NL )?
int alt124=2;
int LA124_0 = input.LA(1);
if ( (LA124_0==NL) ) {
alt124=1;
}
switch (alt124) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:13: NL
{
NL264=(Token)match(input,NL,FOLLOW_NL_in_st_module3561); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL264);
}
break;
}
pushFollow(FOLLOW_moduleid_in_st_module3564);
moduleid265=moduleid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_moduleid.add(moduleid265.getTree());
pushFollow(FOLLOW_block_in_st_module3566);
block266=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block266.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:32: ( L_unittest block )?
int alt125=2;
int LA125_0 = input.LA(1);
if ( (LA125_0==L_unittest) ) {
alt125=1;
}
switch (alt125) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:33: L_unittest block
{
L_unittest267=(Token)match(input,L_unittest,FOLLOW_L_unittest_in_st_module3569); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_unittest.add(L_unittest267);
pushFollow(FOLLOW_block_in_st_module3571);
block268=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block268.getTree());
}
break;
}
L_end269=(Token)match(input,L_end,FOLLOW_L_end_in_st_module3575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end269);
// AST REWRITE
// elements: L_unittest, block, block, L_module, moduleid
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 594:58: -> ^( L_module moduleid block ( L_unittest )? ( block )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:61: ^( L_module moduleid block ( L_unittest )? ( block )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_module.nextNode(), root_1);
adaptor.addChild(root_1, stream_moduleid.nextTree());
adaptor.addChild(root_1, stream_block.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:87: ( L_unittest )?
if ( stream_L_unittest.hasNext() ) {
adaptor.addChild(root_1, stream_L_unittest.nextNode());
}
stream_L_unittest.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:594:99: ( block )?
if ( stream_block.hasNext() ) {
adaptor.addChild(root_1, stream_block.nextTree());
}
stream_block.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_module"
public static class importprefix_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "importprefix"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:596:1: importprefix : ( L_root | testid ) ( ( NL )? PERIOD ( NL )? testid )* -> ^( IMPORT_PREFIX ( L_root )? ( testid )* ) ;
public final babel17Parser.importprefix_return importprefix() throws RecognitionException {
babel17Parser.importprefix_return retval = new babel17Parser.importprefix_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_root270=null;
Token NL272=null;
Token PERIOD273=null;
Token NL274=null;
babel17Parser.testid_return testid271 = null;
babel17Parser.testid_return testid275 = null;
CommonTree L_root270_tree=null;
CommonTree NL272_tree=null;
CommonTree PERIOD273_tree=null;
CommonTree NL274_tree=null;
RewriteRuleTokenStream stream_L_root=new RewriteRuleTokenStream(adaptor,"token L_root");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_PERIOD=new RewriteRuleTokenStream(adaptor,"token PERIOD");
RewriteRuleSubtreeStream stream_testid=new RewriteRuleSubtreeStream(adaptor,"rule testid");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:2: ( ( L_root | testid ) ( ( NL )? PERIOD ( NL )? testid )* -> ^( IMPORT_PREFIX ( L_root )? ( testid )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:4: ( L_root | testid ) ( ( NL )? PERIOD ( NL )? testid )*
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:4: ( L_root | testid )
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==L_root) ) {
alt126=1;
}
else if ( (LA126_0==L_unittest||LA126_0==Id) ) {
alt126=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 126, 0, input);
throw nvae;
}
switch (alt126) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:5: L_root
{
L_root270=(Token)match(input,L_root,FOLLOW_L_root_in_importprefix3602); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_root.add(L_root270);
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:14: testid
{
pushFollow(FOLLOW_testid_in_importprefix3606);
testid271=testid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_testid.add(testid271.getTree());
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:22: ( ( NL )? PERIOD ( NL )? testid )*
loop129:
do {
int alt129=2;
int LA129_0 = input.LA(1);
if ( (LA129_0==NL) ) {
int LA129_1 = input.LA(2);
if ( (LA129_1==PERIOD) ) {
int LA129_2 = input.LA(3);
if ( (LA129_2==NL) ) {
int LA129_4 = input.LA(4);
if ( (LA129_4==L_unittest||LA129_4==Id) ) {
alt129=1;
}
}
else if ( (LA129_2==L_unittest||LA129_2==Id) ) {
alt129=1;
}
}
}
else if ( (LA129_0==PERIOD) ) {
int LA129_2 = input.LA(2);
if ( (LA129_2==NL) ) {
int LA129_4 = input.LA(3);
if ( (LA129_4==L_unittest||LA129_4==Id) ) {
alt129=1;
}
}
else if ( (LA129_2==L_unittest||LA129_2==Id) ) {
alt129=1;
}
}
switch (alt129) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:23: ( NL )? PERIOD ( NL )? testid
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:23: ( NL )?
int alt127=2;
int LA127_0 = input.LA(1);
if ( (LA127_0==NL) ) {
alt127=1;
}
switch (alt127) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:23: NL
{
NL272=(Token)match(input,NL,FOLLOW_NL_in_importprefix3610); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL272);
}
break;
}
PERIOD273=(Token)match(input,PERIOD,FOLLOW_PERIOD_in_importprefix3613); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERIOD.add(PERIOD273);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:34: ( NL )?
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==NL) ) {
alt128=1;
}
switch (alt128) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:34: NL
{
NL274=(Token)match(input,NL,FOLLOW_NL_in_importprefix3615); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL274);
}
break;
}
pushFollow(FOLLOW_testid_in_importprefix3618);
testid275=testid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_testid.add(testid275.getTree());
}
break;
default :
break loop129;
}
} while (true);
// AST REWRITE
// elements: testid, L_root
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 597:47: -> ^( IMPORT_PREFIX ( L_root )? ( testid )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:50: ^( IMPORT_PREFIX ( L_root )? ( testid )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IMPORT_PREFIX, "IMPORT_PREFIX"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:66: ( L_root )?
if ( stream_L_root.hasNext() ) {
adaptor.addChild(root_1, stream_L_root.nextNode());
}
stream_L_root.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:597:74: ( testid )*
while ( stream_testid.hasNext() ) {
adaptor.addChild(root_1, stream_testid.nextTree());
}
stream_testid.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "importprefix"
public static class importall_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "importall"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:599:1: importall : UNDERSCORE -> ^( IMPORT_ALL ) ;
public final babel17Parser.importall_return importall() throws RecognitionException {
babel17Parser.importall_return retval = new babel17Parser.importall_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token UNDERSCORE276=null;
CommonTree UNDERSCORE276_tree=null;
RewriteRuleTokenStream stream_UNDERSCORE=new RewriteRuleTokenStream(adaptor,"token UNDERSCORE");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:600:2: ( UNDERSCORE -> ^( IMPORT_ALL ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:600:4: UNDERSCORE
{
UNDERSCORE276=(Token)match(input,UNDERSCORE,FOLLOW_UNDERSCORE_in_importall3643); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_UNDERSCORE.add(UNDERSCORE276);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 600:15: -> ^( IMPORT_ALL )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:600:18: ^( IMPORT_ALL )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IMPORT_ALL, "IMPORT_ALL"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "importall"
public static class importsetclause_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "importsetclause"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:602:1: importsetclause : ( testid ( ( NL )? token_DOUBLE_ARROW ( ( NL )? Id )? )? -> ^( IMPORT_PLUS testid ( Id )? ) | '-' ( NL )? testid -> ^( IMPORT_MINUS testid ) | importall );
public final babel17Parser.importsetclause_return importsetclause() throws RecognitionException {
babel17Parser.importsetclause_return retval = new babel17Parser.importsetclause_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL278=null;
Token NL280=null;
Token Id281=null;
Token char_literal282=null;
Token NL283=null;
babel17Parser.testid_return testid277 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW279 = null;
babel17Parser.testid_return testid284 = null;
babel17Parser.importall_return importall285 = null;
CommonTree NL278_tree=null;
CommonTree NL280_tree=null;
CommonTree Id281_tree=null;
CommonTree char_literal282_tree=null;
CommonTree NL283_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_MINUS=new RewriteRuleTokenStream(adaptor,"token MINUS");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_testid=new RewriteRuleSubtreeStream(adaptor,"rule testid");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:2: ( testid ( ( NL )? token_DOUBLE_ARROW ( ( NL )? Id )? )? -> ^( IMPORT_PLUS testid ( Id )? ) | '-' ( NL )? testid -> ^( IMPORT_MINUS testid ) | importall )
int alt135=3;
switch ( input.LA(1) ) {
case L_unittest:
case Id:
{
alt135=1;
}
break;
case MINUS:
{
alt135=2;
}
break;
case UNDERSCORE:
{
alt135=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 135, 0, input);
throw nvae;
}
switch (alt135) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:4: testid ( ( NL )? token_DOUBLE_ARROW ( ( NL )? Id )? )?
{
pushFollow(FOLLOW_testid_in_importsetclause3659);
testid277=testid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_testid.add(testid277.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:11: ( ( NL )? token_DOUBLE_ARROW ( ( NL )? Id )? )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==NL) ) {
int LA133_1 = input.LA(2);
if ( ((LA133_1>=A_DOUBLE_ARROW && LA133_1<=U_DOUBLE_ARROW)) ) {
alt133=1;
}
}
else if ( ((LA133_0>=A_DOUBLE_ARROW && LA133_0<=U_DOUBLE_ARROW)) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:12: ( NL )? token_DOUBLE_ARROW ( ( NL )? Id )?
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:12: ( NL )?
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==NL) ) {
alt130=1;
}
switch (alt130) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:12: NL
{
NL278=(Token)match(input,NL,FOLLOW_NL_in_importsetclause3662); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL278);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_importsetclause3665);
token_DOUBLE_ARROW279=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW279.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:35: ( ( NL )? Id )?
int alt132=2;
int LA132_0 = input.LA(1);
if ( (LA132_0==NL) ) {
int LA132_1 = input.LA(2);
if ( (LA132_1==Id) ) {
alt132=1;
}
}
else if ( (LA132_0==Id) ) {
alt132=1;
}
switch (alt132) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:36: ( NL )? Id
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:36: ( NL )?
int alt131=2;
int LA131_0 = input.LA(1);
if ( (LA131_0==NL) ) {
alt131=1;
}
switch (alt131) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:36: NL
{
NL280=(Token)match(input,NL,FOLLOW_NL_in_importsetclause3668); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL280);
}
break;
}
Id281=(Token)match(input,Id,FOLLOW_Id_in_importsetclause3671); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id281);
}
break;
}
}
break;
}
// AST REWRITE
// elements: testid, Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 603:47: -> ^( IMPORT_PLUS testid ( Id )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:50: ^( IMPORT_PLUS testid ( Id )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IMPORT_PLUS, "IMPORT_PLUS"), root_1);
adaptor.addChild(root_1, stream_testid.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:603:71: ( Id )?
if ( stream_Id.hasNext() ) {
adaptor.addChild(root_1, stream_Id.nextNode());
}
stream_Id.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:604:4: '-' ( NL )? testid
{
char_literal282=(Token)match(input,MINUS,FOLLOW_MINUS_in_importsetclause3691); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUS.add(char_literal282);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:604:8: ( NL )?
int alt134=2;
int LA134_0 = input.LA(1);
if ( (LA134_0==NL) ) {
alt134=1;
}
switch (alt134) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:604:8: NL
{
NL283=(Token)match(input,NL,FOLLOW_NL_in_importsetclause3693); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL283);
}
break;
}
pushFollow(FOLLOW_testid_in_importsetclause3696);
testid284=testid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_testid.add(testid284.getTree());
// AST REWRITE
// elements: testid
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 604:19: -> ^( IMPORT_MINUS testid )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:604:22: ^( IMPORT_MINUS testid )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IMPORT_MINUS, "IMPORT_MINUS"), root_1);
adaptor.addChild(root_1, stream_testid.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:605:4: importall
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_importall_in_importsetclause3709);
importall285=importall();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, importall285.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "importsetclause"
public static class importset_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "importset"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:607:1: importset : '{' ( NL )? importsetclause ( ( NL )? ',' ( NL )? importsetclause )* ( NL )? '}' -> ^( IMPORT_SET ( importsetclause )* ) ;
public final babel17Parser.importset_return importset() throws RecognitionException {
babel17Parser.importset_return retval = new babel17Parser.importset_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal286=null;
Token NL287=null;
Token NL289=null;
Token char_literal290=null;
Token NL291=null;
Token NL293=null;
Token char_literal294=null;
babel17Parser.importsetclause_return importsetclause288 = null;
babel17Parser.importsetclause_return importsetclause292 = null;
CommonTree char_literal286_tree=null;
CommonTree NL287_tree=null;
CommonTree NL289_tree=null;
CommonTree char_literal290_tree=null;
CommonTree NL291_tree=null;
CommonTree NL293_tree=null;
CommonTree char_literal294_tree=null;
RewriteRuleTokenStream stream_CURLY_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token CURLY_BRACKET_OPEN");
RewriteRuleTokenStream stream_CURLY_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token CURLY_BRACKET_CLOSE");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_importsetclause=new RewriteRuleSubtreeStream(adaptor,"rule importsetclause");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:2: ( '{' ( NL )? importsetclause ( ( NL )? ',' ( NL )? importsetclause )* ( NL )? '}' -> ^( IMPORT_SET ( importsetclause )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:4: '{' ( NL )? importsetclause ( ( NL )? ',' ( NL )? importsetclause )* ( NL )? '}'
{
char_literal286=(Token)match(input,CURLY_BRACKET_OPEN,FOLLOW_CURLY_BRACKET_OPEN_in_importset3719); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_OPEN.add(char_literal286);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:8: ( NL )?
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==NL) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:8: NL
{
NL287=(Token)match(input,NL,FOLLOW_NL_in_importset3721); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL287);
}
break;
}
pushFollow(FOLLOW_importsetclause_in_importset3724);
importsetclause288=importsetclause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_importsetclause.add(importsetclause288.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:28: ( ( NL )? ',' ( NL )? importsetclause )*
loop139:
do {
int alt139=2;
int LA139_0 = input.LA(1);
if ( (LA139_0==NL) ) {
int LA139_1 = input.LA(2);
if ( (LA139_1==COMMA) ) {
alt139=1;
}
}
else if ( (LA139_0==COMMA) ) {
alt139=1;
}
switch (alt139) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:29: ( NL )? ',' ( NL )? importsetclause
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:29: ( NL )?
int alt137=2;
int LA137_0 = input.LA(1);
if ( (LA137_0==NL) ) {
alt137=1;
}
switch (alt137) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:29: NL
{
NL289=(Token)match(input,NL,FOLLOW_NL_in_importset3727); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL289);
}
break;
}
char_literal290=(Token)match(input,COMMA,FOLLOW_COMMA_in_importset3730); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal290);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:37: ( NL )?
int alt138=2;
int LA138_0 = input.LA(1);
if ( (LA138_0==NL) ) {
alt138=1;
}
switch (alt138) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:37: NL
{
NL291=(Token)match(input,NL,FOLLOW_NL_in_importset3732); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL291);
}
break;
}
pushFollow(FOLLOW_importsetclause_in_importset3735);
importsetclause292=importsetclause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_importsetclause.add(importsetclause292.getTree());
}
break;
default :
break loop139;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:59: ( NL )?
int alt140=2;
int LA140_0 = input.LA(1);
if ( (LA140_0==NL) ) {
alt140=1;
}
switch (alt140) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:59: NL
{
NL293=(Token)match(input,NL,FOLLOW_NL_in_importset3739); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL293);
}
break;
}
char_literal294=(Token)match(input,CURLY_BRACKET_CLOSE,FOLLOW_CURLY_BRACKET_CLOSE_in_importset3742); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_CLOSE.add(char_literal294);
// AST REWRITE
// elements: importsetclause
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 608:67: -> ^( IMPORT_SET ( importsetclause )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:70: ^( IMPORT_SET ( importsetclause )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IMPORT_SET, "IMPORT_SET"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:608:83: ( importsetclause )*
while ( stream_importsetclause.hasNext() ) {
adaptor.addChild(root_1, stream_importsetclause.nextTree());
}
stream_importsetclause.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "importset"
public static class st_import_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "st_import"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:610:1: st_import : L_import ( NL )? importprefix ( ( NL )? ( PERIOD ( NL )? importall | PERIOD ( NL )? importset | token_DOUBLE_ARROW ( NL )? Id ) )? -> ^( L_import importprefix ( importall )? ( importset )? ( Id )? ) ;
public final babel17Parser.st_import_return st_import() throws RecognitionException {
babel17Parser.st_import_return retval = new babel17Parser.st_import_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_import295=null;
Token NL296=null;
Token NL298=null;
Token PERIOD299=null;
Token NL300=null;
Token PERIOD302=null;
Token NL303=null;
Token NL306=null;
Token Id307=null;
babel17Parser.importprefix_return importprefix297 = null;
babel17Parser.importall_return importall301 = null;
babel17Parser.importset_return importset304 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW305 = null;
CommonTree L_import295_tree=null;
CommonTree NL296_tree=null;
CommonTree NL298_tree=null;
CommonTree PERIOD299_tree=null;
CommonTree NL300_tree=null;
CommonTree PERIOD302_tree=null;
CommonTree NL303_tree=null;
CommonTree NL306_tree=null;
CommonTree Id307_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_PERIOD=new RewriteRuleTokenStream(adaptor,"token PERIOD");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleTokenStream stream_L_import=new RewriteRuleTokenStream(adaptor,"token L_import");
RewriteRuleSubtreeStream stream_importprefix=new RewriteRuleSubtreeStream(adaptor,"rule importprefix");
RewriteRuleSubtreeStream stream_importset=new RewriteRuleSubtreeStream(adaptor,"rule importset");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_importall=new RewriteRuleSubtreeStream(adaptor,"rule importall");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:2: ( L_import ( NL )? importprefix ( ( NL )? ( PERIOD ( NL )? importall | PERIOD ( NL )? importset | token_DOUBLE_ARROW ( NL )? Id ) )? -> ^( L_import importprefix ( importall )? ( importset )? ( Id )? ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:4: L_import ( NL )? importprefix ( ( NL )? ( PERIOD ( NL )? importall | PERIOD ( NL )? importset | token_DOUBLE_ARROW ( NL )? Id ) )?
{
L_import295=(Token)match(input,L_import,FOLLOW_L_import_in_st_import3760); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_import.add(L_import295);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:13: ( NL )?
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==NL) ) {
alt141=1;
}
switch (alt141) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:13: NL
{
NL296=(Token)match(input,NL,FOLLOW_NL_in_st_import3762); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL296);
}
break;
}
pushFollow(FOLLOW_importprefix_in_st_import3765);
importprefix297=importprefix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_importprefix.add(importprefix297.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:30: ( ( NL )? ( PERIOD ( NL )? importall | PERIOD ( NL )? importset | token_DOUBLE_ARROW ( NL )? Id ) )?
int alt147=2;
int LA147_0 = input.LA(1);
if ( (LA147_0==NL) ) {
int LA147_1 = input.LA(2);
if ( ((LA147_1>=A_DOUBLE_ARROW && LA147_1<=U_DOUBLE_ARROW)||LA147_1==PERIOD) ) {
alt147=1;
}
}
else if ( ((LA147_0>=A_DOUBLE_ARROW && LA147_0<=U_DOUBLE_ARROW)||LA147_0==PERIOD) ) {
alt147=1;
}
switch (alt147) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:31: ( NL )? ( PERIOD ( NL )? importall | PERIOD ( NL )? importset | token_DOUBLE_ARROW ( NL )? Id )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:31: ( NL )?
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==NL) ) {
alt142=1;
}
switch (alt142) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:31: NL
{
NL298=(Token)match(input,NL,FOLLOW_NL_in_st_import3768); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL298);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:35: ( PERIOD ( NL )? importall | PERIOD ( NL )? importset | token_DOUBLE_ARROW ( NL )? Id )
int alt146=3;
int LA146_0 = input.LA(1);
if ( (LA146_0==PERIOD) ) {
switch ( input.LA(2) ) {
case NL:
{
int LA146_3 = input.LA(3);
if ( (LA146_3==CURLY_BRACKET_OPEN) ) {
alt146=2;
}
else if ( (LA146_3==UNDERSCORE) ) {
alt146=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 146, 3, input);
throw nvae;
}
}
break;
case CURLY_BRACKET_OPEN:
{
alt146=2;
}
break;
case UNDERSCORE:
{
alt146=1;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 146, 1, input);
throw nvae;
}
}
else if ( ((LA146_0>=A_DOUBLE_ARROW && LA146_0<=U_DOUBLE_ARROW)) ) {
alt146=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 146, 0, input);
throw nvae;
}
switch (alt146) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:36: PERIOD ( NL )? importall
{
PERIOD299=(Token)match(input,PERIOD,FOLLOW_PERIOD_in_st_import3772); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERIOD.add(PERIOD299);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:43: ( NL )?
int alt143=2;
int LA143_0 = input.LA(1);
if ( (LA143_0==NL) ) {
alt143=1;
}
switch (alt143) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:43: NL
{
NL300=(Token)match(input,NL,FOLLOW_NL_in_st_import3774); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL300);
}
break;
}
pushFollow(FOLLOW_importall_in_st_import3777);
importall301=importall();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_importall.add(importall301.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:59: PERIOD ( NL )? importset
{
PERIOD302=(Token)match(input,PERIOD,FOLLOW_PERIOD_in_st_import3781); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERIOD.add(PERIOD302);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:66: ( NL )?
int alt144=2;
int LA144_0 = input.LA(1);
if ( (LA144_0==NL) ) {
alt144=1;
}
switch (alt144) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:66: NL
{
NL303=(Token)match(input,NL,FOLLOW_NL_in_st_import3783); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL303);
}
break;
}
pushFollow(FOLLOW_importset_in_st_import3786);
importset304=importset();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_importset.add(importset304.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:82: token_DOUBLE_ARROW ( NL )? Id
{
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_st_import3790);
token_DOUBLE_ARROW305=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW305.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:101: ( NL )?
int alt145=2;
int LA145_0 = input.LA(1);
if ( (LA145_0==NL) ) {
alt145=1;
}
switch (alt145) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:101: NL
{
NL306=(Token)match(input,NL,FOLLOW_NL_in_st_import3792); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL306);
}
break;
}
Id307=(Token)match(input,Id,FOLLOW_Id_in_st_import3795); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id307);
}
break;
}
}
break;
}
// AST REWRITE
// elements: importprefix, Id, importset, importall, L_import
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 611:111: -> ^( L_import importprefix ( importall )? ( importset )? ( Id )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:114: ^( L_import importprefix ( importall )? ( importset )? ( Id )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_import.nextNode(), root_1);
adaptor.addChild(root_1, stream_importprefix.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:138: ( importall )?
if ( stream_importall.hasNext() ) {
adaptor.addChild(root_1, stream_importall.nextTree());
}
stream_importall.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:149: ( importset )?
if ( stream_importset.hasNext() ) {
adaptor.addChild(root_1, stream_importset.nextTree());
}
stream_importset.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:611:160: ( Id )?
if ( stream_Id.hasNext() ) {
adaptor.addChild(root_1, stream_Id.nextNode());
}
stream_Id.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "st_import"
public static class expr_or_assign_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "expr_or_assign"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:613:1: expr_or_assign : ( ( Id ( NL )? left_modify )=> Id ( NL )? left_modify ( NL )? expr -> ^( LENS_MODIFY_LEFT left_modify Id expr ) | ( Id ( NL )? right_modify )=> Id ( NL )? right_modify ( NL )? expr -> ^( LENS_MODIFY_RIGHT right_modify Id expr ) | ( Id ( NL )? '=' )=> Id ( NL )? '=' ( NL )? expr -> ^( LENS_ASSIGN Id expr ) | ( pattern ( NL )? '=' )=> pattern ( NL )? '=' ( NL )? expr -> ^( ASSIGN pattern expr ) | ( term_expr ( NL )? left_modify )=> term_expr ( NL )? left_modify ( NL )? expr -> ^( LENS_MODIFY_LEFT left_modify term_expr expr ) | ( term_expr ( NL )? right_modify )=> term_expr ( NL )? right_modify ( NL )? expr -> ^( LENS_MODIFY_RIGHT right_modify term_expr expr ) | ( term_expr ( NL )? '=' )=> term_expr ( NL )? '=' ( NL )? expr -> ^( LENS_ASSIGN term_expr expr ) | expr );
public final babel17Parser.expr_or_assign_return expr_or_assign() throws RecognitionException {
babel17Parser.expr_or_assign_return retval = new babel17Parser.expr_or_assign_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id308=null;
Token NL309=null;
Token NL311=null;
Token Id313=null;
Token NL314=null;
Token NL316=null;
Token Id318=null;
Token NL319=null;
Token char_literal320=null;
Token NL321=null;
Token NL324=null;
Token char_literal325=null;
Token NL326=null;
Token NL329=null;
Token NL331=null;
Token NL334=null;
Token NL336=null;
Token NL339=null;
Token char_literal340=null;
Token NL341=null;
babel17Parser.left_modify_return left_modify310 = null;
babel17Parser.expr_return expr312 = null;
babel17Parser.right_modify_return right_modify315 = null;
babel17Parser.expr_return expr317 = null;
babel17Parser.expr_return expr322 = null;
babel17Parser.pattern_return pattern323 = null;
babel17Parser.expr_return expr327 = null;
babel17Parser.term_expr_return term_expr328 = null;
babel17Parser.left_modify_return left_modify330 = null;
babel17Parser.expr_return expr332 = null;
babel17Parser.term_expr_return term_expr333 = null;
babel17Parser.right_modify_return right_modify335 = null;
babel17Parser.expr_return expr337 = null;
babel17Parser.term_expr_return term_expr338 = null;
babel17Parser.expr_return expr342 = null;
babel17Parser.expr_return expr343 = null;
CommonTree Id308_tree=null;
CommonTree NL309_tree=null;
CommonTree NL311_tree=null;
CommonTree Id313_tree=null;
CommonTree NL314_tree=null;
CommonTree NL316_tree=null;
CommonTree Id318_tree=null;
CommonTree NL319_tree=null;
CommonTree char_literal320_tree=null;
CommonTree NL321_tree=null;
CommonTree NL324_tree=null;
CommonTree char_literal325_tree=null;
CommonTree NL326_tree=null;
CommonTree NL329_tree=null;
CommonTree NL331_tree=null;
CommonTree NL334_tree=null;
CommonTree NL336_tree=null;
CommonTree NL339_tree=null;
CommonTree char_literal340_tree=null;
CommonTree NL341_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_right_modify=new RewriteRuleSubtreeStream(adaptor,"rule right_modify");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
RewriteRuleSubtreeStream stream_left_modify=new RewriteRuleSubtreeStream(adaptor,"rule left_modify");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_term_expr=new RewriteRuleSubtreeStream(adaptor,"rule term_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:2: ( ( Id ( NL )? left_modify )=> Id ( NL )? left_modify ( NL )? expr -> ^( LENS_MODIFY_LEFT left_modify Id expr ) | ( Id ( NL )? right_modify )=> Id ( NL )? right_modify ( NL )? expr -> ^( LENS_MODIFY_RIGHT right_modify Id expr ) | ( Id ( NL )? '=' )=> Id ( NL )? '=' ( NL )? expr -> ^( LENS_ASSIGN Id expr ) | ( pattern ( NL )? '=' )=> pattern ( NL )? '=' ( NL )? expr -> ^( ASSIGN pattern expr ) | ( term_expr ( NL )? left_modify )=> term_expr ( NL )? left_modify ( NL )? expr -> ^( LENS_MODIFY_LEFT left_modify term_expr expr ) | ( term_expr ( NL )? right_modify )=> term_expr ( NL )? right_modify ( NL )? expr -> ^( LENS_MODIFY_RIGHT right_modify term_expr expr ) | ( term_expr ( NL )? '=' )=> term_expr ( NL )? '=' ( NL )? expr -> ^( LENS_ASSIGN term_expr expr ) | expr )
int alt162=8;
alt162 = dfa162.predict(input);
switch (alt162) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:4: ( Id ( NL )? left_modify )=> Id ( NL )? left_modify ( NL )? expr
{
Id308=(Token)match(input,Id,FOLLOW_Id_in_expr_or_assign3838); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id308);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:31: ( NL )?
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==NL) ) {
alt148=1;
}
switch (alt148) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:31: NL
{
NL309=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3840); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL309);
}
break;
}
pushFollow(FOLLOW_left_modify_in_expr_or_assign3843);
left_modify310=left_modify();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_left_modify.add(left_modify310.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:47: ( NL )?
int alt149=2;
int LA149_0 = input.LA(1);
if ( (LA149_0==NL) ) {
alt149=1;
}
switch (alt149) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:47: NL
{
NL311=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3845); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL311);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign3848);
expr312=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr312.getTree());
// AST REWRITE
// elements: Id, left_modify, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 615:56: -> ^( LENS_MODIFY_LEFT left_modify Id expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:59: ^( LENS_MODIFY_LEFT left_modify Id expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENS_MODIFY_LEFT, "LENS_MODIFY_LEFT"), root_1);
adaptor.addChild(root_1, stream_left_modify.nextTree());
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:4: ( Id ( NL )? right_modify )=> Id ( NL )? right_modify ( NL )? expr
{
Id313=(Token)match(input,Id,FOLLOW_Id_in_expr_or_assign3877); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id313);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:32: ( NL )?
int alt150=2;
int LA150_0 = input.LA(1);
if ( (LA150_0==NL) ) {
alt150=1;
}
switch (alt150) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:32: NL
{
NL314=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3879); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL314);
}
break;
}
pushFollow(FOLLOW_right_modify_in_expr_or_assign3882);
right_modify315=right_modify();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_right_modify.add(right_modify315.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:49: ( NL )?
int alt151=2;
int LA151_0 = input.LA(1);
if ( (LA151_0==NL) ) {
alt151=1;
}
switch (alt151) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:49: NL
{
NL316=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3884); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL316);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign3887);
expr317=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr317.getTree());
// AST REWRITE
// elements: expr, right_modify, Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 616:58: -> ^( LENS_MODIFY_RIGHT right_modify Id expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:61: ^( LENS_MODIFY_RIGHT right_modify Id expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENS_MODIFY_RIGHT, "LENS_MODIFY_RIGHT"), root_1);
adaptor.addChild(root_1, stream_right_modify.nextTree());
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:4: ( Id ( NL )? '=' )=> Id ( NL )? '=' ( NL )? expr
{
Id318=(Token)match(input,Id,FOLLOW_Id_in_expr_or_assign3918); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id318);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:24: ( NL )?
int alt152=2;
int LA152_0 = input.LA(1);
if ( (LA152_0==NL) ) {
alt152=1;
}
switch (alt152) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:24: NL
{
NL319=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3920); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL319);
}
break;
}
char_literal320=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_or_assign3923); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal320);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:32: ( NL )?
int alt153=2;
int LA153_0 = input.LA(1);
if ( (LA153_0==NL) ) {
alt153=1;
}
switch (alt153) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:32: NL
{
NL321=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3925); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL321);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign3928);
expr322=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr322.getTree());
// AST REWRITE
// elements: expr, Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 617:41: -> ^( LENS_ASSIGN Id expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:44: ^( LENS_ASSIGN Id expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENS_ASSIGN, "LENS_ASSIGN"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:4: ( pattern ( NL )? '=' )=> pattern ( NL )? '=' ( NL )? expr
{
pushFollow(FOLLOW_pattern_in_expr_or_assign3955);
pattern323=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern323.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:34: ( NL )?
int alt154=2;
int LA154_0 = input.LA(1);
if ( (LA154_0==NL) ) {
alt154=1;
}
switch (alt154) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:34: NL
{
NL324=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL324);
}
break;
}
char_literal325=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_or_assign3960); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal325);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:42: ( NL )?
int alt155=2;
int LA155_0 = input.LA(1);
if ( (LA155_0==NL) ) {
alt155=1;
}
switch (alt155) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:42: NL
{
NL326=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3962); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL326);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign3965);
expr327=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr327.getTree());
// AST REWRITE
// elements: pattern, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 618:51: -> ^( ASSIGN pattern expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:54: ^( ASSIGN pattern expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ASSIGN, "ASSIGN"), root_1);
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:4: ( term_expr ( NL )? left_modify )=> term_expr ( NL )? left_modify ( NL )? expr
{
pushFollow(FOLLOW_term_expr_in_expr_or_assign3991);
term_expr328=term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term_expr.add(term_expr328.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:45: ( NL )?
int alt156=2;
int LA156_0 = input.LA(1);
if ( (LA156_0==NL) ) {
alt156=1;
}
switch (alt156) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:45: NL
{
NL329=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3993); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL329);
}
break;
}
pushFollow(FOLLOW_left_modify_in_expr_or_assign3996);
left_modify330=left_modify();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_left_modify.add(left_modify330.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:61: ( NL )?
int alt157=2;
int LA157_0 = input.LA(1);
if ( (LA157_0==NL) ) {
alt157=1;
}
switch (alt157) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:61: NL
{
NL331=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign3998); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL331);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign4001);
expr332=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr332.getTree());
// AST REWRITE
// elements: left_modify, term_expr, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 619:70: -> ^( LENS_MODIFY_LEFT left_modify term_expr expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:73: ^( LENS_MODIFY_LEFT left_modify term_expr expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENS_MODIFY_LEFT, "LENS_MODIFY_LEFT"), root_1);
adaptor.addChild(root_1, stream_left_modify.nextTree());
adaptor.addChild(root_1, stream_term_expr.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:4: ( term_expr ( NL )? right_modify )=> term_expr ( NL )? right_modify ( NL )? expr
{
pushFollow(FOLLOW_term_expr_in_expr_or_assign4030);
term_expr333=term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term_expr.add(term_expr333.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:46: ( NL )?
int alt158=2;
int LA158_0 = input.LA(1);
if ( (LA158_0==NL) ) {
alt158=1;
}
switch (alt158) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:46: NL
{
NL334=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign4032); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL334);
}
break;
}
pushFollow(FOLLOW_right_modify_in_expr_or_assign4035);
right_modify335=right_modify();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_right_modify.add(right_modify335.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:63: ( NL )?
int alt159=2;
int LA159_0 = input.LA(1);
if ( (LA159_0==NL) ) {
alt159=1;
}
switch (alt159) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:63: NL
{
NL336=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign4037); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL336);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign4040);
expr337=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr337.getTree());
// AST REWRITE
// elements: term_expr, expr, right_modify
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 620:72: -> ^( LENS_MODIFY_RIGHT right_modify term_expr expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:75: ^( LENS_MODIFY_RIGHT right_modify term_expr expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENS_MODIFY_RIGHT, "LENS_MODIFY_RIGHT"), root_1);
adaptor.addChild(root_1, stream_right_modify.nextTree());
adaptor.addChild(root_1, stream_term_expr.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:4: ( term_expr ( NL )? '=' )=> term_expr ( NL )? '=' ( NL )? expr
{
pushFollow(FOLLOW_term_expr_in_expr_or_assign4070);
term_expr338=term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term_expr.add(term_expr338.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:38: ( NL )?
int alt160=2;
int LA160_0 = input.LA(1);
if ( (LA160_0==NL) ) {
alt160=1;
}
switch (alt160) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:38: NL
{
NL339=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign4072); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL339);
}
break;
}
char_literal340=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_or_assign4075); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(char_literal340);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:46: ( NL )?
int alt161=2;
int LA161_0 = input.LA(1);
if ( (LA161_0==NL) ) {
alt161=1;
}
switch (alt161) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:46: NL
{
NL341=(Token)match(input,NL,FOLLOW_NL_in_expr_or_assign4077); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL341);
}
break;
}
pushFollow(FOLLOW_expr_in_expr_or_assign4080);
expr342=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr342.getTree());
// AST REWRITE
// elements: term_expr, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 621:55: -> ^( LENS_ASSIGN term_expr expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:58: ^( LENS_ASSIGN term_expr expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENS_ASSIGN, "LENS_ASSIGN"), root_1);
adaptor.addChild(root_1, stream_term_expr.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:622:4: expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_expr_in_expr_or_assign4095);
expr343=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr343.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "expr_or_assign"
public static class left_modify_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "left_modify"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:624:1: left_modify : ( ML_plus | ML_plusplus | ML_minus | ML_minusminus | ML_times | ML_timestimes | ML_slash | ML_slashslash | ML_pow | left_modify_op '=' );
public final babel17Parser.left_modify_return left_modify() throws RecognitionException {
babel17Parser.left_modify_return retval = new babel17Parser.left_modify_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token ML_plus344=null;
Token ML_plusplus345=null;
Token ML_minus346=null;
Token ML_minusminus347=null;
Token ML_times348=null;
Token ML_timestimes349=null;
Token ML_slash350=null;
Token ML_slashslash351=null;
Token ML_pow352=null;
Token char_literal354=null;
babel17Parser.left_modify_op_return left_modify_op353 = null;
CommonTree ML_plus344_tree=null;
CommonTree ML_plusplus345_tree=null;
CommonTree ML_minus346_tree=null;
CommonTree ML_minusminus347_tree=null;
CommonTree ML_times348_tree=null;
CommonTree ML_timestimes349_tree=null;
CommonTree ML_slash350_tree=null;
CommonTree ML_slashslash351_tree=null;
CommonTree ML_pow352_tree=null;
CommonTree char_literal354_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:2: ( ML_plus | ML_plusplus | ML_minus | ML_minusminus | ML_times | ML_timestimes | ML_slash | ML_slashslash | ML_pow | left_modify_op '=' )
int alt163=10;
switch ( input.LA(1) ) {
case ML_plus:
{
alt163=1;
}
break;
case ML_plusplus:
{
alt163=2;
}
break;
case ML_minus:
{
alt163=3;
}
break;
case ML_minusminus:
{
alt163=4;
}
break;
case ML_times:
{
alt163=5;
}
break;
case ML_timestimes:
{
alt163=6;
}
break;
case ML_slash:
{
alt163=7;
}
break;
case ML_slashslash:
{
alt163=8;
}
break;
case ML_pow:
{
alt163=9;
}
break;
case L_div:
case L_mod:
case L_and:
case L_or:
case L_xor:
case L_min:
case L_max:
{
alt163=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 163, 0, input);
throw nvae;
}
switch (alt163) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:4: ML_plus
{
root_0 = (CommonTree)adaptor.nil();
ML_plus344=(Token)match(input,ML_plus,FOLLOW_ML_plus_in_left_modify4105); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_plus344_tree = (CommonTree)adaptor.create(ML_plus344);
adaptor.addChild(root_0, ML_plus344_tree);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:14: ML_plusplus
{
root_0 = (CommonTree)adaptor.nil();
ML_plusplus345=(Token)match(input,ML_plusplus,FOLLOW_ML_plusplus_in_left_modify4109); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_plusplus345_tree = (CommonTree)adaptor.create(ML_plusplus345);
adaptor.addChild(root_0, ML_plusplus345_tree);
}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:28: ML_minus
{
root_0 = (CommonTree)adaptor.nil();
ML_minus346=(Token)match(input,ML_minus,FOLLOW_ML_minus_in_left_modify4113); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_minus346_tree = (CommonTree)adaptor.create(ML_minus346);
adaptor.addChild(root_0, ML_minus346_tree);
}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:39: ML_minusminus
{
root_0 = (CommonTree)adaptor.nil();
ML_minusminus347=(Token)match(input,ML_minusminus,FOLLOW_ML_minusminus_in_left_modify4117); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_minusminus347_tree = (CommonTree)adaptor.create(ML_minusminus347);
adaptor.addChild(root_0, ML_minusminus347_tree);
}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:55: ML_times
{
root_0 = (CommonTree)adaptor.nil();
ML_times348=(Token)match(input,ML_times,FOLLOW_ML_times_in_left_modify4121); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_times348_tree = (CommonTree)adaptor.create(ML_times348);
adaptor.addChild(root_0, ML_times348_tree);
}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:66: ML_timestimes
{
root_0 = (CommonTree)adaptor.nil();
ML_timestimes349=(Token)match(input,ML_timestimes,FOLLOW_ML_timestimes_in_left_modify4125); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_timestimes349_tree = (CommonTree)adaptor.create(ML_timestimes349);
adaptor.addChild(root_0, ML_timestimes349_tree);
}
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:82: ML_slash
{
root_0 = (CommonTree)adaptor.nil();
ML_slash350=(Token)match(input,ML_slash,FOLLOW_ML_slash_in_left_modify4129); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_slash350_tree = (CommonTree)adaptor.create(ML_slash350);
adaptor.addChild(root_0, ML_slash350_tree);
}
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:93: ML_slashslash
{
root_0 = (CommonTree)adaptor.nil();
ML_slashslash351=(Token)match(input,ML_slashslash,FOLLOW_ML_slashslash_in_left_modify4133); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_slashslash351_tree = (CommonTree)adaptor.create(ML_slashslash351);
adaptor.addChild(root_0, ML_slashslash351_tree);
}
}
break;
case 9 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:109: ML_pow
{
root_0 = (CommonTree)adaptor.nil();
ML_pow352=(Token)match(input,ML_pow,FOLLOW_ML_pow_in_left_modify4137); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ML_pow352_tree = (CommonTree)adaptor.create(ML_pow352);
adaptor.addChild(root_0, ML_pow352_tree);
}
}
break;
case 10 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:625:118: left_modify_op '='
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_left_modify_op_in_left_modify4141);
left_modify_op353=left_modify_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(left_modify_op353.getTree(), root_0);
char_literal354=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_left_modify4144); if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "left_modify"
public static class right_modify_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "right_modify"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:627:1: right_modify : ( MR_plus | MR_plusplus | MR_minus | MR_minusminus | MR_times | MR_timestimes | MR_slash | MR_slashslash | MR_pow | '=' right_modify_op );
public final babel17Parser.right_modify_return right_modify() throws RecognitionException {
babel17Parser.right_modify_return retval = new babel17Parser.right_modify_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token MR_plus355=null;
Token MR_plusplus356=null;
Token MR_minus357=null;
Token MR_minusminus358=null;
Token MR_times359=null;
Token MR_timestimes360=null;
Token MR_slash361=null;
Token MR_slashslash362=null;
Token MR_pow363=null;
Token char_literal364=null;
babel17Parser.right_modify_op_return right_modify_op365 = null;
CommonTree MR_plus355_tree=null;
CommonTree MR_plusplus356_tree=null;
CommonTree MR_minus357_tree=null;
CommonTree MR_minusminus358_tree=null;
CommonTree MR_times359_tree=null;
CommonTree MR_timestimes360_tree=null;
CommonTree MR_slash361_tree=null;
CommonTree MR_slashslash362_tree=null;
CommonTree MR_pow363_tree=null;
CommonTree char_literal364_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:2: ( MR_plus | MR_plusplus | MR_minus | MR_minusminus | MR_times | MR_timestimes | MR_slash | MR_slashslash | MR_pow | '=' right_modify_op )
int alt164=10;
switch ( input.LA(1) ) {
case MR_plus:
{
alt164=1;
}
break;
case MR_plusplus:
{
alt164=2;
}
break;
case MR_minus:
{
alt164=3;
}
break;
case MR_minusminus:
{
alt164=4;
}
break;
case MR_times:
{
alt164=5;
}
break;
case MR_timestimes:
{
alt164=6;
}
break;
case MR_slash:
{
alt164=7;
}
break;
case MR_slashslash:
{
alt164=8;
}
break;
case MR_pow:
{
alt164=9;
}
break;
case ASSIGN:
{
alt164=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 164, 0, input);
throw nvae;
}
switch (alt164) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:4: MR_plus
{
root_0 = (CommonTree)adaptor.nil();
MR_plus355=(Token)match(input,MR_plus,FOLLOW_MR_plus_in_right_modify4154); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_plus355_tree = (CommonTree)adaptor.create(MR_plus355);
adaptor.addChild(root_0, MR_plus355_tree);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:14: MR_plusplus
{
root_0 = (CommonTree)adaptor.nil();
MR_plusplus356=(Token)match(input,MR_plusplus,FOLLOW_MR_plusplus_in_right_modify4158); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_plusplus356_tree = (CommonTree)adaptor.create(MR_plusplus356);
adaptor.addChild(root_0, MR_plusplus356_tree);
}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:28: MR_minus
{
root_0 = (CommonTree)adaptor.nil();
MR_minus357=(Token)match(input,MR_minus,FOLLOW_MR_minus_in_right_modify4162); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_minus357_tree = (CommonTree)adaptor.create(MR_minus357);
adaptor.addChild(root_0, MR_minus357_tree);
}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:39: MR_minusminus
{
root_0 = (CommonTree)adaptor.nil();
MR_minusminus358=(Token)match(input,MR_minusminus,FOLLOW_MR_minusminus_in_right_modify4166); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_minusminus358_tree = (CommonTree)adaptor.create(MR_minusminus358);
adaptor.addChild(root_0, MR_minusminus358_tree);
}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:55: MR_times
{
root_0 = (CommonTree)adaptor.nil();
MR_times359=(Token)match(input,MR_times,FOLLOW_MR_times_in_right_modify4170); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_times359_tree = (CommonTree)adaptor.create(MR_times359);
adaptor.addChild(root_0, MR_times359_tree);
}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:66: MR_timestimes
{
root_0 = (CommonTree)adaptor.nil();
MR_timestimes360=(Token)match(input,MR_timestimes,FOLLOW_MR_timestimes_in_right_modify4174); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_timestimes360_tree = (CommonTree)adaptor.create(MR_timestimes360);
adaptor.addChild(root_0, MR_timestimes360_tree);
}
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:82: MR_slash
{
root_0 = (CommonTree)adaptor.nil();
MR_slash361=(Token)match(input,MR_slash,FOLLOW_MR_slash_in_right_modify4178); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_slash361_tree = (CommonTree)adaptor.create(MR_slash361);
adaptor.addChild(root_0, MR_slash361_tree);
}
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:93: MR_slashslash
{
root_0 = (CommonTree)adaptor.nil();
MR_slashslash362=(Token)match(input,MR_slashslash,FOLLOW_MR_slashslash_in_right_modify4182); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_slashslash362_tree = (CommonTree)adaptor.create(MR_slashslash362);
adaptor.addChild(root_0, MR_slashslash362_tree);
}
}
break;
case 9 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:109: MR_pow
{
root_0 = (CommonTree)adaptor.nil();
MR_pow363=(Token)match(input,MR_pow,FOLLOW_MR_pow_in_right_modify4186); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MR_pow363_tree = (CommonTree)adaptor.create(MR_pow363);
adaptor.addChild(root_0, MR_pow363_tree);
}
}
break;
case 10 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:628:118: '=' right_modify_op
{
root_0 = (CommonTree)adaptor.nil();
char_literal364=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_right_modify4190); if (state.failed) return retval;
pushFollow(FOLLOW_right_modify_op_in_right_modify4193);
right_modify_op365=right_modify_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(right_modify_op365.getTree(), root_0);
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "right_modify"
public static class right_modify_op_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "right_modify_op"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:630:1: right_modify_op : ( token_AND | token_OR | token_XOR | L_div | L_mod );
public final babel17Parser.right_modify_op_return right_modify_op() throws RecognitionException {
babel17Parser.right_modify_op_return retval = new babel17Parser.right_modify_op_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_div369=null;
Token L_mod370=null;
babel17Parser.token_AND_return token_AND366 = null;
babel17Parser.token_OR_return token_OR367 = null;
babel17Parser.token_XOR_return token_XOR368 = null;
CommonTree L_div369_tree=null;
CommonTree L_mod370_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:631:2: ( token_AND | token_OR | token_XOR | L_div | L_mod )
int alt165=5;
switch ( input.LA(1) ) {
case L_and:
{
alt165=1;
}
break;
case L_or:
{
alt165=2;
}
break;
case L_xor:
{
alt165=3;
}
break;
case L_div:
{
alt165=4;
}
break;
case L_mod:
{
alt165=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 165, 0, input);
throw nvae;
}
switch (alt165) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:631:4: token_AND
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_AND_in_right_modify_op4203);
token_AND366=token_AND();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_AND366.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:631:16: token_OR
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_OR_in_right_modify_op4207);
token_OR367=token_OR();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_OR367.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:631:27: token_XOR
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_XOR_in_right_modify_op4211);
token_XOR368=token_XOR();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_XOR368.getTree());
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:631:39: L_div
{
root_0 = (CommonTree)adaptor.nil();
L_div369=(Token)match(input,L_div,FOLLOW_L_div_in_right_modify_op4215); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_div369_tree = (CommonTree)adaptor.create(L_div369);
adaptor.addChild(root_0, L_div369_tree);
}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:631:47: L_mod
{
root_0 = (CommonTree)adaptor.nil();
L_mod370=(Token)match(input,L_mod,FOLLOW_L_mod_in_right_modify_op4219); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_mod370_tree = (CommonTree)adaptor.create(L_mod370);
adaptor.addChild(root_0, L_mod370_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "right_modify_op"
public static class left_modify_op_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "left_modify_op"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:633:1: left_modify_op : ( right_modify_op | L_min | L_max );
public final babel17Parser.left_modify_op_return left_modify_op() throws RecognitionException {
babel17Parser.left_modify_op_return retval = new babel17Parser.left_modify_op_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_min372=null;
Token L_max373=null;
babel17Parser.right_modify_op_return right_modify_op371 = null;
CommonTree L_min372_tree=null;
CommonTree L_max373_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:634:2: ( right_modify_op | L_min | L_max )
int alt166=3;
switch ( input.LA(1) ) {
case L_div:
case L_mod:
case L_and:
case L_or:
case L_xor:
{
alt166=1;
}
break;
case L_min:
{
alt166=2;
}
break;
case L_max:
{
alt166=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 166, 0, input);
throw nvae;
}
switch (alt166) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:634:4: right_modify_op
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_right_modify_op_in_left_modify_op4228);
right_modify_op371=right_modify_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, right_modify_op371.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:634:22: L_min
{
root_0 = (CommonTree)adaptor.nil();
L_min372=(Token)match(input,L_min,FOLLOW_L_min_in_left_modify_op4232); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_min372_tree = (CommonTree)adaptor.create(L_min372);
adaptor.addChild(root_0, L_min372_tree);
}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:634:30: L_max
{
root_0 = (CommonTree)adaptor.nil();
L_max373=(Token)match(input,L_max,FOLLOW_L_max_in_left_modify_op4236); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_max373_tree = (CommonTree)adaptor.create(L_max373);
adaptor.addChild(root_0, L_max373_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "left_modify_op"
public static class expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:636:1: expr : lop_expr ;
public final babel17Parser.expr_return expr() throws RecognitionException {
babel17Parser.expr_return retval = new babel17Parser.expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.lop_expr_return lop_expr374 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:637:2: ( lop_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:637:4: lop_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_lop_expr_in_expr4248);
lop_expr374=lop_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lop_expr374.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "expr"
public static class control_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "control_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:640:1: control_expr : ( if_expr | while_do_expr | match_expr | for_expr | try_expr | begin_end );
public final babel17Parser.control_expr_return control_expr() throws RecognitionException {
babel17Parser.control_expr_return retval = new babel17Parser.control_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.if_expr_return if_expr375 = null;
babel17Parser.while_do_expr_return while_do_expr376 = null;
babel17Parser.match_expr_return match_expr377 = null;
babel17Parser.for_expr_return for_expr378 = null;
babel17Parser.try_expr_return try_expr379 = null;
babel17Parser.begin_end_return begin_end380 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:641:2: ( if_expr | while_do_expr | match_expr | for_expr | try_expr | begin_end )
int alt167=6;
switch ( input.LA(1) ) {
case L_if:
{
alt167=1;
}
break;
case L_while:
{
alt167=2;
}
break;
case L_match:
{
alt167=3;
}
break;
case L_for:
{
alt167=4;
}
break;
case L_try:
{
alt167=5;
}
break;
case L_begin:
{
alt167=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 167, 0, input);
throw nvae;
}
switch (alt167) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:641:4: if_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_if_expr_in_control_expr4260);
if_expr375=if_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, if_expr375.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:642:4: while_do_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_while_do_expr_in_control_expr4265);
while_do_expr376=while_do_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, while_do_expr376.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:643:4: match_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_match_expr_in_control_expr4270);
match_expr377=match_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, match_expr377.getTree());
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:644:4: for_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_for_expr_in_control_expr4275);
for_expr378=for_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, for_expr378.getTree());
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:645:5: try_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_try_expr_in_control_expr4281);
try_expr379=try_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, try_expr379.getTree());
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:646:4: begin_end
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_begin_end_in_control_expr4286);
begin_end380=begin_end();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, begin_end380.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "control_expr"
public static class with_control_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "with_control_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:648:1: with_control_expr : ( control_expr | L_with ( NL )? protected_expr ( NL )? L_do block L_end -> ^( WITH protected_expr ^( BEGIN block ) ) );
public final babel17Parser.with_control_expr_return with_control_expr() throws RecognitionException {
babel17Parser.with_control_expr_return retval = new babel17Parser.with_control_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_with382=null;
Token NL383=null;
Token NL385=null;
Token L_do386=null;
Token L_end388=null;
babel17Parser.control_expr_return control_expr381 = null;
babel17Parser.protected_expr_return protected_expr384 = null;
babel17Parser.block_return block387 = null;
CommonTree L_with382_tree=null;
CommonTree NL383_tree=null;
CommonTree NL385_tree=null;
CommonTree L_do386_tree=null;
CommonTree L_end388_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_do=new RewriteRuleTokenStream(adaptor,"token L_do");
RewriteRuleTokenStream stream_L_with=new RewriteRuleTokenStream(adaptor,"token L_with");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:649:2: ( control_expr | L_with ( NL )? protected_expr ( NL )? L_do block L_end -> ^( WITH protected_expr ^( BEGIN block ) ) )
int alt170=2;
int LA170_0 = input.LA(1);
if ( (LA170_0==L_begin||LA170_0==L_if||(LA170_0>=L_while && LA170_0<=L_for)||LA170_0==L_match||LA170_0==L_try) ) {
alt170=1;
}
else if ( (LA170_0==L_with) ) {
alt170=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 170, 0, input);
throw nvae;
}
switch (alt170) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:649:4: control_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_control_expr_in_with_control_expr4296);
control_expr381=control_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, control_expr381.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:4: L_with ( NL )? protected_expr ( NL )? L_do block L_end
{
L_with382=(Token)match(input,L_with,FOLLOW_L_with_in_with_control_expr4301); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_with.add(L_with382);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:11: ( NL )?
int alt168=2;
int LA168_0 = input.LA(1);
if ( (LA168_0==NL) ) {
alt168=1;
}
switch (alt168) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:11: NL
{
NL383=(Token)match(input,NL,FOLLOW_NL_in_with_control_expr4303); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL383);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_with_control_expr4306);
protected_expr384=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr384.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:30: ( NL )?
int alt169=2;
int LA169_0 = input.LA(1);
if ( (LA169_0==NL) ) {
alt169=1;
}
switch (alt169) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:30: NL
{
NL385=(Token)match(input,NL,FOLLOW_NL_in_with_control_expr4308); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL385);
}
break;
}
L_do386=(Token)match(input,L_do,FOLLOW_L_do_in_with_control_expr4311); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_do.add(L_do386);
pushFollow(FOLLOW_block_in_with_control_expr4313);
block387=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block387.getTree());
L_end388=(Token)match(input,L_end,FOLLOW_L_end_in_with_control_expr4315); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end388);
// AST REWRITE
// elements: block, protected_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 650:51: -> ^( WITH protected_expr ^( BEGIN block ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:54: ^( WITH protected_expr ^( BEGIN block ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(WITH, "WITH"), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:650:76: ^( BEGIN block )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(BEGIN, "BEGIN"), root_2);
adaptor.addChild(root_2, stream_block.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "with_control_expr"
public static class protected_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "protected_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:653:1: protected_expr : p_lop_expr ;
public final babel17Parser.protected_expr_return protected_expr() throws RecognitionException {
babel17Parser.protected_expr_return retval = new babel17Parser.protected_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.p_lop_expr_return p_lop_expr389 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:654:2: ( p_lop_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:654:4: p_lop_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_lop_expr_in_protected_expr4340);
p_lop_expr389=p_lop_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_lop_expr389.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "protected_expr"
public static class protected_expr_nc_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "protected_expr_nc"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:657:1: protected_expr_nc : protected_expr ;
public final babel17Parser.protected_expr_nc_return protected_expr_nc() throws RecognitionException {
babel17Parser.protected_expr_nc_return retval = new babel17Parser.protected_expr_nc_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.protected_expr_return protected_expr390 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:658:2: ( protected_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:658:4: protected_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_protected_expr_in_protected_expr_nc4353);
protected_expr390=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, protected_expr390.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "protected_expr_nc"
public static class begin_end_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "begin_end"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:660:1: begin_end : L_begin block L_end -> ^( BEGIN block ) ;
public final babel17Parser.begin_end_return begin_end() throws RecognitionException {
babel17Parser.begin_end_return retval = new babel17Parser.begin_end_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_begin391=null;
Token L_end393=null;
babel17Parser.block_return block392 = null;
CommonTree L_begin391_tree=null;
CommonTree L_end393_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_L_begin=new RewriteRuleTokenStream(adaptor,"token L_begin");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:661:2: ( L_begin block L_end -> ^( BEGIN block ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:661:4: L_begin block L_end
{
L_begin391=(Token)match(input,L_begin,FOLLOW_L_begin_in_begin_end4363); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_begin.add(L_begin391);
pushFollow(FOLLOW_block_in_begin_end4365);
block392=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block392.getTree());
L_end393=(Token)match(input,L_end,FOLLOW_L_end_in_begin_end4367); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end393);
// AST REWRITE
// elements: block
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 661:24: -> ^( BEGIN block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:661:27: ^( BEGIN block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(BEGIN, "BEGIN"), root_1);
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "begin_end"
public static class parents_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "parents"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:664:1: parents : ( '+' primitive_expr -> ^( PARENTS_PLUS primitive_expr ) | '*' primitive_expr -> ^( PARENTS_MUL primitive_expr ) );
public final babel17Parser.parents_return parents() throws RecognitionException {
babel17Parser.parents_return retval = new babel17Parser.parents_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal394=null;
Token char_literal396=null;
babel17Parser.primitive_expr_return primitive_expr395 = null;
babel17Parser.primitive_expr_return primitive_expr397 = null;
CommonTree char_literal394_tree=null;
CommonTree char_literal396_tree=null;
RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
RewriteRuleTokenStream stream_TIMES=new RewriteRuleTokenStream(adaptor,"token TIMES");
RewriteRuleSubtreeStream stream_primitive_expr=new RewriteRuleSubtreeStream(adaptor,"rule primitive_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:664:9: ( '+' primitive_expr -> ^( PARENTS_PLUS primitive_expr ) | '*' primitive_expr -> ^( PARENTS_MUL primitive_expr ) )
int alt171=2;
int LA171_0 = input.LA(1);
if ( (LA171_0==PLUS) ) {
alt171=1;
}
else if ( (LA171_0==TIMES) ) {
alt171=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 171, 0, input);
throw nvae;
}
switch (alt171) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:664:11: '+' primitive_expr
{
char_literal394=(Token)match(input,PLUS,FOLLOW_PLUS_in_parents4385); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(char_literal394);
pushFollow(FOLLOW_primitive_expr_in_parents4387);
primitive_expr395=primitive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_expr.add(primitive_expr395.getTree());
// AST REWRITE
// elements: primitive_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 664:30: -> ^( PARENTS_PLUS primitive_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:664:33: ^( PARENTS_PLUS primitive_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARENTS_PLUS, "PARENTS_PLUS"), root_1);
adaptor.addChild(root_1, stream_primitive_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:665:4: '*' primitive_expr
{
char_literal396=(Token)match(input,TIMES,FOLLOW_TIMES_in_parents4400); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TIMES.add(char_literal396);
pushFollow(FOLLOW_primitive_expr_in_parents4402);
primitive_expr397=primitive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_expr.add(primitive_expr397.getTree());
// AST REWRITE
// elements: primitive_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 665:23: -> ^( PARENTS_MUL primitive_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:665:26: ^( PARENTS_MUL primitive_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARENTS_MUL, "PARENTS_MUL"), root_1);
adaptor.addChild(root_1, stream_primitive_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "parents"
public static class obj_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "obj_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:1: obj_expr : ( ( L_obj ( NL )? parents )=> L_obj ( NL )? parents block L_end -> ^( OBJ block parents ) | L_obj block L_end -> ^( OBJ block ) );
public final babel17Parser.obj_expr_return obj_expr() throws RecognitionException {
babel17Parser.obj_expr_return retval = new babel17Parser.obj_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_obj398=null;
Token NL399=null;
Token L_end402=null;
Token L_obj403=null;
Token L_end405=null;
babel17Parser.parents_return parents400 = null;
babel17Parser.block_return block401 = null;
babel17Parser.block_return block404 = null;
CommonTree L_obj398_tree=null;
CommonTree NL399_tree=null;
CommonTree L_end402_tree=null;
CommonTree L_obj403_tree=null;
CommonTree L_end405_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_obj=new RewriteRuleTokenStream(adaptor,"token L_obj");
RewriteRuleSubtreeStream stream_parents=new RewriteRuleSubtreeStream(adaptor,"rule parents");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:9: ( ( L_obj ( NL )? parents )=> L_obj ( NL )? parents block L_end -> ^( OBJ block parents ) | L_obj block L_end -> ^( OBJ block ) )
int alt173=2;
int LA173_0 = input.LA(1);
if ( (LA173_0==L_obj) ) {
int LA173_1 = input.LA(2);
if ( (LA173_1==NL) ) {
int LA173_2 = input.LA(3);
if ( ((LA173_2>=L_begin && LA173_2<=L_if)||(LA173_2>=L_while && LA173_2<=L_for)||(LA173_2>=L_yield && LA173_2<=L_match)||(LA173_2>=L_val && LA173_2<=L_def)||LA173_2==L_exception||LA173_2==L_try||(LA173_2>=L_concurrent && LA173_2<=L_nil)||(LA173_2>=L_module && LA173_2<=L_import)||LA173_2==L_not||(LA173_2>=L_root && LA173_2<=L_lens)||LA173_2==SC||LA173_2==MINUS||(LA173_2>=A_ELLIPSIS && LA173_2<=U_ELLIPSIS)||LA173_2==L_force||(LA173_2>=NL && LA173_2<=Id)||(LA173_2>=Float && LA173_2<=Num)||(LA173_2>=String && LA173_2<=ROUND_BRACKET_OPEN)||LA173_2==SQUARE_BRACKET_OPEN||LA173_2==CURLY_BRACKET_OPEN||LA173_2==UNDERSCORE||(LA173_2>=PRAGMA_LOG && LA173_2<=PRAGMA_CATCH)) ) {
alt173=2;
}
else if ( (LA173_2==PLUS) && (synpred16_babel17())) {
alt173=1;
}
else if ( (LA173_2==TIMES) && (synpred16_babel17())) {
alt173=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 173, 2, input);
throw nvae;
}
}
else if ( ((LA173_1>=L_begin && LA173_1<=L_if)||(LA173_1>=L_while && LA173_1<=L_for)||(LA173_1>=L_yield && LA173_1<=L_match)||(LA173_1>=L_val && LA173_1<=L_def)||LA173_1==L_exception||LA173_1==L_try||(LA173_1>=L_concurrent && LA173_1<=L_nil)||(LA173_1>=L_module && LA173_1<=L_import)||LA173_1==L_not||(LA173_1>=L_root && LA173_1<=L_lens)||LA173_1==SC||LA173_1==MINUS||(LA173_1>=A_ELLIPSIS && LA173_1<=U_ELLIPSIS)||LA173_1==L_force||(LA173_1>=Constr && LA173_1<=Id)||(LA173_1>=Float && LA173_1<=Num)||(LA173_1>=String && LA173_1<=ROUND_BRACKET_OPEN)||LA173_1==SQUARE_BRACKET_OPEN||LA173_1==CURLY_BRACKET_OPEN||LA173_1==UNDERSCORE||(LA173_1>=PRAGMA_LOG && LA173_1<=PRAGMA_CATCH)) ) {
alt173=2;
}
else if ( (LA173_1==PLUS) && (synpred16_babel17())) {
alt173=1;
}
else if ( (LA173_1==TIMES) && (synpred16_babel17())) {
alt173=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 173, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 173, 0, input);
throw nvae;
}
switch (alt173) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:11: ( L_obj ( NL )? parents )=> L_obj ( NL )? parents block L_end
{
L_obj398=(Token)match(input,L_obj,FOLLOW_L_obj_in_obj_expr4430); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_obj.add(L_obj398);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:40: ( NL )?
int alt172=2;
int LA172_0 = input.LA(1);
if ( (LA172_0==NL) ) {
alt172=1;
}
switch (alt172) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:40: NL
{
NL399=(Token)match(input,NL,FOLLOW_NL_in_obj_expr4432); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL399);
}
break;
}
pushFollow(FOLLOW_parents_in_obj_expr4435);
parents400=parents();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parents.add(parents400.getTree());
pushFollow(FOLLOW_block_in_obj_expr4437);
block401=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block401.getTree());
L_end402=(Token)match(input,L_end,FOLLOW_L_end_in_obj_expr4439); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end402);
// AST REWRITE
// elements: block, parents
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 668:64: -> ^( OBJ block parents )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:67: ^( OBJ block parents )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(OBJ, "OBJ"), root_1);
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_1, stream_parents.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:669:17: L_obj block L_end
{
L_obj403=(Token)match(input,L_obj,FOLLOW_L_obj_in_obj_expr4467); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_obj.add(L_obj403);
pushFollow(FOLLOW_block_in_obj_expr4469);
block404=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block404.getTree());
L_end405=(Token)match(input,L_end,FOLLOW_L_end_in_obj_expr4471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end405);
// AST REWRITE
// elements: block
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 669:35: -> ^( OBJ block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:669:38: ^( OBJ block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(OBJ, "OBJ"), root_1);
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "obj_expr"
public static class lop_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lop_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:671:1: lop_expr : ( ( lambda_expr_nobrackets )=> lambda_expr_nobrackets | op_expr );
public final babel17Parser.lop_expr_return lop_expr() throws RecognitionException {
babel17Parser.lop_expr_return retval = new babel17Parser.lop_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.lambda_expr_nobrackets_return lambda_expr_nobrackets406 = null;
babel17Parser.op_expr_return op_expr407 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:673:2: ( ( lambda_expr_nobrackets )=> lambda_expr_nobrackets | op_expr )
int alt174=2;
alt174 = dfa174.predict(input);
switch (alt174) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:673:4: ( lambda_expr_nobrackets )=> lambda_expr_nobrackets
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_lambda_expr_nobrackets_in_lop_expr4501);
lambda_expr_nobrackets406=lambda_expr_nobrackets();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lambda_expr_nobrackets406.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:674:4: op_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_op_expr_in_lop_expr4506);
op_expr407=op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, op_expr407.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lop_expr"
public static class p_lop_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_lop_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:676:1: p_lop_expr : ( ( lambda_expr_nobrackets )=> lambda_expr_nobrackets | p_op_expr );
public final babel17Parser.p_lop_expr_return p_lop_expr() throws RecognitionException {
babel17Parser.p_lop_expr_return retval = new babel17Parser.p_lop_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.lambda_expr_nobrackets_return lambda_expr_nobrackets408 = null;
babel17Parser.p_op_expr_return p_op_expr409 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:678:2: ( ( lambda_expr_nobrackets )=> lambda_expr_nobrackets | p_op_expr )
int alt175=2;
alt175 = dfa175.predict(input);
switch (alt175) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:678:4: ( lambda_expr_nobrackets )=> lambda_expr_nobrackets
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_lambda_expr_nobrackets_in_p_lop_expr4524);
lambda_expr_nobrackets408=lambda_expr_nobrackets();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lambda_expr_nobrackets408.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:679:4: p_op_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_op_expr_in_p_lop_expr4529);
p_op_expr409=p_op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_op_expr409.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_lop_expr"
public static class if_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "if_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:1: if_expr : L_if ( NL )? protected_expr ( NL )? L_then block ( L_elseif ( NL )? protected_expr ( NL )? L_then block )* ( L_else block )? L_end -> ^( IF ( protected_expr )* ( block )* ) ;
public final babel17Parser.if_expr_return if_expr() throws RecognitionException {
babel17Parser.if_expr_return retval = new babel17Parser.if_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_if410=null;
Token NL411=null;
Token NL413=null;
Token L_then414=null;
Token L_elseif416=null;
Token NL417=null;
Token NL419=null;
Token L_then420=null;
Token L_else422=null;
Token L_end424=null;
babel17Parser.protected_expr_return protected_expr412 = null;
babel17Parser.block_return block415 = null;
babel17Parser.protected_expr_return protected_expr418 = null;
babel17Parser.block_return block421 = null;
babel17Parser.block_return block423 = null;
CommonTree L_if410_tree=null;
CommonTree NL411_tree=null;
CommonTree NL413_tree=null;
CommonTree L_then414_tree=null;
CommonTree L_elseif416_tree=null;
CommonTree NL417_tree=null;
CommonTree NL419_tree=null;
CommonTree L_then420_tree=null;
CommonTree L_else422_tree=null;
CommonTree L_end424_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_L_else=new RewriteRuleTokenStream(adaptor,"token L_else");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_elseif=new RewriteRuleTokenStream(adaptor,"token L_elseif");
RewriteRuleTokenStream stream_L_then=new RewriteRuleTokenStream(adaptor,"token L_then");
RewriteRuleTokenStream stream_L_if=new RewriteRuleTokenStream(adaptor,"token L_if");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:9: ( L_if ( NL )? protected_expr ( NL )? L_then block ( L_elseif ( NL )? protected_expr ( NL )? L_then block )* ( L_else block )? L_end -> ^( IF ( protected_expr )* ( block )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:11: L_if ( NL )? protected_expr ( NL )? L_then block ( L_elseif ( NL )? protected_expr ( NL )? L_then block )* ( L_else block )? L_end
{
L_if410=(Token)match(input,L_if,FOLLOW_L_if_in_if_expr4539); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_if.add(L_if410);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:16: ( NL )?
int alt176=2;
int LA176_0 = input.LA(1);
if ( (LA176_0==NL) ) {
alt176=1;
}
switch (alt176) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:16: NL
{
NL411=(Token)match(input,NL,FOLLOW_NL_in_if_expr4541); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL411);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_if_expr4544);
protected_expr412=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr412.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:35: ( NL )?
int alt177=2;
int LA177_0 = input.LA(1);
if ( (LA177_0==NL) ) {
alt177=1;
}
switch (alt177) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:681:35: NL
{
NL413=(Token)match(input,NL,FOLLOW_NL_in_if_expr4546); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL413);
}
break;
}
L_then414=(Token)match(input,L_then,FOLLOW_L_then_in_if_expr4549); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_then.add(L_then414);
pushFollow(FOLLOW_block_in_if_expr4551);
block415=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block415.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:682:3: ( L_elseif ( NL )? protected_expr ( NL )? L_then block )*
loop180:
do {
int alt180=2;
int LA180_0 = input.LA(1);
if ( (LA180_0==L_elseif) ) {
alt180=1;
}
switch (alt180) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:682:4: L_elseif ( NL )? protected_expr ( NL )? L_then block
{
L_elseif416=(Token)match(input,L_elseif,FOLLOW_L_elseif_in_if_expr4557); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_elseif.add(L_elseif416);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:682:13: ( NL )?
int alt178=2;
int LA178_0 = input.LA(1);
if ( (LA178_0==NL) ) {
alt178=1;
}
switch (alt178) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:682:13: NL
{
NL417=(Token)match(input,NL,FOLLOW_NL_in_if_expr4559); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL417);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_if_expr4562);
protected_expr418=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr418.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:682:32: ( NL )?
int alt179=2;
int LA179_0 = input.LA(1);
if ( (LA179_0==NL) ) {
alt179=1;
}
switch (alt179) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:682:32: NL
{
NL419=(Token)match(input,NL,FOLLOW_NL_in_if_expr4564); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL419);
}
break;
}
L_then420=(Token)match(input,L_then,FOLLOW_L_then_in_if_expr4567); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_then.add(L_then420);
pushFollow(FOLLOW_block_in_if_expr4569);
block421=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block421.getTree());
}
break;
default :
break loop180;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:683:3: ( L_else block )?
int alt181=2;
int LA181_0 = input.LA(1);
if ( (LA181_0==L_else) ) {
alt181=1;
}
switch (alt181) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:683:4: L_else block
{
L_else422=(Token)match(input,L_else,FOLLOW_L_else_in_if_expr4577); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_else.add(L_else422);
pushFollow(FOLLOW_block_in_if_expr4579);
block423=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block423.getTree());
}
break;
}
L_end424=(Token)match(input,L_end,FOLLOW_L_end_in_if_expr4583); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end424);
// AST REWRITE
// elements: protected_expr, block
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 683:26: -> ^( IF ( protected_expr )* ( block )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:683:29: ^( IF ( protected_expr )* ( block )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(IF, "IF"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:683:34: ( protected_expr )*
while ( stream_protected_expr.hasNext() ) {
adaptor.addChild(root_1, stream_protected_expr.nextTree());
}
stream_protected_expr.reset();
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:683:50: ( block )*
while ( stream_block.hasNext() ) {
adaptor.addChild(root_1, stream_block.nextTree());
}
stream_block.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "if_expr"
public static class while_do_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "while_do_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:685:1: while_do_expr : L_while ( NL )? protected_expr ( NL )? L_do block L_end -> ^( WHILE_DO protected_expr block ) ;
public final babel17Parser.while_do_expr_return while_do_expr() throws RecognitionException {
babel17Parser.while_do_expr_return retval = new babel17Parser.while_do_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_while425=null;
Token NL426=null;
Token NL428=null;
Token L_do429=null;
Token L_end431=null;
babel17Parser.protected_expr_return protected_expr427 = null;
babel17Parser.block_return block430 = null;
CommonTree L_while425_tree=null;
CommonTree NL426_tree=null;
CommonTree NL428_tree=null;
CommonTree L_do429_tree=null;
CommonTree L_end431_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_do=new RewriteRuleTokenStream(adaptor,"token L_do");
RewriteRuleTokenStream stream_L_while=new RewriteRuleTokenStream(adaptor,"token L_while");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:686:2: ( L_while ( NL )? protected_expr ( NL )? L_do block L_end -> ^( WHILE_DO protected_expr block ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:686:4: L_while ( NL )? protected_expr ( NL )? L_do block L_end
{
L_while425=(Token)match(input,L_while,FOLLOW_L_while_in_while_do_expr4607); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_while.add(L_while425);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:686:12: ( NL )?
int alt182=2;
int LA182_0 = input.LA(1);
if ( (LA182_0==NL) ) {
alt182=1;
}
switch (alt182) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:686:12: NL
{
NL426=(Token)match(input,NL,FOLLOW_NL_in_while_do_expr4609); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL426);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_while_do_expr4612);
protected_expr427=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr427.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:686:31: ( NL )?
int alt183=2;
int LA183_0 = input.LA(1);
if ( (LA183_0==NL) ) {
alt183=1;
}
switch (alt183) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:686:31: NL
{
NL428=(Token)match(input,NL,FOLLOW_NL_in_while_do_expr4614); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL428);
}
break;
}
L_do429=(Token)match(input,L_do,FOLLOW_L_do_in_while_do_expr4617); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_do.add(L_do429);
pushFollow(FOLLOW_block_in_while_do_expr4619);
block430=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block430.getTree());
L_end431=(Token)match(input,L_end,FOLLOW_L_end_in_while_do_expr4621); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end431);
// AST REWRITE
// elements: block, protected_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 687:5: -> ^( WHILE_DO protected_expr block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:687:8: ^( WHILE_DO protected_expr block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(WHILE_DO, "WHILE_DO"), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "while_do_expr"
public static class cases_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "cases"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:689:1: cases : ( full_cases | pattern ( NL )? token_DOUBLE_ARROW block -> ^( CASES ^( NIL_TOKEN pattern block ) ) );
public final babel17Parser.cases_return cases() throws RecognitionException {
babel17Parser.cases_return retval = new babel17Parser.cases_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL434=null;
babel17Parser.full_cases_return full_cases432 = null;
babel17Parser.pattern_return pattern433 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW435 = null;
babel17Parser.block_return block436 = null;
CommonTree NL434_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:690:2: ( full_cases | pattern ( NL )? token_DOUBLE_ARROW block -> ^( CASES ^( NIL_TOKEN pattern block ) ) )
int alt185=2;
int LA185_0 = input.LA(1);
if ( (LA185_0==L_case) ) {
alt185=1;
}
else if ( (LA185_0==L_exception||(LA185_0>=L_true && LA185_0<=L_false)||LA185_0==L_nil||LA185_0==MINUS||(LA185_0>=A_ELLIPSIS && LA185_0<=U_ELLIPSIS)||(LA185_0>=Constr && LA185_0<=Id)||LA185_0==Num||(LA185_0>=String && LA185_0<=ROUND_BRACKET_OPEN)||LA185_0==SQUARE_BRACKET_OPEN||LA185_0==CURLY_BRACKET_OPEN||LA185_0==UNDERSCORE) ) {
alt185=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 185, 0, input);
throw nvae;
}
switch (alt185) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:690:4: full_cases
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_full_cases_in_cases4651);
full_cases432=full_cases();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, full_cases432.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:691:4: pattern ( NL )? token_DOUBLE_ARROW block
{
pushFollow(FOLLOW_pattern_in_cases4656);
pattern433=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern433.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:691:12: ( NL )?
int alt184=2;
int LA184_0 = input.LA(1);
if ( (LA184_0==NL) ) {
alt184=1;
}
switch (alt184) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:691:12: NL
{
NL434=(Token)match(input,NL,FOLLOW_NL_in_cases4658); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL434);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_cases4661);
token_DOUBLE_ARROW435=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW435.getTree());
pushFollow(FOLLOW_block_in_cases4663);
block436=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block436.getTree());
// AST REWRITE
// elements: block, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 691:41: -> ^( CASES ^( NIL_TOKEN pattern block ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:691:44: ^( CASES ^( NIL_TOKEN pattern block ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CASES, "CASES"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:691:52: ^( NIL_TOKEN pattern block )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
adaptor.addChild(root_2, stream_pattern.nextTree());
adaptor.addChild(root_2, stream_block.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "cases"
public static class full_cases_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "full_cases"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:693:1: full_cases : ( case_expr )+ -> ^( CASES ( case_expr )+ ) ;
public final babel17Parser.full_cases_return full_cases() throws RecognitionException {
babel17Parser.full_cases_return retval = new babel17Parser.full_cases_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.case_expr_return case_expr437 = null;
RewriteRuleSubtreeStream stream_case_expr=new RewriteRuleSubtreeStream(adaptor,"rule case_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:694:2: ( ( case_expr )+ -> ^( CASES ( case_expr )+ ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:694:4: ( case_expr )+
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:694:4: ( case_expr )+
int cnt186=0;
loop186:
do {
int alt186=2;
int LA186_0 = input.LA(1);
if ( (LA186_0==L_case) ) {
alt186=1;
}
switch (alt186) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:694:4: case_expr
{
pushFollow(FOLLOW_case_expr_in_full_cases4686);
case_expr437=case_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_case_expr.add(case_expr437.getTree());
}
break;
default :
if ( cnt186 >= 1 ) break loop186;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(186, input);
throw eee;
}
cnt186++;
} while (true);
// AST REWRITE
// elements: case_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 694:15: -> ^( CASES ( case_expr )+ )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:694:18: ^( CASES ( case_expr )+ )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CASES, "CASES"), root_1);
if ( !(stream_case_expr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_case_expr.hasNext() ) {
adaptor.addChild(root_1, stream_case_expr.nextTree());
}
stream_case_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "full_cases"
public static class case_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "case_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:696:1: case_expr : ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW block ) -> ^( NIL_TOKEN casepattern block ) ;
public final babel17Parser.case_expr_return case_expr() throws RecognitionException {
babel17Parser.case_expr_return retval = new babel17Parser.case_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_case438=null;
Token NL439=null;
Token NL441=null;
babel17Parser.casepattern_return casepattern440 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW442 = null;
babel17Parser.block_return block443 = null;
CommonTree L_case438_tree=null;
CommonTree NL439_tree=null;
CommonTree NL441_tree=null;
RewriteRuleTokenStream stream_L_case=new RewriteRuleTokenStream(adaptor,"token L_case");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_casepattern=new RewriteRuleSubtreeStream(adaptor,"rule casepattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:2: ( ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW block ) -> ^( NIL_TOKEN casepattern block ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:4: ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:4: ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW block )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:5: L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW block
{
L_case438=(Token)match(input,L_case,FOLLOW_L_case_in_case_expr4707); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_case.add(L_case438);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:12: ( NL )?
int alt187=2;
int LA187_0 = input.LA(1);
if ( (LA187_0==NL) ) {
alt187=1;
}
switch (alt187) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:12: NL
{
NL439=(Token)match(input,NL,FOLLOW_NL_in_case_expr4709); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL439);
}
break;
}
pushFollow(FOLLOW_casepattern_in_case_expr4712);
casepattern440=casepattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_casepattern.add(casepattern440.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:28: ( NL )?
int alt188=2;
int LA188_0 = input.LA(1);
if ( (LA188_0==NL) ) {
alt188=1;
}
switch (alt188) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:28: NL
{
NL441=(Token)match(input,NL,FOLLOW_NL_in_case_expr4714); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL441);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_case_expr4717);
token_DOUBLE_ARROW442=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW442.getTree());
pushFollow(FOLLOW_block_in_case_expr4719);
block443=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block443.getTree());
}
// AST REWRITE
// elements: block, casepattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 697:58: -> ^( NIL_TOKEN casepattern block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:697:61: ^( NIL_TOKEN casepattern block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_1);
adaptor.addChild(root_1, stream_casepattern.nextTree());
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "case_expr"
public static class match_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "match_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:699:1: match_expr : L_match ( NL )? p_op_expr ( NL )? full_cases L_end -> ^( MATCH p_op_expr full_cases ) ;
public final babel17Parser.match_expr_return match_expr() throws RecognitionException {
babel17Parser.match_expr_return retval = new babel17Parser.match_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_match444=null;
Token NL445=null;
Token NL447=null;
Token L_end449=null;
babel17Parser.p_op_expr_return p_op_expr446 = null;
babel17Parser.full_cases_return full_cases448 = null;
CommonTree L_match444_tree=null;
CommonTree NL445_tree=null;
CommonTree NL447_tree=null;
CommonTree L_end449_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_match=new RewriteRuleTokenStream(adaptor,"token L_match");
RewriteRuleSubtreeStream stream_full_cases=new RewriteRuleSubtreeStream(adaptor,"rule full_cases");
RewriteRuleSubtreeStream stream_p_op_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_op_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:700:2: ( L_match ( NL )? p_op_expr ( NL )? full_cases L_end -> ^( MATCH p_op_expr full_cases ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:700:4: L_match ( NL )? p_op_expr ( NL )? full_cases L_end
{
L_match444=(Token)match(input,L_match,FOLLOW_L_match_in_match_expr4740); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_match.add(L_match444);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:700:12: ( NL )?
int alt189=2;
int LA189_0 = input.LA(1);
if ( (LA189_0==NL) ) {
alt189=1;
}
switch (alt189) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:700:12: NL
{
NL445=(Token)match(input,NL,FOLLOW_NL_in_match_expr4742); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL445);
}
break;
}
pushFollow(FOLLOW_p_op_expr_in_match_expr4745);
p_op_expr446=p_op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_op_expr.add(p_op_expr446.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:700:26: ( NL )?
int alt190=2;
int LA190_0 = input.LA(1);
if ( (LA190_0==NL) ) {
alt190=1;
}
switch (alt190) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:700:26: NL
{
NL447=(Token)match(input,NL,FOLLOW_NL_in_match_expr4747); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL447);
}
break;
}
pushFollow(FOLLOW_full_cases_in_match_expr4750);
full_cases448=full_cases();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_full_cases.add(full_cases448.getTree());
L_end449=(Token)match(input,L_end,FOLLOW_L_end_in_match_expr4752); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end449);
// AST REWRITE
// elements: p_op_expr, full_cases
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 701:5: -> ^( MATCH p_op_expr full_cases )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:701:8: ^( MATCH p_op_expr full_cases )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MATCH, "MATCH"), root_1);
adaptor.addChild(root_1, stream_p_op_expr.nextTree());
adaptor.addChild(root_1, stream_full_cases.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "match_expr"
public static class try_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "try_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:1: try_expr : L_try ( NL )? pure_block ( NL )? L_catch ( NL )? full_cases L_end -> ^( TRY pure_block full_cases ) ;
public final babel17Parser.try_expr_return try_expr() throws RecognitionException {
babel17Parser.try_expr_return retval = new babel17Parser.try_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_try450=null;
Token NL451=null;
Token NL453=null;
Token L_catch454=null;
Token NL455=null;
Token L_end457=null;
babel17Parser.pure_block_return pure_block452 = null;
babel17Parser.full_cases_return full_cases456 = null;
CommonTree L_try450_tree=null;
CommonTree NL451_tree=null;
CommonTree NL453_tree=null;
CommonTree L_catch454_tree=null;
CommonTree NL455_tree=null;
CommonTree L_end457_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_L_try=new RewriteRuleTokenStream(adaptor,"token L_try");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_catch=new RewriteRuleTokenStream(adaptor,"token L_catch");
RewriteRuleSubtreeStream stream_full_cases=new RewriteRuleSubtreeStream(adaptor,"rule full_cases");
RewriteRuleSubtreeStream stream_pure_block=new RewriteRuleSubtreeStream(adaptor,"rule pure_block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:9: ( L_try ( NL )? pure_block ( NL )? L_catch ( NL )? full_cases L_end -> ^( TRY pure_block full_cases ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:11: L_try ( NL )? pure_block ( NL )? L_catch ( NL )? full_cases L_end
{
L_try450=(Token)match(input,L_try,FOLLOW_L_try_in_try_expr4778); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_try.add(L_try450);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:17: ( NL )?
int alt191=2;
int LA191_0 = input.LA(1);
if ( (LA191_0==NL) ) {
alt191=1;
}
switch (alt191) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:17: NL
{
NL451=(Token)match(input,NL,FOLLOW_NL_in_try_expr4780); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL451);
}
break;
}
pushFollow(FOLLOW_pure_block_in_try_expr4783);
pure_block452=pure_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pure_block.add(pure_block452.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:32: ( NL )?
int alt192=2;
int LA192_0 = input.LA(1);
if ( (LA192_0==NL) ) {
alt192=1;
}
switch (alt192) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:32: NL
{
NL453=(Token)match(input,NL,FOLLOW_NL_in_try_expr4785); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL453);
}
break;
}
L_catch454=(Token)match(input,L_catch,FOLLOW_L_catch_in_try_expr4788); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_catch.add(L_catch454);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:44: ( NL )?
int alt193=2;
int LA193_0 = input.LA(1);
if ( (LA193_0==NL) ) {
alt193=1;
}
switch (alt193) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:703:44: NL
{
NL455=(Token)match(input,NL,FOLLOW_NL_in_try_expr4790); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL455);
}
break;
}
pushFollow(FOLLOW_full_cases_in_try_expr4793);
full_cases456=full_cases();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_full_cases.add(full_cases456.getTree());
L_end457=(Token)match(input,L_end,FOLLOW_L_end_in_try_expr4795); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end457);
// AST REWRITE
// elements: pure_block, full_cases
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 704:5: -> ^( TRY pure_block full_cases )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:704:8: ^( TRY pure_block full_cases )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TRY, "TRY"), root_1);
adaptor.addChild(root_1, stream_pure_block.nextTree());
adaptor.addChild(root_1, stream_full_cases.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "try_expr"
public static class lambda_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:706:1: lambda_expr : '(' ( NL )? lambda_cases ( NL )? ')' -> ^( LAMBDA lambda_cases ) ;
public final babel17Parser.lambda_expr_return lambda_expr() throws RecognitionException {
babel17Parser.lambda_expr_return retval = new babel17Parser.lambda_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal458=null;
Token NL459=null;
Token NL461=null;
Token char_literal462=null;
babel17Parser.lambda_cases_return lambda_cases460 = null;
CommonTree char_literal458_tree=null;
CommonTree NL459_tree=null;
CommonTree NL461_tree=null;
CommonTree char_literal462_tree=null;
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleSubtreeStream stream_lambda_cases=new RewriteRuleSubtreeStream(adaptor,"rule lambda_cases");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:2: ( '(' ( NL )? lambda_cases ( NL )? ')' -> ^( LAMBDA lambda_cases ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:4: '(' ( NL )? lambda_cases ( NL )? ')'
{
char_literal458=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_lambda_expr4819); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal458);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:8: ( NL )?
int alt194=2;
int LA194_0 = input.LA(1);
if ( (LA194_0==NL) ) {
alt194=1;
}
switch (alt194) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:8: NL
{
NL459=(Token)match(input,NL,FOLLOW_NL_in_lambda_expr4821); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL459);
}
break;
}
pushFollow(FOLLOW_lambda_cases_in_lambda_expr4824);
lambda_cases460=lambda_cases();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lambda_cases.add(lambda_cases460.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:25: ( NL )?
int alt195=2;
int LA195_0 = input.LA(1);
if ( (LA195_0==NL) ) {
alt195=1;
}
switch (alt195) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:25: NL
{
NL461=(Token)match(input,NL,FOLLOW_NL_in_lambda_expr4826); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL461);
}
break;
}
char_literal462=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_lambda_expr4829); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal462);
// AST REWRITE
// elements: lambda_cases
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 707:33: -> ^( LAMBDA lambda_cases )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:707:36: ^( LAMBDA lambda_cases )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LAMBDA, "LAMBDA"), root_1);
adaptor.addChild(root_1, stream_lambda_cases.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lambda_expr"
public static class lambda_expr_nobrackets_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_expr_nobrackets"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:709:1: lambda_expr_nobrackets : lambda_cases_nobrackets -> ^( LAMBDA lambda_cases_nobrackets ) ;
public final babel17Parser.lambda_expr_nobrackets_return lambda_expr_nobrackets() throws RecognitionException {
babel17Parser.lambda_expr_nobrackets_return retval = new babel17Parser.lambda_expr_nobrackets_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.lambda_cases_nobrackets_return lambda_cases_nobrackets463 = null;
RewriteRuleSubtreeStream stream_lambda_cases_nobrackets=new RewriteRuleSubtreeStream(adaptor,"rule lambda_cases_nobrackets");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:710:2: ( lambda_cases_nobrackets -> ^( LAMBDA lambda_cases_nobrackets ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:710:4: lambda_cases_nobrackets
{
pushFollow(FOLLOW_lambda_cases_nobrackets_in_lambda_expr_nobrackets4848);
lambda_cases_nobrackets463=lambda_cases_nobrackets();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lambda_cases_nobrackets.add(lambda_cases_nobrackets463.getTree());
// AST REWRITE
// elements: lambda_cases_nobrackets
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 710:28: -> ^( LAMBDA lambda_cases_nobrackets )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:710:31: ^( LAMBDA lambda_cases_nobrackets )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LAMBDA, "LAMBDA"), root_1);
adaptor.addChild(root_1, stream_lambda_cases_nobrackets.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lambda_expr_nobrackets"
public static class lambda_cases_nobrackets_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_cases_nobrackets"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:712:1: lambda_cases_nobrackets : pattern ( NL )? token_DOUBLE_ARROW ( NL )? lop_expr -> ^( CASES ^( NIL_TOKEN pattern ^( BLOCK lop_expr ) ) ) ;
public final babel17Parser.lambda_cases_nobrackets_return lambda_cases_nobrackets() throws RecognitionException {
babel17Parser.lambda_cases_nobrackets_return retval = new babel17Parser.lambda_cases_nobrackets_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL465=null;
Token NL467=null;
babel17Parser.pattern_return pattern464 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW466 = null;
babel17Parser.lop_expr_return lop_expr468 = null;
CommonTree NL465_tree=null;
CommonTree NL467_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_lop_expr=new RewriteRuleSubtreeStream(adaptor,"rule lop_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:2: ( pattern ( NL )? token_DOUBLE_ARROW ( NL )? lop_expr -> ^( CASES ^( NIL_TOKEN pattern ^( BLOCK lop_expr ) ) ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:4: pattern ( NL )? token_DOUBLE_ARROW ( NL )? lop_expr
{
pushFollow(FOLLOW_pattern_in_lambda_cases_nobrackets4866);
pattern464=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern464.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:12: ( NL )?
int alt196=2;
int LA196_0 = input.LA(1);
if ( (LA196_0==NL) ) {
alt196=1;
}
switch (alt196) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:12: NL
{
NL465=(Token)match(input,NL,FOLLOW_NL_in_lambda_cases_nobrackets4868); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL465);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_lambda_cases_nobrackets4871);
token_DOUBLE_ARROW466=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW466.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:35: ( NL )?
int alt197=2;
int LA197_0 = input.LA(1);
if ( (LA197_0==NL) ) {
alt197=1;
}
switch (alt197) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:35: NL
{
NL467=(Token)match(input,NL,FOLLOW_NL_in_lambda_cases_nobrackets4873); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL467);
}
break;
}
pushFollow(FOLLOW_lop_expr_in_lambda_cases_nobrackets4876);
lop_expr468=lop_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lop_expr.add(lop_expr468.getTree());
// AST REWRITE
// elements: lop_expr, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 713:48: -> ^( CASES ^( NIL_TOKEN pattern ^( BLOCK lop_expr ) ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:51: ^( CASES ^( NIL_TOKEN pattern ^( BLOCK lop_expr ) ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CASES, "CASES"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:59: ^( NIL_TOKEN pattern ^( BLOCK lop_expr ) )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
adaptor.addChild(root_2, stream_pattern.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:713:79: ^( BLOCK lop_expr )
{
CommonTree root_3 = (CommonTree)adaptor.nil();
root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(BLOCK, "BLOCK"), root_3);
adaptor.addChild(root_3, stream_lop_expr.nextTree());
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lambda_cases_nobrackets"
public static class lambda_case_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_case_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:715:1: lambda_case_expr : ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block ) -> ^( NIL_TOKEN casepattern pure_block ) ;
public final babel17Parser.lambda_case_expr_return lambda_case_expr() throws RecognitionException {
babel17Parser.lambda_case_expr_return retval = new babel17Parser.lambda_case_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_case469=null;
Token NL470=null;
Token NL472=null;
Token NL474=null;
babel17Parser.casepattern_return casepattern471 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW473 = null;
babel17Parser.pure_block_return pure_block475 = null;
CommonTree L_case469_tree=null;
CommonTree NL470_tree=null;
CommonTree NL472_tree=null;
CommonTree NL474_tree=null;
RewriteRuleTokenStream stream_L_case=new RewriteRuleTokenStream(adaptor,"token L_case");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_casepattern=new RewriteRuleSubtreeStream(adaptor,"rule casepattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_pure_block=new RewriteRuleSubtreeStream(adaptor,"rule pure_block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:2: ( ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block ) -> ^( NIL_TOKEN casepattern pure_block ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:4: ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:4: ( L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:5: L_case ( NL )? casepattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block
{
L_case469=(Token)match(input,L_case,FOLLOW_L_case_in_lambda_case_expr4904); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_case.add(L_case469);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:12: ( NL )?
int alt198=2;
int LA198_0 = input.LA(1);
if ( (LA198_0==NL) ) {
alt198=1;
}
switch (alt198) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:12: NL
{
NL470=(Token)match(input,NL,FOLLOW_NL_in_lambda_case_expr4906); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL470);
}
break;
}
pushFollow(FOLLOW_casepattern_in_lambda_case_expr4909);
casepattern471=casepattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_casepattern.add(casepattern471.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:28: ( NL )?
int alt199=2;
int LA199_0 = input.LA(1);
if ( (LA199_0==NL) ) {
alt199=1;
}
switch (alt199) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:28: NL
{
NL472=(Token)match(input,NL,FOLLOW_NL_in_lambda_case_expr4911); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL472);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_lambda_case_expr4914);
token_DOUBLE_ARROW473=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW473.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:51: ( NL )?
int alt200=2;
int LA200_0 = input.LA(1);
if ( (LA200_0==NL) ) {
alt200=1;
}
switch (alt200) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:51: NL
{
NL474=(Token)match(input,NL,FOLLOW_NL_in_lambda_case_expr4916); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL474);
}
break;
}
pushFollow(FOLLOW_pure_block_in_lambda_case_expr4919);
pure_block475=pure_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pure_block.add(pure_block475.getTree());
}
// AST REWRITE
// elements: pure_block, casepattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 716:67: -> ^( NIL_TOKEN casepattern pure_block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:716:70: ^( NIL_TOKEN casepattern pure_block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_1);
adaptor.addChild(root_1, stream_casepattern.nextTree());
adaptor.addChild(root_1, stream_pure_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lambda_case_expr"
public static class lambda_cases_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_cases"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:718:1: lambda_cases : ( pattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block -> ^( CASES ^( NIL_TOKEN pattern pure_block ) ) | lambda_case_expr ( ( NL )? lambda_case_expr )* -> ^( CASES ( lambda_case_expr )+ ) );
public final babel17Parser.lambda_cases_return lambda_cases() throws RecognitionException {
babel17Parser.lambda_cases_return retval = new babel17Parser.lambda_cases_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL477=null;
Token NL479=null;
Token NL482=null;
babel17Parser.pattern_return pattern476 = null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW478 = null;
babel17Parser.pure_block_return pure_block480 = null;
babel17Parser.lambda_case_expr_return lambda_case_expr481 = null;
babel17Parser.lambda_case_expr_return lambda_case_expr483 = null;
CommonTree NL477_tree=null;
CommonTree NL479_tree=null;
CommonTree NL482_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_lambda_case_expr=new RewriteRuleSubtreeStream(adaptor,"rule lambda_case_expr");
RewriteRuleSubtreeStream stream_pure_block=new RewriteRuleSubtreeStream(adaptor,"rule pure_block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:2: ( pattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block -> ^( CASES ^( NIL_TOKEN pattern pure_block ) ) | lambda_case_expr ( ( NL )? lambda_case_expr )* -> ^( CASES ( lambda_case_expr )+ ) )
int alt205=2;
int LA205_0 = input.LA(1);
if ( (LA205_0==L_exception||(LA205_0>=L_true && LA205_0<=L_false)||LA205_0==L_nil||LA205_0==MINUS||(LA205_0>=A_ELLIPSIS && LA205_0<=U_ELLIPSIS)||(LA205_0>=Constr && LA205_0<=Id)||LA205_0==Num||(LA205_0>=String && LA205_0<=ROUND_BRACKET_OPEN)||LA205_0==SQUARE_BRACKET_OPEN||LA205_0==CURLY_BRACKET_OPEN||LA205_0==UNDERSCORE) ) {
alt205=1;
}
else if ( (LA205_0==L_case) ) {
alt205=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 205, 0, input);
throw nvae;
}
switch (alt205) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:4: pattern ( NL )? token_DOUBLE_ARROW ( NL )? pure_block
{
pushFollow(FOLLOW_pattern_in_lambda_cases4940);
pattern476=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern476.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:12: ( NL )?
int alt201=2;
int LA201_0 = input.LA(1);
if ( (LA201_0==NL) ) {
alt201=1;
}
switch (alt201) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:12: NL
{
NL477=(Token)match(input,NL,FOLLOW_NL_in_lambda_cases4942); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL477);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_lambda_cases4945);
token_DOUBLE_ARROW478=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW478.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:35: ( NL )?
int alt202=2;
int LA202_0 = input.LA(1);
if ( (LA202_0==NL) ) {
alt202=1;
}
switch (alt202) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:35: NL
{
NL479=(Token)match(input,NL,FOLLOW_NL_in_lambda_cases4947); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL479);
}
break;
}
pushFollow(FOLLOW_pure_block_in_lambda_cases4950);
pure_block480=pure_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pure_block.add(pure_block480.getTree());
// AST REWRITE
// elements: pure_block, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 719:50: -> ^( CASES ^( NIL_TOKEN pattern pure_block ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:53: ^( CASES ^( NIL_TOKEN pattern pure_block ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CASES, "CASES"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:719:61: ^( NIL_TOKEN pattern pure_block )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
adaptor.addChild(root_2, stream_pattern.nextTree());
adaptor.addChild(root_2, stream_pure_block.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:720:4: lambda_case_expr ( ( NL )? lambda_case_expr )*
{
pushFollow(FOLLOW_lambda_case_expr_in_lambda_cases4969);
lambda_case_expr481=lambda_case_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lambda_case_expr.add(lambda_case_expr481.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:720:21: ( ( NL )? lambda_case_expr )*
loop204:
do {
int alt204=2;
int LA204_0 = input.LA(1);
if ( (LA204_0==NL) ) {
int LA204_1 = input.LA(2);
if ( (LA204_1==L_case) ) {
alt204=1;
}
}
else if ( (LA204_0==L_case) ) {
alt204=1;
}
switch (alt204) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:720:22: ( NL )? lambda_case_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:720:22: ( NL )?
int alt203=2;
int LA203_0 = input.LA(1);
if ( (LA203_0==NL) ) {
alt203=1;
}
switch (alt203) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:720:22: NL
{
NL482=(Token)match(input,NL,FOLLOW_NL_in_lambda_cases4972); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL482);
}
break;
}
pushFollow(FOLLOW_lambda_case_expr_in_lambda_cases4975);
lambda_case_expr483=lambda_case_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lambda_case_expr.add(lambda_case_expr483.getTree());
}
break;
default :
break loop204;
}
} while (true);
// AST REWRITE
// elements: lambda_case_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 720:45: -> ^( CASES ( lambda_case_expr )+ )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:720:48: ^( CASES ( lambda_case_expr )+ )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CASES, "CASES"), root_1);
if ( !(stream_lambda_case_expr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_lambda_case_expr.hasNext() ) {
adaptor.addChild(root_1, stream_lambda_case_expr.nextTree());
}
stream_lambda_case_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lambda_cases"
public static class for_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "for_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:1: for_expr : L_for ( NL )? pattern ( NL )? L_in ( NL )? protected_expr ( NL )? L_do block L_end -> ^( FOR_EXPR pattern protected_expr block ) ;
public final babel17Parser.for_expr_return for_expr() throws RecognitionException {
babel17Parser.for_expr_return retval = new babel17Parser.for_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_for484=null;
Token NL485=null;
Token NL487=null;
Token L_in488=null;
Token NL489=null;
Token NL491=null;
Token L_do492=null;
Token L_end494=null;
babel17Parser.pattern_return pattern486 = null;
babel17Parser.protected_expr_return protected_expr490 = null;
babel17Parser.block_return block493 = null;
CommonTree L_for484_tree=null;
CommonTree NL485_tree=null;
CommonTree NL487_tree=null;
CommonTree L_in488_tree=null;
CommonTree NL489_tree=null;
CommonTree NL491_tree=null;
CommonTree L_do492_tree=null;
CommonTree L_end494_tree=null;
RewriteRuleTokenStream stream_L_end=new RewriteRuleTokenStream(adaptor,"token L_end");
RewriteRuleTokenStream stream_L_for=new RewriteRuleTokenStream(adaptor,"token L_for");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_L_in=new RewriteRuleTokenStream(adaptor,"token L_in");
RewriteRuleTokenStream stream_L_do=new RewriteRuleTokenStream(adaptor,"token L_do");
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:9: ( L_for ( NL )? pattern ( NL )? L_in ( NL )? protected_expr ( NL )? L_do block L_end -> ^( FOR_EXPR pattern protected_expr block ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:11: L_for ( NL )? pattern ( NL )? L_in ( NL )? protected_expr ( NL )? L_do block L_end
{
L_for484=(Token)match(input,L_for,FOLLOW_L_for_in_for_expr4993); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_for.add(L_for484);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:17: ( NL )?
int alt206=2;
int LA206_0 = input.LA(1);
if ( (LA206_0==NL) ) {
alt206=1;
}
switch (alt206) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:17: NL
{
NL485=(Token)match(input,NL,FOLLOW_NL_in_for_expr4995); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL485);
}
break;
}
pushFollow(FOLLOW_pattern_in_for_expr4998);
pattern486=pattern();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pattern.add(pattern486.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:29: ( NL )?
int alt207=2;
int LA207_0 = input.LA(1);
if ( (LA207_0==NL) ) {
alt207=1;
}
switch (alt207) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:29: NL
{
NL487=(Token)match(input,NL,FOLLOW_NL_in_for_expr5000); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL487);
}
break;
}
L_in488=(Token)match(input,L_in,FOLLOW_L_in_in_for_expr5003); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_in.add(L_in488);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:38: ( NL )?
int alt208=2;
int LA208_0 = input.LA(1);
if ( (LA208_0==NL) ) {
alt208=1;
}
switch (alt208) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:38: NL
{
NL489=(Token)match(input,NL,FOLLOW_NL_in_for_expr5005); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL489);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_for_expr5008);
protected_expr490=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr490.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:57: ( NL )?
int alt209=2;
int LA209_0 = input.LA(1);
if ( (LA209_0==NL) ) {
alt209=1;
}
switch (alt209) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:722:57: NL
{
NL491=(Token)match(input,NL,FOLLOW_NL_in_for_expr5010); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL491);
}
break;
}
L_do492=(Token)match(input,L_do,FOLLOW_L_do_in_for_expr5013); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_do.add(L_do492);
pushFollow(FOLLOW_block_in_for_expr5015);
block493=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block493.getTree());
L_end494=(Token)match(input,L_end,FOLLOW_L_end_in_for_expr5017); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_end.add(L_end494);
// AST REWRITE
// elements: block, protected_expr, pattern
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 723:5: -> ^( FOR_EXPR pattern protected_expr block )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:723:8: ^( FOR_EXPR pattern protected_expr block )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FOR_EXPR, "FOR_EXPR"), root_1);
adaptor.addChild(root_1, stream_pattern.nextTree());
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "for_expr"
public static class op_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "op_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:726:1: op_expr : ( builtin_primitive op_expr | lens_expr | bool_expr );
public final babel17Parser.op_expr_return op_expr() throws RecognitionException {
babel17Parser.op_expr_return retval = new babel17Parser.op_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.builtin_primitive_return builtin_primitive495 = null;
babel17Parser.op_expr_return op_expr496 = null;
babel17Parser.lens_expr_return lens_expr497 = null;
babel17Parser.bool_expr_return bool_expr498 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:727:2: ( builtin_primitive op_expr | lens_expr | bool_expr )
int alt210=3;
switch ( input.LA(1) ) {
case L_exception:
case L_concurrent:
case L_lazy:
case L_force:
{
alt210=1;
}
break;
case L_lens:
{
alt210=2;
}
break;
case L_begin:
case L_obj:
case L_with:
case L_if:
case L_while:
case L_for:
case L_match:
case L_try:
case L_choose:
case L_true:
case L_false:
case L_this:
case L_random:
case L_nil:
case L_typeof:
case L_not:
case L_root:
case L_native:
case L_min:
case L_max:
case MINUS:
case Constr:
case Id:
case Float:
case Num:
case String:
case ROUND_BRACKET_OPEN:
case SQUARE_BRACKET_OPEN:
case CURLY_BRACKET_OPEN:
{
alt210=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 210, 0, input);
throw nvae;
}
switch (alt210) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:727:4: builtin_primitive op_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_builtin_primitive_in_op_expr5046);
builtin_primitive495=builtin_primitive();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(builtin_primitive495.getTree(), root_0);
pushFollow(FOLLOW_op_expr_in_op_expr5049);
op_expr496=op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, op_expr496.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:728:4: lens_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_lens_expr_in_op_expr5054);
lens_expr497=lens_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lens_expr497.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:729:4: bool_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_bool_expr_in_op_expr5059);
bool_expr498=bool_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_expr498.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "op_expr"
public static class p_op_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_op_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:731:1: p_op_expr : ( builtin_primitive ( NL )? p_op_expr | p_lens_expr | p_bool_expr );
public final babel17Parser.p_op_expr_return p_op_expr() throws RecognitionException {
babel17Parser.p_op_expr_return retval = new babel17Parser.p_op_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL500=null;
babel17Parser.builtin_primitive_return builtin_primitive499 = null;
babel17Parser.p_op_expr_return p_op_expr501 = null;
babel17Parser.p_lens_expr_return p_lens_expr502 = null;
babel17Parser.p_bool_expr_return p_bool_expr503 = null;
CommonTree NL500_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:732:2: ( builtin_primitive ( NL )? p_op_expr | p_lens_expr | p_bool_expr )
int alt212=3;
switch ( input.LA(1) ) {
case L_exception:
case L_concurrent:
case L_lazy:
case L_force:
{
alt212=1;
}
break;
case L_lens:
{
alt212=2;
}
break;
case L_begin:
case L_obj:
case L_with:
case L_if:
case L_while:
case L_for:
case L_match:
case L_try:
case L_choose:
case L_true:
case L_false:
case L_this:
case L_random:
case L_nil:
case L_typeof:
case L_not:
case L_root:
case L_native:
case L_min:
case L_max:
case MINUS:
case Constr:
case Id:
case Float:
case Num:
case String:
case ROUND_BRACKET_OPEN:
case SQUARE_BRACKET_OPEN:
case CURLY_BRACKET_OPEN:
{
alt212=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 212, 0, input);
throw nvae;
}
switch (alt212) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:732:4: builtin_primitive ( NL )? p_op_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_builtin_primitive_in_p_op_expr5069);
builtin_primitive499=builtin_primitive();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(builtin_primitive499.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:732:25: ( NL )?
int alt211=2;
int LA211_0 = input.LA(1);
if ( (LA211_0==NL) ) {
alt211=1;
}
switch (alt211) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:732:25: NL
{
NL500=(Token)match(input,NL,FOLLOW_NL_in_p_op_expr5072); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_op_expr_in_p_op_expr5076);
p_op_expr501=p_op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_op_expr501.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:733:4: p_lens_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_lens_expr_in_p_op_expr5081);
p_lens_expr502=p_lens_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_lens_expr502.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:734:4: p_bool_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_bool_expr_in_p_op_expr5086);
p_bool_expr503=p_bool_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_expr503.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_op_expr"
public static class builtin_primitive_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "builtin_primitive"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:736:1: builtin_primitive : ( L_exception | L_lazy | L_concurrent | L_force );
public final babel17Parser.builtin_primitive_return builtin_primitive() throws RecognitionException {
babel17Parser.builtin_primitive_return retval = new babel17Parser.builtin_primitive_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set504=null;
CommonTree set504_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:737:2: ( L_exception | L_lazy | L_concurrent | L_force )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set504=(Token)input.LT(1);
if ( input.LA(1)==L_exception||input.LA(1)==L_concurrent||input.LA(1)==L_lazy||input.LA(1)==L_force ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set504));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "builtin_primitive"
public static class lens_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lens_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:739:1: lens_expr : ( L_lens ( NL )? Id ( NL )? token_DOUBLE_ARROW ( NL )? op_expr -> ^( L_lens Id op_expr ) | L_lens ( NL )? ROUND_BRACKET_OPEN ( NL )? protected_expr ( NL )? COMMA ( NL )? protected_expr ( NL )? ROUND_BRACKET_CLOSE -> ^( FUNCTIONS_LENS protected_expr protected_expr ) );
public final babel17Parser.lens_expr_return lens_expr() throws RecognitionException {
babel17Parser.lens_expr_return retval = new babel17Parser.lens_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_lens505=null;
Token NL506=null;
Token Id507=null;
Token NL508=null;
Token NL510=null;
Token L_lens512=null;
Token NL513=null;
Token ROUND_BRACKET_OPEN514=null;
Token NL515=null;
Token NL517=null;
Token COMMA518=null;
Token NL519=null;
Token NL521=null;
Token ROUND_BRACKET_CLOSE522=null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW509 = null;
babel17Parser.op_expr_return op_expr511 = null;
babel17Parser.protected_expr_return protected_expr516 = null;
babel17Parser.protected_expr_return protected_expr520 = null;
CommonTree L_lens505_tree=null;
CommonTree NL506_tree=null;
CommonTree Id507_tree=null;
CommonTree NL508_tree=null;
CommonTree NL510_tree=null;
CommonTree L_lens512_tree=null;
CommonTree NL513_tree=null;
CommonTree ROUND_BRACKET_OPEN514_tree=null;
CommonTree NL515_tree=null;
CommonTree NL517_tree=null;
CommonTree COMMA518_tree=null;
CommonTree NL519_tree=null;
CommonTree NL521_tree=null;
CommonTree ROUND_BRACKET_CLOSE522_tree=null;
RewriteRuleTokenStream stream_L_lens=new RewriteRuleTokenStream(adaptor,"token L_lens");
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_op_expr=new RewriteRuleSubtreeStream(adaptor,"rule op_expr");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:2: ( L_lens ( NL )? Id ( NL )? token_DOUBLE_ARROW ( NL )? op_expr -> ^( L_lens Id op_expr ) | L_lens ( NL )? ROUND_BRACKET_OPEN ( NL )? protected_expr ( NL )? COMMA ( NL )? protected_expr ( NL )? ROUND_BRACKET_CLOSE -> ^( FUNCTIONS_LENS protected_expr protected_expr ) )
int alt221=2;
int LA221_0 = input.LA(1);
if ( (LA221_0==L_lens) ) {
switch ( input.LA(2) ) {
case NL:
{
int LA221_2 = input.LA(3);
if ( (LA221_2==Id) ) {
alt221=1;
}
else if ( (LA221_2==ROUND_BRACKET_OPEN) ) {
alt221=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 221, 2, input);
throw nvae;
}
}
break;
case Id:
{
alt221=1;
}
break;
case ROUND_BRACKET_OPEN:
{
alt221=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 221, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 221, 0, input);
throw nvae;
}
switch (alt221) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:4: L_lens ( NL )? Id ( NL )? token_DOUBLE_ARROW ( NL )? op_expr
{
L_lens505=(Token)match(input,L_lens,FOLLOW_L_lens_in_lens_expr5117); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_lens.add(L_lens505);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:11: ( NL )?
int alt213=2;
int LA213_0 = input.LA(1);
if ( (LA213_0==NL) ) {
alt213=1;
}
switch (alt213) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:11: NL
{
NL506=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5119); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL506);
}
break;
}
Id507=(Token)match(input,Id,FOLLOW_Id_in_lens_expr5122); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id507);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:18: ( NL )?
int alt214=2;
int LA214_0 = input.LA(1);
if ( (LA214_0==NL) ) {
alt214=1;
}
switch (alt214) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:18: NL
{
NL508=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5124); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL508);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_lens_expr5127);
token_DOUBLE_ARROW509=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW509.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:41: ( NL )?
int alt215=2;
int LA215_0 = input.LA(1);
if ( (LA215_0==NL) ) {
alt215=1;
}
switch (alt215) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:41: NL
{
NL510=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5129); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL510);
}
break;
}
pushFollow(FOLLOW_op_expr_in_lens_expr5132);
op_expr511=op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_op_expr.add(op_expr511.getTree());
// AST REWRITE
// elements: op_expr, Id, L_lens
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 740:53: -> ^( L_lens Id op_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:740:56: ^( L_lens Id op_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_lens.nextNode(), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_op_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:4: L_lens ( NL )? ROUND_BRACKET_OPEN ( NL )? protected_expr ( NL )? COMMA ( NL )? protected_expr ( NL )? ROUND_BRACKET_CLOSE
{
L_lens512=(Token)match(input,L_lens,FOLLOW_L_lens_in_lens_expr5147); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_lens.add(L_lens512);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:11: ( NL )?
int alt216=2;
int LA216_0 = input.LA(1);
if ( (LA216_0==NL) ) {
alt216=1;
}
switch (alt216) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:11: NL
{
NL513=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5149); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL513);
}
break;
}
ROUND_BRACKET_OPEN514=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_lens_expr5152); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(ROUND_BRACKET_OPEN514);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:34: ( NL )?
int alt217=2;
int LA217_0 = input.LA(1);
if ( (LA217_0==NL) ) {
alt217=1;
}
switch (alt217) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:34: NL
{
NL515=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5154); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL515);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_lens_expr5157);
protected_expr516=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr516.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:53: ( NL )?
int alt218=2;
int LA218_0 = input.LA(1);
if ( (LA218_0==NL) ) {
alt218=1;
}
switch (alt218) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:53: NL
{
NL517=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5159); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL517);
}
break;
}
COMMA518=(Token)match(input,COMMA,FOLLOW_COMMA_in_lens_expr5162); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA518);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:63: ( NL )?
int alt219=2;
int LA219_0 = input.LA(1);
if ( (LA219_0==NL) ) {
alt219=1;
}
switch (alt219) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:63: NL
{
NL519=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5164); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL519);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_lens_expr5167);
protected_expr520=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr520.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:82: ( NL )?
int alt220=2;
int LA220_0 = input.LA(1);
if ( (LA220_0==NL) ) {
alt220=1;
}
switch (alt220) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:82: NL
{
NL521=(Token)match(input,NL,FOLLOW_NL_in_lens_expr5169); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL521);
}
break;
}
ROUND_BRACKET_CLOSE522=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_lens_expr5172); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(ROUND_BRACKET_CLOSE522);
// AST REWRITE
// elements: protected_expr, protected_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 741:106: -> ^( FUNCTIONS_LENS protected_expr protected_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:741:109: ^( FUNCTIONS_LENS protected_expr protected_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FUNCTIONS_LENS, "FUNCTIONS_LENS"), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lens_expr"
public static class p_lens_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_lens_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:743:1: p_lens_expr : ( L_lens ( NL )? Id ( NL )? token_DOUBLE_ARROW ( NL )? p_op_expr -> ^( L_lens token_DOUBLE_ARROW Id p_op_expr ) | L_lens ( NL )? ROUND_BRACKET_OPEN ( NL )? protected_expr ( NL )? COMMA ( NL )? protected_expr ( NL )? ROUND_BRACKET_CLOSE -> ^( FUNCTIONS_LENS protected_expr protected_expr ) );
public final babel17Parser.p_lens_expr_return p_lens_expr() throws RecognitionException {
babel17Parser.p_lens_expr_return retval = new babel17Parser.p_lens_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token L_lens523=null;
Token NL524=null;
Token Id525=null;
Token NL526=null;
Token NL528=null;
Token L_lens530=null;
Token NL531=null;
Token ROUND_BRACKET_OPEN532=null;
Token NL533=null;
Token NL535=null;
Token COMMA536=null;
Token NL537=null;
Token NL539=null;
Token ROUND_BRACKET_CLOSE540=null;
babel17Parser.token_DOUBLE_ARROW_return token_DOUBLE_ARROW527 = null;
babel17Parser.p_op_expr_return p_op_expr529 = null;
babel17Parser.protected_expr_return protected_expr534 = null;
babel17Parser.protected_expr_return protected_expr538 = null;
CommonTree L_lens523_tree=null;
CommonTree NL524_tree=null;
CommonTree Id525_tree=null;
CommonTree NL526_tree=null;
CommonTree NL528_tree=null;
CommonTree L_lens530_tree=null;
CommonTree NL531_tree=null;
CommonTree ROUND_BRACKET_OPEN532_tree=null;
CommonTree NL533_tree=null;
CommonTree NL535_tree=null;
CommonTree COMMA536_tree=null;
CommonTree NL537_tree=null;
CommonTree NL539_tree=null;
CommonTree ROUND_BRACKET_CLOSE540_tree=null;
RewriteRuleTokenStream stream_L_lens=new RewriteRuleTokenStream(adaptor,"token L_lens");
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleSubtreeStream stream_token_DOUBLE_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_ARROW");
RewriteRuleSubtreeStream stream_protected_expr=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr");
RewriteRuleSubtreeStream stream_p_op_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_op_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:2: ( L_lens ( NL )? Id ( NL )? token_DOUBLE_ARROW ( NL )? p_op_expr -> ^( L_lens token_DOUBLE_ARROW Id p_op_expr ) | L_lens ( NL )? ROUND_BRACKET_OPEN ( NL )? protected_expr ( NL )? COMMA ( NL )? protected_expr ( NL )? ROUND_BRACKET_CLOSE -> ^( FUNCTIONS_LENS protected_expr protected_expr ) )
int alt230=2;
int LA230_0 = input.LA(1);
if ( (LA230_0==L_lens) ) {
switch ( input.LA(2) ) {
case NL:
{
int LA230_2 = input.LA(3);
if ( (LA230_2==Id) ) {
alt230=1;
}
else if ( (LA230_2==ROUND_BRACKET_OPEN) ) {
alt230=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 230, 2, input);
throw nvae;
}
}
break;
case Id:
{
alt230=1;
}
break;
case ROUND_BRACKET_OPEN:
{
alt230=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 230, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 230, 0, input);
throw nvae;
}
switch (alt230) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:4: L_lens ( NL )? Id ( NL )? token_DOUBLE_ARROW ( NL )? p_op_expr
{
L_lens523=(Token)match(input,L_lens,FOLLOW_L_lens_in_p_lens_expr5192); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_lens.add(L_lens523);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:11: ( NL )?
int alt222=2;
int LA222_0 = input.LA(1);
if ( (LA222_0==NL) ) {
alt222=1;
}
switch (alt222) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:11: NL
{
NL524=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5194); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL524);
}
break;
}
Id525=(Token)match(input,Id,FOLLOW_Id_in_p_lens_expr5197); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id525);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:18: ( NL )?
int alt223=2;
int LA223_0 = input.LA(1);
if ( (LA223_0==NL) ) {
alt223=1;
}
switch (alt223) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:18: NL
{
NL526=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5199); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL526);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_ARROW_in_p_lens_expr5202);
token_DOUBLE_ARROW527=token_DOUBLE_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_ARROW.add(token_DOUBLE_ARROW527.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:41: ( NL )?
int alt224=2;
int LA224_0 = input.LA(1);
if ( (LA224_0==NL) ) {
alt224=1;
}
switch (alt224) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:41: NL
{
NL528=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5204); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL528);
}
break;
}
pushFollow(FOLLOW_p_op_expr_in_p_lens_expr5207);
p_op_expr529=p_op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_op_expr.add(p_op_expr529.getTree());
// AST REWRITE
// elements: Id, token_DOUBLE_ARROW, L_lens, p_op_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 744:55: -> ^( L_lens token_DOUBLE_ARROW Id p_op_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:744:58: ^( L_lens token_DOUBLE_ARROW Id p_op_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot(stream_L_lens.nextNode(), root_1);
adaptor.addChild(root_1, stream_token_DOUBLE_ARROW.nextTree());
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_1, stream_p_op_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:4: L_lens ( NL )? ROUND_BRACKET_OPEN ( NL )? protected_expr ( NL )? COMMA ( NL )? protected_expr ( NL )? ROUND_BRACKET_CLOSE
{
L_lens530=(Token)match(input,L_lens,FOLLOW_L_lens_in_p_lens_expr5224); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_L_lens.add(L_lens530);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:11: ( NL )?
int alt225=2;
int LA225_0 = input.LA(1);
if ( (LA225_0==NL) ) {
alt225=1;
}
switch (alt225) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:11: NL
{
NL531=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5226); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL531);
}
break;
}
ROUND_BRACKET_OPEN532=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_p_lens_expr5229); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(ROUND_BRACKET_OPEN532);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:34: ( NL )?
int alt226=2;
int LA226_0 = input.LA(1);
if ( (LA226_0==NL) ) {
alt226=1;
}
switch (alt226) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:34: NL
{
NL533=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5231); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL533);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_p_lens_expr5234);
protected_expr534=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr534.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:53: ( NL )?
int alt227=2;
int LA227_0 = input.LA(1);
if ( (LA227_0==NL) ) {
alt227=1;
}
switch (alt227) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:53: NL
{
NL535=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5236); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL535);
}
break;
}
COMMA536=(Token)match(input,COMMA,FOLLOW_COMMA_in_p_lens_expr5239); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA536);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:63: ( NL )?
int alt228=2;
int LA228_0 = input.LA(1);
if ( (LA228_0==NL) ) {
alt228=1;
}
switch (alt228) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:63: NL
{
NL537=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5241); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL537);
}
break;
}
pushFollow(FOLLOW_protected_expr_in_p_lens_expr5244);
protected_expr538=protected_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr.add(protected_expr538.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:82: ( NL )?
int alt229=2;
int LA229_0 = input.LA(1);
if ( (LA229_0==NL) ) {
alt229=1;
}
switch (alt229) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:82: NL
{
NL539=(Token)match(input,NL,FOLLOW_NL_in_p_lens_expr5246); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL539);
}
break;
}
ROUND_BRACKET_CLOSE540=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_p_lens_expr5249); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(ROUND_BRACKET_CLOSE540);
// AST REWRITE
// elements: protected_expr, protected_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 745:106: -> ^( FUNCTIONS_LENS protected_expr protected_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:745:109: ^( FUNCTIONS_LENS protected_expr protected_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FUNCTIONS_LENS, "FUNCTIONS_LENS"), root_1);
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_1, stream_protected_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_lens_expr"
public static class bool_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bool_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:747:1: bool_expr : bool_or_expr ;
public final babel17Parser.bool_expr_return bool_expr() throws RecognitionException {
babel17Parser.bool_expr_return retval = new babel17Parser.bool_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.bool_or_expr_return bool_or_expr541 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:748:2: ( bool_or_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:748:4: bool_or_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_bool_or_expr_in_bool_expr5269);
bool_or_expr541=bool_or_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_or_expr541.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "bool_expr"
public static class p_bool_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_bool_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:750:1: p_bool_expr : p_bool_or_expr ;
public final babel17Parser.p_bool_expr_return p_bool_expr() throws RecognitionException {
babel17Parser.p_bool_expr_return retval = new babel17Parser.p_bool_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.p_bool_or_expr_return p_bool_or_expr542 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:751:2: ( p_bool_or_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:751:4: p_bool_or_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_bool_or_expr_in_p_bool_expr5279);
p_bool_or_expr542=p_bool_or_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_or_expr542.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_bool_expr"
public static class bool_or_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bool_or_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:753:1: bool_or_expr : bool_and_expr ( ( NL )? token_OR ( NL )? bool_and_expr )* ;
public final babel17Parser.bool_or_expr_return bool_or_expr() throws RecognitionException {
babel17Parser.bool_or_expr_return retval = new babel17Parser.bool_or_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL544=null;
Token NL546=null;
babel17Parser.bool_and_expr_return bool_and_expr543 = null;
babel17Parser.token_OR_return token_OR545 = null;
babel17Parser.bool_and_expr_return bool_and_expr547 = null;
CommonTree NL544_tree=null;
CommonTree NL546_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:2: ( bool_and_expr ( ( NL )? token_OR ( NL )? bool_and_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:4: bool_and_expr ( ( NL )? token_OR ( NL )? bool_and_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_bool_and_expr_in_bool_or_expr5288);
bool_and_expr543=bool_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_and_expr543.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:18: ( ( NL )? token_OR ( NL )? bool_and_expr )*
loop233:
do {
int alt233=2;
int LA233_0 = input.LA(1);
if ( (LA233_0==NL) ) {
int LA233_1 = input.LA(2);
if ( (LA233_1==L_or) ) {
alt233=1;
}
}
else if ( (LA233_0==L_or) ) {
alt233=1;
}
switch (alt233) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:19: ( NL )? token_OR ( NL )? bool_and_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:21: ( NL )?
int alt231=2;
int LA231_0 = input.LA(1);
if ( (LA231_0==NL) ) {
alt231=1;
}
switch (alt231) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:21: NL
{
NL544=(Token)match(input,NL,FOLLOW_NL_in_bool_or_expr5291); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_token_OR_in_bool_or_expr5295);
token_OR545=token_OR();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_OR545.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:36: ( NL )?
int alt232=2;
int LA232_0 = input.LA(1);
if ( (LA232_0==NL) ) {
alt232=1;
}
switch (alt232) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:754:36: NL
{
NL546=(Token)match(input,NL,FOLLOW_NL_in_bool_or_expr5298); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_bool_and_expr_in_bool_or_expr5302);
bool_and_expr547=bool_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_and_expr547.getTree());
}
break;
default :
break loop233;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "bool_or_expr"
public static class p_bool_or_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_bool_or_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:756:1: p_bool_or_expr : p_bool_and_expr ( ( NL )? token_OR ( NL )? p_bool_and_expr )* ;
public final babel17Parser.p_bool_or_expr_return p_bool_or_expr() throws RecognitionException {
babel17Parser.p_bool_or_expr_return retval = new babel17Parser.p_bool_or_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL549=null;
Token NL551=null;
babel17Parser.p_bool_and_expr_return p_bool_and_expr548 = null;
babel17Parser.token_OR_return token_OR550 = null;
babel17Parser.p_bool_and_expr_return p_bool_and_expr552 = null;
CommonTree NL549_tree=null;
CommonTree NL551_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:2: ( p_bool_and_expr ( ( NL )? token_OR ( NL )? p_bool_and_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:4: p_bool_and_expr ( ( NL )? token_OR ( NL )? p_bool_and_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_bool_and_expr_in_p_bool_or_expr5314);
p_bool_and_expr548=p_bool_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_and_expr548.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:20: ( ( NL )? token_OR ( NL )? p_bool_and_expr )*
loop236:
do {
int alt236=2;
int LA236_0 = input.LA(1);
if ( (LA236_0==NL) ) {
int LA236_2 = input.LA(2);
if ( (LA236_2==L_or) ) {
alt236=1;
}
}
else if ( (LA236_0==L_or) ) {
alt236=1;
}
switch (alt236) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:21: ( NL )? token_OR ( NL )? p_bool_and_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:23: ( NL )?
int alt234=2;
int LA234_0 = input.LA(1);
if ( (LA234_0==NL) ) {
alt234=1;
}
switch (alt234) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:23: NL
{
NL549=(Token)match(input,NL,FOLLOW_NL_in_p_bool_or_expr5317); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_token_OR_in_p_bool_or_expr5321);
token_OR550=token_OR();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_OR550.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:38: ( NL )?
int alt235=2;
int LA235_0 = input.LA(1);
if ( (LA235_0==NL) ) {
alt235=1;
}
switch (alt235) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:757:38: NL
{
NL551=(Token)match(input,NL,FOLLOW_NL_in_p_bool_or_expr5324); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_bool_and_expr_in_p_bool_or_expr5328);
p_bool_and_expr552=p_bool_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_and_expr552.getTree());
}
break;
default :
break loop236;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_bool_or_expr"
public static class bool_and_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bool_and_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:759:1: bool_and_expr : bool_xor_expr ( ( NL )? token_AND ( NL )? bool_xor_expr )* ;
public final babel17Parser.bool_and_expr_return bool_and_expr() throws RecognitionException {
babel17Parser.bool_and_expr_return retval = new babel17Parser.bool_and_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL554=null;
Token NL556=null;
babel17Parser.bool_xor_expr_return bool_xor_expr553 = null;
babel17Parser.token_AND_return token_AND555 = null;
babel17Parser.bool_xor_expr_return bool_xor_expr557 = null;
CommonTree NL554_tree=null;
CommonTree NL556_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:2: ( bool_xor_expr ( ( NL )? token_AND ( NL )? bool_xor_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:4: bool_xor_expr ( ( NL )? token_AND ( NL )? bool_xor_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_bool_xor_expr_in_bool_and_expr5340);
bool_xor_expr553=bool_xor_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_xor_expr553.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:18: ( ( NL )? token_AND ( NL )? bool_xor_expr )*
loop239:
do {
int alt239=2;
int LA239_0 = input.LA(1);
if ( (LA239_0==NL) ) {
int LA239_1 = input.LA(2);
if ( (LA239_1==L_and) ) {
alt239=1;
}
}
else if ( (LA239_0==L_and) ) {
alt239=1;
}
switch (alt239) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:19: ( NL )? token_AND ( NL )? bool_xor_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:21: ( NL )?
int alt237=2;
int LA237_0 = input.LA(1);
if ( (LA237_0==NL) ) {
alt237=1;
}
switch (alt237) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:21: NL
{
NL554=(Token)match(input,NL,FOLLOW_NL_in_bool_and_expr5343); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_token_AND_in_bool_and_expr5347);
token_AND555=token_AND();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_AND555.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:37: ( NL )?
int alt238=2;
int LA238_0 = input.LA(1);
if ( (LA238_0==NL) ) {
alt238=1;
}
switch (alt238) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:760:37: NL
{
NL556=(Token)match(input,NL,FOLLOW_NL_in_bool_and_expr5350); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_bool_xor_expr_in_bool_and_expr5354);
bool_xor_expr557=bool_xor_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_xor_expr557.getTree());
}
break;
default :
break loop239;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "bool_and_expr"
public static class p_bool_and_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_bool_and_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:762:1: p_bool_and_expr : p_bool_xor_expr ( ( NL )? token_AND ( NL )? p_bool_xor_expr )* ;
public final babel17Parser.p_bool_and_expr_return p_bool_and_expr() throws RecognitionException {
babel17Parser.p_bool_and_expr_return retval = new babel17Parser.p_bool_and_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL559=null;
Token NL561=null;
babel17Parser.p_bool_xor_expr_return p_bool_xor_expr558 = null;
babel17Parser.token_AND_return token_AND560 = null;
babel17Parser.p_bool_xor_expr_return p_bool_xor_expr562 = null;
CommonTree NL559_tree=null;
CommonTree NL561_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:2: ( p_bool_xor_expr ( ( NL )? token_AND ( NL )? p_bool_xor_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:4: p_bool_xor_expr ( ( NL )? token_AND ( NL )? p_bool_xor_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_bool_xor_expr_in_p_bool_and_expr5366);
p_bool_xor_expr558=p_bool_xor_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_xor_expr558.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:20: ( ( NL )? token_AND ( NL )? p_bool_xor_expr )*
loop242:
do {
int alt242=2;
int LA242_0 = input.LA(1);
if ( (LA242_0==NL) ) {
int LA242_1 = input.LA(2);
if ( (LA242_1==L_and) ) {
alt242=1;
}
}
else if ( (LA242_0==L_and) ) {
alt242=1;
}
switch (alt242) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:21: ( NL )? token_AND ( NL )? p_bool_xor_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:23: ( NL )?
int alt240=2;
int LA240_0 = input.LA(1);
if ( (LA240_0==NL) ) {
alt240=1;
}
switch (alt240) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:23: NL
{
NL559=(Token)match(input,NL,FOLLOW_NL_in_p_bool_and_expr5369); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_token_AND_in_p_bool_and_expr5373);
token_AND560=token_AND();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_AND560.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:39: ( NL )?
int alt241=2;
int LA241_0 = input.LA(1);
if ( (LA241_0==NL) ) {
alt241=1;
}
switch (alt241) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:763:39: NL
{
NL561=(Token)match(input,NL,FOLLOW_NL_in_p_bool_and_expr5376); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_bool_xor_expr_in_p_bool_and_expr5380);
p_bool_xor_expr562=p_bool_xor_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_xor_expr562.getTree());
}
break;
default :
break loop242;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_bool_and_expr"
public static class bool_xor_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bool_xor_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:765:1: bool_xor_expr : bool_not_expr ( ( NL )? token_XOR ( NL )? bool_not_expr )* ;
public final babel17Parser.bool_xor_expr_return bool_xor_expr() throws RecognitionException {
babel17Parser.bool_xor_expr_return retval = new babel17Parser.bool_xor_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL564=null;
Token NL566=null;
babel17Parser.bool_not_expr_return bool_not_expr563 = null;
babel17Parser.token_XOR_return token_XOR565 = null;
babel17Parser.bool_not_expr_return bool_not_expr567 = null;
CommonTree NL564_tree=null;
CommonTree NL566_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:2: ( bool_not_expr ( ( NL )? token_XOR ( NL )? bool_not_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:4: bool_not_expr ( ( NL )? token_XOR ( NL )? bool_not_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_bool_not_expr_in_bool_xor_expr5391);
bool_not_expr563=bool_not_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_not_expr563.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:18: ( ( NL )? token_XOR ( NL )? bool_not_expr )*
loop245:
do {
int alt245=2;
int LA245_0 = input.LA(1);
if ( (LA245_0==NL) ) {
int LA245_1 = input.LA(2);
if ( (LA245_1==L_xor) ) {
alt245=1;
}
}
else if ( (LA245_0==L_xor) ) {
alt245=1;
}
switch (alt245) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:19: ( NL )? token_XOR ( NL )? bool_not_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:21: ( NL )?
int alt243=2;
int LA243_0 = input.LA(1);
if ( (LA243_0==NL) ) {
alt243=1;
}
switch (alt243) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:21: NL
{
NL564=(Token)match(input,NL,FOLLOW_NL_in_bool_xor_expr5394); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_token_XOR_in_bool_xor_expr5398);
token_XOR565=token_XOR();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_XOR565.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:37: ( NL )?
int alt244=2;
int LA244_0 = input.LA(1);
if ( (LA244_0==NL) ) {
alt244=1;
}
switch (alt244) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:766:37: NL
{
NL566=(Token)match(input,NL,FOLLOW_NL_in_bool_xor_expr5401); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_bool_not_expr_in_bool_xor_expr5405);
bool_not_expr567=bool_not_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_not_expr567.getTree());
}
break;
default :
break loop245;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "bool_xor_expr"
public static class p_bool_xor_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_bool_xor_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:768:1: p_bool_xor_expr : p_bool_not_expr ( ( NL )? token_XOR ( NL )? p_bool_not_expr )* ;
public final babel17Parser.p_bool_xor_expr_return p_bool_xor_expr() throws RecognitionException {
babel17Parser.p_bool_xor_expr_return retval = new babel17Parser.p_bool_xor_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL569=null;
Token NL571=null;
babel17Parser.p_bool_not_expr_return p_bool_not_expr568 = null;
babel17Parser.token_XOR_return token_XOR570 = null;
babel17Parser.p_bool_not_expr_return p_bool_not_expr572 = null;
CommonTree NL569_tree=null;
CommonTree NL571_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:2: ( p_bool_not_expr ( ( NL )? token_XOR ( NL )? p_bool_not_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:4: p_bool_not_expr ( ( NL )? token_XOR ( NL )? p_bool_not_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_bool_not_expr_in_p_bool_xor_expr5417);
p_bool_not_expr568=p_bool_not_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_not_expr568.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:20: ( ( NL )? token_XOR ( NL )? p_bool_not_expr )*
loop248:
do {
int alt248=2;
int LA248_0 = input.LA(1);
if ( (LA248_0==NL) ) {
int LA248_1 = input.LA(2);
if ( (LA248_1==L_xor) ) {
alt248=1;
}
}
else if ( (LA248_0==L_xor) ) {
alt248=1;
}
switch (alt248) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:21: ( NL )? token_XOR ( NL )? p_bool_not_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:23: ( NL )?
int alt246=2;
int LA246_0 = input.LA(1);
if ( (LA246_0==NL) ) {
alt246=1;
}
switch (alt246) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:23: NL
{
NL569=(Token)match(input,NL,FOLLOW_NL_in_p_bool_xor_expr5420); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_token_XOR_in_p_bool_xor_expr5424);
token_XOR570=token_XOR();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_XOR570.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:39: ( NL )?
int alt247=2;
int LA247_0 = input.LA(1);
if ( (LA247_0==NL) ) {
alt247=1;
}
switch (alt247) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:769:39: NL
{
NL571=(Token)match(input,NL,FOLLOW_NL_in_p_bool_xor_expr5427); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_bool_not_expr_in_p_bool_xor_expr5431);
p_bool_not_expr572=p_bool_not_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_not_expr572.getTree());
}
break;
default :
break loop248;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_bool_xor_expr"
public static class bool_not_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bool_not_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:771:1: bool_not_expr : ( token_NOT ( NL )? bool_not_expr | rel_expr );
public final babel17Parser.bool_not_expr_return bool_not_expr() throws RecognitionException {
babel17Parser.bool_not_expr_return retval = new babel17Parser.bool_not_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL574=null;
babel17Parser.token_NOT_return token_NOT573 = null;
babel17Parser.bool_not_expr_return bool_not_expr575 = null;
babel17Parser.rel_expr_return rel_expr576 = null;
CommonTree NL574_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:772:2: ( token_NOT ( NL )? bool_not_expr | rel_expr )
int alt250=2;
int LA250_0 = input.LA(1);
if ( (LA250_0==L_not) ) {
alt250=1;
}
else if ( (LA250_0==L_begin||(LA250_0>=L_obj && LA250_0<=L_if)||(LA250_0>=L_while && LA250_0<=L_for)||LA250_0==L_match||LA250_0==L_try||LA250_0==L_choose||(LA250_0>=L_true && LA250_0<=L_nil)||LA250_0==L_typeof||(LA250_0>=L_root && LA250_0<=L_max)||LA250_0==MINUS||(LA250_0>=Constr && LA250_0<=Id)||(LA250_0>=Float && LA250_0<=Num)||(LA250_0>=String && LA250_0<=ROUND_BRACKET_OPEN)||LA250_0==SQUARE_BRACKET_OPEN||LA250_0==CURLY_BRACKET_OPEN) ) {
alt250=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 250, 0, input);
throw nvae;
}
switch (alt250) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:772:4: token_NOT ( NL )? bool_not_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_NOT_in_bool_not_expr5442);
token_NOT573=token_NOT();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_NOT573.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:772:17: ( NL )?
int alt249=2;
int LA249_0 = input.LA(1);
if ( (LA249_0==NL) ) {
alt249=1;
}
switch (alt249) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:772:17: NL
{
NL574=(Token)match(input,NL,FOLLOW_NL_in_bool_not_expr5445); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_bool_not_expr_in_bool_not_expr5449);
bool_not_expr575=bool_not_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bool_not_expr575.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:773:4: rel_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_rel_expr_in_bool_not_expr5454);
rel_expr576=rel_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, rel_expr576.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "bool_not_expr"
public static class p_bool_not_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_bool_not_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:775:1: p_bool_not_expr : ( token_NOT ( NL )? p_bool_not_expr | p_rel_expr );
public final babel17Parser.p_bool_not_expr_return p_bool_not_expr() throws RecognitionException {
babel17Parser.p_bool_not_expr_return retval = new babel17Parser.p_bool_not_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL578=null;
babel17Parser.token_NOT_return token_NOT577 = null;
babel17Parser.p_bool_not_expr_return p_bool_not_expr579 = null;
babel17Parser.p_rel_expr_return p_rel_expr580 = null;
CommonTree NL578_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:776:2: ( token_NOT ( NL )? p_bool_not_expr | p_rel_expr )
int alt252=2;
int LA252_0 = input.LA(1);
if ( (LA252_0==L_not) ) {
alt252=1;
}
else if ( (LA252_0==L_begin||(LA252_0>=L_obj && LA252_0<=L_if)||(LA252_0>=L_while && LA252_0<=L_for)||LA252_0==L_match||LA252_0==L_try||LA252_0==L_choose||(LA252_0>=L_true && LA252_0<=L_nil)||LA252_0==L_typeof||(LA252_0>=L_root && LA252_0<=L_max)||LA252_0==MINUS||(LA252_0>=Constr && LA252_0<=Id)||(LA252_0>=Float && LA252_0<=Num)||(LA252_0>=String && LA252_0<=ROUND_BRACKET_OPEN)||LA252_0==SQUARE_BRACKET_OPEN||LA252_0==CURLY_BRACKET_OPEN) ) {
alt252=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 252, 0, input);
throw nvae;
}
switch (alt252) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:776:4: token_NOT ( NL )? p_bool_not_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_NOT_in_p_bool_not_expr5465);
token_NOT577=token_NOT();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(token_NOT577.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:776:17: ( NL )?
int alt251=2;
int LA251_0 = input.LA(1);
if ( (LA251_0==NL) ) {
alt251=1;
}
switch (alt251) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:776:17: NL
{
NL578=(Token)match(input,NL,FOLLOW_NL_in_p_bool_not_expr5468); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_bool_not_expr_in_p_bool_not_expr5472);
p_bool_not_expr579=p_bool_not_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_bool_not_expr579.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:777:4: p_rel_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_rel_expr_in_p_bool_not_expr5477);
p_rel_expr580=p_rel_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_rel_expr580.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_bool_not_expr"
public static class rel_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "rel_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:780:1: rel_expr : relate_expr ( ( NL )? rel_op ( NL )? relate_expr )* -> ^( COMPARE relate_expr ( rel_op relate_expr )* ) ;
public final babel17Parser.rel_expr_return rel_expr() throws RecognitionException {
babel17Parser.rel_expr_return retval = new babel17Parser.rel_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL582=null;
Token NL584=null;
babel17Parser.relate_expr_return relate_expr581 = null;
babel17Parser.rel_op_return rel_op583 = null;
babel17Parser.relate_expr_return relate_expr585 = null;
CommonTree NL582_tree=null;
CommonTree NL584_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_relate_expr=new RewriteRuleSubtreeStream(adaptor,"rule relate_expr");
RewriteRuleSubtreeStream stream_rel_op=new RewriteRuleSubtreeStream(adaptor,"rule rel_op");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:2: ( relate_expr ( ( NL )? rel_op ( NL )? relate_expr )* -> ^( COMPARE relate_expr ( rel_op relate_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:4: relate_expr ( ( NL )? rel_op ( NL )? relate_expr )*
{
pushFollow(FOLLOW_relate_expr_in_rel_expr5487);
relate_expr581=relate_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relate_expr.add(relate_expr581.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:16: ( ( NL )? rel_op ( NL )? relate_expr )*
loop255:
do {
int alt255=2;
int LA255_0 = input.LA(1);
if ( (LA255_0==NL) ) {
int LA255_1 = input.LA(2);
if ( ((LA255_1>=A_EQUAL && LA255_1<=U_GREATER_EQ)) ) {
alt255=1;
}
}
else if ( ((LA255_0>=A_EQUAL && LA255_0<=U_GREATER_EQ)) ) {
alt255=1;
}
switch (alt255) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:17: ( NL )? rel_op ( NL )? relate_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:17: ( NL )?
int alt253=2;
int LA253_0 = input.LA(1);
if ( (LA253_0==NL) ) {
alt253=1;
}
switch (alt253) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:17: NL
{
NL582=(Token)match(input,NL,FOLLOW_NL_in_rel_expr5490); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL582);
}
break;
}
pushFollow(FOLLOW_rel_op_in_rel_expr5493);
rel_op583=rel_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rel_op.add(rel_op583.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:28: ( NL )?
int alt254=2;
int LA254_0 = input.LA(1);
if ( (LA254_0==NL) ) {
alt254=1;
}
switch (alt254) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:28: NL
{
NL584=(Token)match(input,NL,FOLLOW_NL_in_rel_expr5495); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL584);
}
break;
}
pushFollow(FOLLOW_relate_expr_in_rel_expr5498);
relate_expr585=relate_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relate_expr.add(relate_expr585.getTree());
}
break;
default :
break loop255;
}
} while (true);
// AST REWRITE
// elements: relate_expr, relate_expr, rel_op
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 781:46: -> ^( COMPARE relate_expr ( rel_op relate_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:49: ^( COMPARE relate_expr ( rel_op relate_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPARE, "COMPARE"), root_1);
adaptor.addChild(root_1, stream_relate_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:781:71: ( rel_op relate_expr )*
while ( stream_relate_expr.hasNext()||stream_rel_op.hasNext() ) {
adaptor.addChild(root_1, stream_rel_op.nextTree());
adaptor.addChild(root_1, stream_relate_expr.nextTree());
}
stream_relate_expr.reset();
stream_rel_op.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "rel_expr"
public static class p_rel_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_rel_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:783:1: p_rel_expr : p_relate_expr ( ( NL )? rel_op ( NL )? p_relate_expr )* -> ^( COMPARE p_relate_expr ( rel_op p_relate_expr )* ) ;
public final babel17Parser.p_rel_expr_return p_rel_expr() throws RecognitionException {
babel17Parser.p_rel_expr_return retval = new babel17Parser.p_rel_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL587=null;
Token NL589=null;
babel17Parser.p_relate_expr_return p_relate_expr586 = null;
babel17Parser.rel_op_return rel_op588 = null;
babel17Parser.p_relate_expr_return p_relate_expr590 = null;
CommonTree NL587_tree=null;
CommonTree NL589_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_p_relate_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_relate_expr");
RewriteRuleSubtreeStream stream_rel_op=new RewriteRuleSubtreeStream(adaptor,"rule rel_op");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:2: ( p_relate_expr ( ( NL )? rel_op ( NL )? p_relate_expr )* -> ^( COMPARE p_relate_expr ( rel_op p_relate_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:4: p_relate_expr ( ( NL )? rel_op ( NL )? p_relate_expr )*
{
pushFollow(FOLLOW_p_relate_expr_in_p_rel_expr5525);
p_relate_expr586=p_relate_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_relate_expr.add(p_relate_expr586.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:18: ( ( NL )? rel_op ( NL )? p_relate_expr )*
loop258:
do {
int alt258=2;
int LA258_0 = input.LA(1);
if ( (LA258_0==NL) ) {
int LA258_1 = input.LA(2);
if ( ((LA258_1>=A_EQUAL && LA258_1<=U_GREATER_EQ)) ) {
alt258=1;
}
}
else if ( ((LA258_0>=A_EQUAL && LA258_0<=U_GREATER_EQ)) ) {
alt258=1;
}
switch (alt258) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:19: ( NL )? rel_op ( NL )? p_relate_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:19: ( NL )?
int alt256=2;
int LA256_0 = input.LA(1);
if ( (LA256_0==NL) ) {
alt256=1;
}
switch (alt256) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:19: NL
{
NL587=(Token)match(input,NL,FOLLOW_NL_in_p_rel_expr5528); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL587);
}
break;
}
pushFollow(FOLLOW_rel_op_in_p_rel_expr5531);
rel_op588=rel_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rel_op.add(rel_op588.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:30: ( NL )?
int alt257=2;
int LA257_0 = input.LA(1);
if ( (LA257_0==NL) ) {
alt257=1;
}
switch (alt257) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:30: NL
{
NL589=(Token)match(input,NL,FOLLOW_NL_in_p_rel_expr5533); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL589);
}
break;
}
pushFollow(FOLLOW_p_relate_expr_in_p_rel_expr5536);
p_relate_expr590=p_relate_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_relate_expr.add(p_relate_expr590.getTree());
}
break;
default :
break loop258;
}
} while (true);
// AST REWRITE
// elements: rel_op, p_relate_expr, p_relate_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 784:50: -> ^( COMPARE p_relate_expr ( rel_op p_relate_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:53: ^( COMPARE p_relate_expr ( rel_op p_relate_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPARE, "COMPARE"), root_1);
adaptor.addChild(root_1, stream_p_relate_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:784:77: ( rel_op p_relate_expr )*
while ( stream_rel_op.hasNext()||stream_p_relate_expr.hasNext() ) {
adaptor.addChild(root_1, stream_rel_op.nextTree());
adaptor.addChild(root_1, stream_p_relate_expr.nextTree());
}
stream_rel_op.reset();
stream_p_relate_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_rel_expr"
public static class rel_op_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "rel_op"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:1: rel_op : ( token_EQUAL | token_NOT_EQUAL | GREATER | token_GREATER_EQ | LESS | token_LESS_EQ );
public final babel17Parser.rel_op_return rel_op() throws RecognitionException {
babel17Parser.rel_op_return retval = new babel17Parser.rel_op_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token GREATER593=null;
Token LESS595=null;
babel17Parser.token_EQUAL_return token_EQUAL591 = null;
babel17Parser.token_NOT_EQUAL_return token_NOT_EQUAL592 = null;
babel17Parser.token_GREATER_EQ_return token_GREATER_EQ594 = null;
babel17Parser.token_LESS_EQ_return token_LESS_EQ596 = null;
CommonTree GREATER593_tree=null;
CommonTree LESS595_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:8: ( token_EQUAL | token_NOT_EQUAL | GREATER | token_GREATER_EQ | LESS | token_LESS_EQ )
int alt259=6;
switch ( input.LA(1) ) {
case A_EQUAL:
case U_EQUAL:
{
alt259=1;
}
break;
case A_NOT_EQUAL:
case U_NOT_EQUAL:
{
alt259=2;
}
break;
case GREATER:
{
alt259=3;
}
break;
case A_GREATER_EQ:
case U_GREATER_EQ:
{
alt259=4;
}
break;
case LESS:
{
alt259=5;
}
break;
case A_LESS_EQ:
case U_LESS_EQ:
{
alt259=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 259, 0, input);
throw nvae;
}
switch (alt259) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:10: token_EQUAL
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_EQUAL_in_rel_op5562);
token_EQUAL591=token_EQUAL();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_EQUAL591.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:24: token_NOT_EQUAL
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_NOT_EQUAL_in_rel_op5566);
token_NOT_EQUAL592=token_NOT_EQUAL();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_NOT_EQUAL592.getTree());
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:42: GREATER
{
root_0 = (CommonTree)adaptor.nil();
GREATER593=(Token)match(input,GREATER,FOLLOW_GREATER_in_rel_op5570); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GREATER593_tree = (CommonTree)adaptor.create(GREATER593);
adaptor.addChild(root_0, GREATER593_tree);
}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:52: token_GREATER_EQ
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_GREATER_EQ_in_rel_op5574);
token_GREATER_EQ594=token_GREATER_EQ();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_GREATER_EQ594.getTree());
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:71: LESS
{
root_0 = (CommonTree)adaptor.nil();
LESS595=(Token)match(input,LESS,FOLLOW_LESS_in_rel_op5578); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LESS595_tree = (CommonTree)adaptor.create(LESS595);
adaptor.addChild(root_0, LESS595_tree);
}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:787:78: token_LESS_EQ
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_token_LESS_EQ_in_rel_op5582);
token_LESS_EQ596=token_LESS_EQ();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, token_LESS_EQ596.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "rel_op"
public static class relate_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "relate_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:1: relate_expr : convert_expr ( ( NL )? TOK_RELATE ( NL )? convert_expr )? -> ^( RELATE ( convert_expr )* ) ;
public final babel17Parser.relate_expr_return relate_expr() throws RecognitionException {
babel17Parser.relate_expr_return retval = new babel17Parser.relate_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL598=null;
Token TOK_RELATE599=null;
Token NL600=null;
babel17Parser.convert_expr_return convert_expr597 = null;
babel17Parser.convert_expr_return convert_expr601 = null;
CommonTree NL598_tree=null;
CommonTree TOK_RELATE599_tree=null;
CommonTree NL600_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_TOK_RELATE=new RewriteRuleTokenStream(adaptor,"token TOK_RELATE");
RewriteRuleSubtreeStream stream_convert_expr=new RewriteRuleSubtreeStream(adaptor,"rule convert_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:12: ( convert_expr ( ( NL )? TOK_RELATE ( NL )? convert_expr )? -> ^( RELATE ( convert_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:14: convert_expr ( ( NL )? TOK_RELATE ( NL )? convert_expr )?
{
pushFollow(FOLLOW_convert_expr_in_relate_expr5591);
convert_expr597=convert_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_convert_expr.add(convert_expr597.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:27: ( ( NL )? TOK_RELATE ( NL )? convert_expr )?
int alt262=2;
int LA262_0 = input.LA(1);
if ( (LA262_0==NL) ) {
int LA262_1 = input.LA(2);
if ( (LA262_1==TOK_RELATE) ) {
alt262=1;
}
}
else if ( (LA262_0==TOK_RELATE) ) {
alt262=1;
}
switch (alt262) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:28: ( NL )? TOK_RELATE ( NL )? convert_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:28: ( NL )?
int alt260=2;
int LA260_0 = input.LA(1);
if ( (LA260_0==NL) ) {
alt260=1;
}
switch (alt260) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:28: NL
{
NL598=(Token)match(input,NL,FOLLOW_NL_in_relate_expr5594); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL598);
}
break;
}
TOK_RELATE599=(Token)match(input,TOK_RELATE,FOLLOW_TOK_RELATE_in_relate_expr5597); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TOK_RELATE.add(TOK_RELATE599);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:43: ( NL )?
int alt261=2;
int LA261_0 = input.LA(1);
if ( (LA261_0==NL) ) {
alt261=1;
}
switch (alt261) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:43: NL
{
NL600=(Token)match(input,NL,FOLLOW_NL_in_relate_expr5599); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL600);
}
break;
}
pushFollow(FOLLOW_convert_expr_in_relate_expr5602);
convert_expr601=convert_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_convert_expr.add(convert_expr601.getTree());
}
break;
}
// AST REWRITE
// elements: convert_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 789:62: -> ^( RELATE ( convert_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:65: ^( RELATE ( convert_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RELATE, "RELATE"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:789:74: ( convert_expr )*
while ( stream_convert_expr.hasNext() ) {
adaptor.addChild(root_1, stream_convert_expr.nextTree());
}
stream_convert_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "relate_expr"
public static class p_relate_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_relate_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:1: p_relate_expr : p_convert_expr ( ( NL )? TOK_RELATE ( NL )? p_convert_expr )? -> ^( RELATE ( p_convert_expr )* ) ;
public final babel17Parser.p_relate_expr_return p_relate_expr() throws RecognitionException {
babel17Parser.p_relate_expr_return retval = new babel17Parser.p_relate_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL603=null;
Token TOK_RELATE604=null;
Token NL605=null;
babel17Parser.p_convert_expr_return p_convert_expr602 = null;
babel17Parser.p_convert_expr_return p_convert_expr606 = null;
CommonTree NL603_tree=null;
CommonTree TOK_RELATE604_tree=null;
CommonTree NL605_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_TOK_RELATE=new RewriteRuleTokenStream(adaptor,"token TOK_RELATE");
RewriteRuleSubtreeStream stream_p_convert_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_convert_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:14: ( p_convert_expr ( ( NL )? TOK_RELATE ( NL )? p_convert_expr )? -> ^( RELATE ( p_convert_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:16: p_convert_expr ( ( NL )? TOK_RELATE ( NL )? p_convert_expr )?
{
pushFollow(FOLLOW_p_convert_expr_in_p_relate_expr5621);
p_convert_expr602=p_convert_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_convert_expr.add(p_convert_expr602.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:31: ( ( NL )? TOK_RELATE ( NL )? p_convert_expr )?
int alt265=2;
int LA265_0 = input.LA(1);
if ( (LA265_0==NL) ) {
int LA265_1 = input.LA(2);
if ( (LA265_1==TOK_RELATE) ) {
alt265=1;
}
}
else if ( (LA265_0==TOK_RELATE) ) {
alt265=1;
}
switch (alt265) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:32: ( NL )? TOK_RELATE ( NL )? p_convert_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:32: ( NL )?
int alt263=2;
int LA263_0 = input.LA(1);
if ( (LA263_0==NL) ) {
alt263=1;
}
switch (alt263) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:32: NL
{
NL603=(Token)match(input,NL,FOLLOW_NL_in_p_relate_expr5624); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL603);
}
break;
}
TOK_RELATE604=(Token)match(input,TOK_RELATE,FOLLOW_TOK_RELATE_in_p_relate_expr5627); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TOK_RELATE.add(TOK_RELATE604);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:47: ( NL )?
int alt264=2;
int LA264_0 = input.LA(1);
if ( (LA264_0==NL) ) {
alt264=1;
}
switch (alt264) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:47: NL
{
NL605=(Token)match(input,NL,FOLLOW_NL_in_p_relate_expr5629); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL605);
}
break;
}
pushFollow(FOLLOW_p_convert_expr_in_p_relate_expr5632);
p_convert_expr606=p_convert_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_convert_expr.add(p_convert_expr606.getTree());
}
break;
}
// AST REWRITE
// elements: p_convert_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 791:68: -> ^( RELATE ( p_convert_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:71: ^( RELATE ( p_convert_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RELATE, "RELATE"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:791:80: ( p_convert_expr )*
while ( stream_p_convert_expr.hasNext() ) {
adaptor.addChild(root_1, stream_p_convert_expr.nextTree());
}
stream_p_convert_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_relate_expr"
public static class convert_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "convert_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:793:1: convert_expr : term_expr ( ( NL )? TOK_CONVERT ( NL )? typeannotation )? -> ^( CONVERT term_expr ( typeannotation )? ) ;
public final babel17Parser.convert_expr_return convert_expr() throws RecognitionException {
babel17Parser.convert_expr_return retval = new babel17Parser.convert_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL608=null;
Token TOK_CONVERT609=null;
Token NL610=null;
babel17Parser.term_expr_return term_expr607 = null;
babel17Parser.typeannotation_return typeannotation611 = null;
CommonTree NL608_tree=null;
CommonTree TOK_CONVERT609_tree=null;
CommonTree NL610_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_TOK_CONVERT=new RewriteRuleTokenStream(adaptor,"token TOK_CONVERT");
RewriteRuleSubtreeStream stream_typeannotation=new RewriteRuleSubtreeStream(adaptor,"rule typeannotation");
RewriteRuleSubtreeStream stream_term_expr=new RewriteRuleSubtreeStream(adaptor,"rule term_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:2: ( term_expr ( ( NL )? TOK_CONVERT ( NL )? typeannotation )? -> ^( CONVERT term_expr ( typeannotation )? ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:4: term_expr ( ( NL )? TOK_CONVERT ( NL )? typeannotation )?
{
pushFollow(FOLLOW_term_expr_in_convert_expr5653);
term_expr607=term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term_expr.add(term_expr607.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:14: ( ( NL )? TOK_CONVERT ( NL )? typeannotation )?
int alt268=2;
int LA268_0 = input.LA(1);
if ( (LA268_0==NL) ) {
int LA268_1 = input.LA(2);
if ( (LA268_1==TOK_CONVERT) ) {
alt268=1;
}
}
else if ( (LA268_0==TOK_CONVERT) ) {
alt268=1;
}
switch (alt268) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:15: ( NL )? TOK_CONVERT ( NL )? typeannotation
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:15: ( NL )?
int alt266=2;
int LA266_0 = input.LA(1);
if ( (LA266_0==NL) ) {
alt266=1;
}
switch (alt266) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:15: NL
{
NL608=(Token)match(input,NL,FOLLOW_NL_in_convert_expr5656); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL608);
}
break;
}
TOK_CONVERT609=(Token)match(input,TOK_CONVERT,FOLLOW_TOK_CONVERT_in_convert_expr5659); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TOK_CONVERT.add(TOK_CONVERT609);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:31: ( NL )?
int alt267=2;
int LA267_0 = input.LA(1);
if ( (LA267_0==NL) ) {
alt267=1;
}
switch (alt267) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:31: NL
{
NL610=(Token)match(input,NL,FOLLOW_NL_in_convert_expr5661); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL610);
}
break;
}
pushFollow(FOLLOW_typeannotation_in_convert_expr5664);
typeannotation611=typeannotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeannotation.add(typeannotation611.getTree());
}
break;
}
// AST REWRITE
// elements: typeannotation, term_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 794:52: -> ^( CONVERT term_expr ( typeannotation )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:55: ^( CONVERT term_expr ( typeannotation )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CONVERT, "CONVERT"), root_1);
adaptor.addChild(root_1, stream_term_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:794:75: ( typeannotation )?
if ( stream_typeannotation.hasNext() ) {
adaptor.addChild(root_1, stream_typeannotation.nextTree());
}
stream_typeannotation.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "convert_expr"
public static class p_convert_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_convert_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:796:1: p_convert_expr : p_term_expr ( ( NL )? TOK_CONVERT ( NL )? typeannotation )? -> ^( CONVERT p_term_expr ( typeannotation )? ) ;
public final babel17Parser.p_convert_expr_return p_convert_expr() throws RecognitionException {
babel17Parser.p_convert_expr_return retval = new babel17Parser.p_convert_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL613=null;
Token TOK_CONVERT614=null;
Token NL615=null;
babel17Parser.p_term_expr_return p_term_expr612 = null;
babel17Parser.typeannotation_return typeannotation616 = null;
CommonTree NL613_tree=null;
CommonTree TOK_CONVERT614_tree=null;
CommonTree NL615_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_TOK_CONVERT=new RewriteRuleTokenStream(adaptor,"token TOK_CONVERT");
RewriteRuleSubtreeStream stream_typeannotation=new RewriteRuleSubtreeStream(adaptor,"rule typeannotation");
RewriteRuleSubtreeStream stream_p_term_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_term_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:2: ( p_term_expr ( ( NL )? TOK_CONVERT ( NL )? typeannotation )? -> ^( CONVERT p_term_expr ( typeannotation )? ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:4: p_term_expr ( ( NL )? TOK_CONVERT ( NL )? typeannotation )?
{
pushFollow(FOLLOW_p_term_expr_in_p_convert_expr5686);
p_term_expr612=p_term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_term_expr.add(p_term_expr612.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:16: ( ( NL )? TOK_CONVERT ( NL )? typeannotation )?
int alt271=2;
int LA271_0 = input.LA(1);
if ( (LA271_0==NL) ) {
int LA271_1 = input.LA(2);
if ( (LA271_1==TOK_CONVERT) ) {
alt271=1;
}
}
else if ( (LA271_0==TOK_CONVERT) ) {
alt271=1;
}
switch (alt271) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:17: ( NL )? TOK_CONVERT ( NL )? typeannotation
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:17: ( NL )?
int alt269=2;
int LA269_0 = input.LA(1);
if ( (LA269_0==NL) ) {
alt269=1;
}
switch (alt269) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:17: NL
{
NL613=(Token)match(input,NL,FOLLOW_NL_in_p_convert_expr5689); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL613);
}
break;
}
TOK_CONVERT614=(Token)match(input,TOK_CONVERT,FOLLOW_TOK_CONVERT_in_p_convert_expr5692); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TOK_CONVERT.add(TOK_CONVERT614);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:33: ( NL )?
int alt270=2;
int LA270_0 = input.LA(1);
if ( (LA270_0==NL) ) {
alt270=1;
}
switch (alt270) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:33: NL
{
NL615=(Token)match(input,NL,FOLLOW_NL_in_p_convert_expr5694); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL615);
}
break;
}
pushFollow(FOLLOW_typeannotation_in_p_convert_expr5697);
typeannotation616=typeannotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeannotation.add(typeannotation616.getTree());
}
break;
}
// AST REWRITE
// elements: typeannotation, p_term_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 797:54: -> ^( CONVERT p_term_expr ( typeannotation )? )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:57: ^( CONVERT p_term_expr ( typeannotation )? )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CONVERT, "CONVERT"), root_1);
adaptor.addChild(root_1, stream_p_term_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:797:79: ( typeannotation )?
if ( stream_typeannotation.hasNext() ) {
adaptor.addChild(root_1, stream_typeannotation.nextTree());
}
stream_typeannotation.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_convert_expr"
public static class term_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "term_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:799:1: term_expr : ( builtin_fun term_expr | arith_expr );
public final babel17Parser.term_expr_return term_expr() throws RecognitionException {
babel17Parser.term_expr_return retval = new babel17Parser.term_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.builtin_fun_return builtin_fun617 = null;
babel17Parser.term_expr_return term_expr618 = null;
babel17Parser.arith_expr_return arith_expr619 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:800:2: ( builtin_fun term_expr | arith_expr )
int alt272=2;
int LA272_0 = input.LA(1);
if ( (LA272_0==L_choose||LA272_0==L_random||LA272_0==L_typeof||(LA272_0>=L_native && LA272_0<=L_max)) ) {
alt272=1;
}
else if ( (LA272_0==L_begin||(LA272_0>=L_obj && LA272_0<=L_if)||(LA272_0>=L_while && LA272_0<=L_for)||LA272_0==L_match||LA272_0==L_try||(LA272_0>=L_true && LA272_0<=L_this)||LA272_0==L_nil||LA272_0==L_root||LA272_0==MINUS||(LA272_0>=Constr && LA272_0<=Id)||(LA272_0>=Float && LA272_0<=Num)||(LA272_0>=String && LA272_0<=ROUND_BRACKET_OPEN)||LA272_0==SQUARE_BRACKET_OPEN||LA272_0==CURLY_BRACKET_OPEN) ) {
alt272=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 272, 0, input);
throw nvae;
}
switch (alt272) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:800:4: builtin_fun term_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_builtin_fun_in_term_expr5720);
builtin_fun617=builtin_fun();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(builtin_fun617.getTree(), root_0);
pushFollow(FOLLOW_term_expr_in_term_expr5723);
term_expr618=term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, term_expr618.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:801:4: arith_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_arith_expr_in_term_expr5728);
arith_expr619=arith_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_expr619.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "term_expr"
public static class p_term_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_term_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:803:1: p_term_expr : ( builtin_fun ( NL )? p_term_expr | p_arith_expr );
public final babel17Parser.p_term_expr_return p_term_expr() throws RecognitionException {
babel17Parser.p_term_expr_return retval = new babel17Parser.p_term_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL621=null;
babel17Parser.builtin_fun_return builtin_fun620 = null;
babel17Parser.p_term_expr_return p_term_expr622 = null;
babel17Parser.p_arith_expr_return p_arith_expr623 = null;
CommonTree NL621_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:804:2: ( builtin_fun ( NL )? p_term_expr | p_arith_expr )
int alt274=2;
int LA274_0 = input.LA(1);
if ( (LA274_0==L_choose||LA274_0==L_random||LA274_0==L_typeof||(LA274_0>=L_native && LA274_0<=L_max)) ) {
alt274=1;
}
else if ( (LA274_0==L_begin||(LA274_0>=L_obj && LA274_0<=L_if)||(LA274_0>=L_while && LA274_0<=L_for)||LA274_0==L_match||LA274_0==L_try||(LA274_0>=L_true && LA274_0<=L_this)||LA274_0==L_nil||LA274_0==L_root||LA274_0==MINUS||(LA274_0>=Constr && LA274_0<=Id)||(LA274_0>=Float && LA274_0<=Num)||(LA274_0>=String && LA274_0<=ROUND_BRACKET_OPEN)||LA274_0==SQUARE_BRACKET_OPEN||LA274_0==CURLY_BRACKET_OPEN) ) {
alt274=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 274, 0, input);
throw nvae;
}
switch (alt274) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:804:4: builtin_fun ( NL )? p_term_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_builtin_fun_in_p_term_expr5738);
builtin_fun620=builtin_fun();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot(builtin_fun620.getTree(), root_0);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:804:19: ( NL )?
int alt273=2;
int LA273_0 = input.LA(1);
if ( (LA273_0==NL) ) {
alt273=1;
}
switch (alt273) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:804:19: NL
{
NL621=(Token)match(input,NL,FOLLOW_NL_in_p_term_expr5741); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_term_expr_in_p_term_expr5745);
p_term_expr622=p_term_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_term_expr622.getTree());
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:805:4: p_arith_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_arith_expr_in_p_term_expr5750);
p_arith_expr623=p_arith_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_expr623.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_term_expr"
public static class builtin_fun_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "builtin_fun"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:807:1: builtin_fun : ( L_random | L_choose | L_typeof | L_native | L_min | L_max );
public final babel17Parser.builtin_fun_return builtin_fun() throws RecognitionException {
babel17Parser.builtin_fun_return retval = new babel17Parser.builtin_fun_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token set624=null;
CommonTree set624_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:808:2: ( L_random | L_choose | L_typeof | L_native | L_min | L_max )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:
{
root_0 = (CommonTree)adaptor.nil();
set624=(Token)input.LT(1);
if ( input.LA(1)==L_choose||input.LA(1)==L_random||input.LA(1)==L_typeof||(input.LA(1)>=L_native && input.LA(1)<=L_max) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set624));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "builtin_fun"
public static class arith_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:810:1: arith_expr : plusplus_expr ;
public final babel17Parser.arith_expr_return arith_expr() throws RecognitionException {
babel17Parser.arith_expr_return retval = new babel17Parser.arith_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.plusplus_expr_return plusplus_expr625 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:811:2: ( plusplus_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:811:4: plusplus_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_plusplus_expr_in_arith_expr5788);
plusplus_expr625=plusplus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, plusplus_expr625.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arith_expr"
public static class p_arith_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_arith_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:813:1: p_arith_expr : p_plusplus_expr ;
public final babel17Parser.p_arith_expr_return p_arith_expr() throws RecognitionException {
babel17Parser.p_arith_expr_return retval = new babel17Parser.p_arith_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.p_plusplus_expr_return p_plusplus_expr626 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:814:2: ( p_plusplus_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:814:4: p_plusplus_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_plusplus_expr_in_p_arith_expr5797);
p_plusplus_expr626=p_plusplus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_plusplus_expr626.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_arith_expr"
public static class plusplus_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "plusplus_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:816:1: plusplus_expr : timestimes_expr ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? timestimes_expr )* ;
public final babel17Parser.plusplus_expr_return plusplus_expr() throws RecognitionException {
babel17Parser.plusplus_expr_return retval = new babel17Parser.plusplus_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL628=null;
Token PLUSPLUS629=null;
Token MINUSMINUS630=null;
Token NL631=null;
babel17Parser.timestimes_expr_return timestimes_expr627 = null;
babel17Parser.timestimes_expr_return timestimes_expr632 = null;
CommonTree NL628_tree=null;
CommonTree PLUSPLUS629_tree=null;
CommonTree MINUSMINUS630_tree=null;
CommonTree NL631_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:2: ( timestimes_expr ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? timestimes_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:4: timestimes_expr ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? timestimes_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_timestimes_expr_in_plusplus_expr5807);
timestimes_expr627=timestimes_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, timestimes_expr627.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:20: ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? timestimes_expr )*
loop278:
do {
int alt278=2;
int LA278_0 = input.LA(1);
if ( (LA278_0==NL) ) {
int LA278_1 = input.LA(2);
if ( ((LA278_1>=PLUSPLUS && LA278_1<=MINUSMINUS)) ) {
alt278=1;
}
}
else if ( ((LA278_0>=PLUSPLUS && LA278_0<=MINUSMINUS)) ) {
alt278=1;
}
switch (alt278) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:21: ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? timestimes_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:23: ( NL )?
int alt275=2;
int LA275_0 = input.LA(1);
if ( (LA275_0==NL) ) {
alt275=1;
}
switch (alt275) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:23: NL
{
NL628=(Token)match(input,NL,FOLLOW_NL_in_plusplus_expr5810); if (state.failed) return retval;
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:26: ( PLUSPLUS | MINUSMINUS )
int alt276=2;
int LA276_0 = input.LA(1);
if ( (LA276_0==PLUSPLUS) ) {
alt276=1;
}
else if ( (LA276_0==MINUSMINUS) ) {
alt276=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 276, 0, input);
throw nvae;
}
switch (alt276) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:27: PLUSPLUS
{
PLUSPLUS629=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_plusplus_expr5815); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUSPLUS629_tree = (CommonTree)adaptor.create(PLUSPLUS629);
root_0 = (CommonTree)adaptor.becomeRoot(PLUSPLUS629_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:37: MINUSMINUS
{
MINUSMINUS630=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_plusplus_expr5818); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSMINUS630_tree = (CommonTree)adaptor.create(MINUSMINUS630);
root_0 = (CommonTree)adaptor.becomeRoot(MINUSMINUS630_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:52: ( NL )?
int alt277=2;
int LA277_0 = input.LA(1);
if ( (LA277_0==NL) ) {
alt277=1;
}
switch (alt277) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:817:52: NL
{
NL631=(Token)match(input,NL,FOLLOW_NL_in_plusplus_expr5822); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_timestimes_expr_in_plusplus_expr5826);
timestimes_expr632=timestimes_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, timestimes_expr632.getTree());
}
break;
default :
break loop278;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "plusplus_expr"
public static class p_plusplus_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_plusplus_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:819:1: p_plusplus_expr : p_timestimes_expr ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? p_timestimes_expr )* ;
public final babel17Parser.p_plusplus_expr_return p_plusplus_expr() throws RecognitionException {
babel17Parser.p_plusplus_expr_return retval = new babel17Parser.p_plusplus_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL634=null;
Token PLUSPLUS635=null;
Token MINUSMINUS636=null;
Token NL637=null;
babel17Parser.p_timestimes_expr_return p_timestimes_expr633 = null;
babel17Parser.p_timestimes_expr_return p_timestimes_expr638 = null;
CommonTree NL634_tree=null;
CommonTree PLUSPLUS635_tree=null;
CommonTree MINUSMINUS636_tree=null;
CommonTree NL637_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:2: ( p_timestimes_expr ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? p_timestimes_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:4: p_timestimes_expr ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? p_timestimes_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_timestimes_expr_in_p_plusplus_expr5838);
p_timestimes_expr633=p_timestimes_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_timestimes_expr633.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:22: ( ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? p_timestimes_expr )*
loop282:
do {
int alt282=2;
int LA282_0 = input.LA(1);
if ( (LA282_0==NL) ) {
int LA282_1 = input.LA(2);
if ( ((LA282_1>=PLUSPLUS && LA282_1<=MINUSMINUS)) ) {
alt282=1;
}
}
else if ( ((LA282_0>=PLUSPLUS && LA282_0<=MINUSMINUS)) ) {
alt282=1;
}
switch (alt282) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:23: ( NL )? ( PLUSPLUS | MINUSMINUS ) ( NL )? p_timestimes_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:25: ( NL )?
int alt279=2;
int LA279_0 = input.LA(1);
if ( (LA279_0==NL) ) {
alt279=1;
}
switch (alt279) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:25: NL
{
NL634=(Token)match(input,NL,FOLLOW_NL_in_p_plusplus_expr5841); if (state.failed) return retval;
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:28: ( PLUSPLUS | MINUSMINUS )
int alt280=2;
int LA280_0 = input.LA(1);
if ( (LA280_0==PLUSPLUS) ) {
alt280=1;
}
else if ( (LA280_0==MINUSMINUS) ) {
alt280=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 280, 0, input);
throw nvae;
}
switch (alt280) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:29: PLUSPLUS
{
PLUSPLUS635=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_p_plusplus_expr5846); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUSPLUS635_tree = (CommonTree)adaptor.create(PLUSPLUS635);
root_0 = (CommonTree)adaptor.becomeRoot(PLUSPLUS635_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:39: MINUSMINUS
{
MINUSMINUS636=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_p_plusplus_expr5849); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSMINUS636_tree = (CommonTree)adaptor.create(MINUSMINUS636);
root_0 = (CommonTree)adaptor.becomeRoot(MINUSMINUS636_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:54: ( NL )?
int alt281=2;
int LA281_0 = input.LA(1);
if ( (LA281_0==NL) ) {
alt281=1;
}
switch (alt281) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:820:54: NL
{
NL637=(Token)match(input,NL,FOLLOW_NL_in_p_plusplus_expr5853); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_timestimes_expr_in_p_plusplus_expr5857);
p_timestimes_expr638=p_timestimes_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_timestimes_expr638.getTree());
}
break;
default :
break loop282;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_plusplus_expr"
public static class timestimes_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "timestimes_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:823:1: timestimes_expr : simple_expr ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? simple_expr )* ;
public final babel17Parser.timestimes_expr_return timestimes_expr() throws RecognitionException {
babel17Parser.timestimes_expr_return retval = new babel17Parser.timestimes_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL640=null;
Token TIMESTIMES641=null;
Token QUOTIENTQUOTIENT642=null;
Token NL643=null;
babel17Parser.simple_expr_return simple_expr639 = null;
babel17Parser.simple_expr_return simple_expr644 = null;
CommonTree NL640_tree=null;
CommonTree TIMESTIMES641_tree=null;
CommonTree QUOTIENTQUOTIENT642_tree=null;
CommonTree NL643_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:2: ( simple_expr ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? simple_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:4: simple_expr ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? simple_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_simple_expr_in_timestimes_expr5869);
simple_expr639=simple_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_expr639.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:16: ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? simple_expr )*
loop286:
do {
int alt286=2;
int LA286_0 = input.LA(1);
if ( (LA286_0==NL) ) {
int LA286_1 = input.LA(2);
if ( ((LA286_1>=TIMESTIMES && LA286_1<=QUOTIENTQUOTIENT)) ) {
alt286=1;
}
}
else if ( ((LA286_0>=TIMESTIMES && LA286_0<=QUOTIENTQUOTIENT)) ) {
alt286=1;
}
switch (alt286) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:17: ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? simple_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:19: ( NL )?
int alt283=2;
int LA283_0 = input.LA(1);
if ( (LA283_0==NL) ) {
alt283=1;
}
switch (alt283) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:19: NL
{
NL640=(Token)match(input,NL,FOLLOW_NL_in_timestimes_expr5872); if (state.failed) return retval;
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:22: ( TIMESTIMES | QUOTIENTQUOTIENT )
int alt284=2;
int LA284_0 = input.LA(1);
if ( (LA284_0==TIMESTIMES) ) {
alt284=1;
}
else if ( (LA284_0==QUOTIENTQUOTIENT) ) {
alt284=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 284, 0, input);
throw nvae;
}
switch (alt284) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:23: TIMESTIMES
{
TIMESTIMES641=(Token)match(input,TIMESTIMES,FOLLOW_TIMESTIMES_in_timestimes_expr5877); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TIMESTIMES641_tree = (CommonTree)adaptor.create(TIMESTIMES641);
root_0 = (CommonTree)adaptor.becomeRoot(TIMESTIMES641_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:35: QUOTIENTQUOTIENT
{
QUOTIENTQUOTIENT642=(Token)match(input,QUOTIENTQUOTIENT,FOLLOW_QUOTIENTQUOTIENT_in_timestimes_expr5880); if (state.failed) return retval;
if ( state.backtracking==0 ) {
QUOTIENTQUOTIENT642_tree = (CommonTree)adaptor.create(QUOTIENTQUOTIENT642);
root_0 = (CommonTree)adaptor.becomeRoot(QUOTIENTQUOTIENT642_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:56: ( NL )?
int alt285=2;
int LA285_0 = input.LA(1);
if ( (LA285_0==NL) ) {
alt285=1;
}
switch (alt285) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:824:56: NL
{
NL643=(Token)match(input,NL,FOLLOW_NL_in_timestimes_expr5884); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_simple_expr_in_timestimes_expr5888);
simple_expr644=simple_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_expr644.getTree());
}
break;
default :
break loop286;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "timestimes_expr"
public static class p_timestimes_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_timestimes_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:826:1: p_timestimes_expr : p_simple_expr ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? p_simple_expr )* ;
public final babel17Parser.p_timestimes_expr_return p_timestimes_expr() throws RecognitionException {
babel17Parser.p_timestimes_expr_return retval = new babel17Parser.p_timestimes_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL646=null;
Token TIMESTIMES647=null;
Token QUOTIENTQUOTIENT648=null;
Token NL649=null;
babel17Parser.p_simple_expr_return p_simple_expr645 = null;
babel17Parser.p_simple_expr_return p_simple_expr650 = null;
CommonTree NL646_tree=null;
CommonTree TIMESTIMES647_tree=null;
CommonTree QUOTIENTQUOTIENT648_tree=null;
CommonTree NL649_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:2: ( p_simple_expr ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? p_simple_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:4: p_simple_expr ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? p_simple_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_simple_expr_in_p_timestimes_expr5901);
p_simple_expr645=p_simple_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_simple_expr645.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:18: ( ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? p_simple_expr )*
loop290:
do {
int alt290=2;
int LA290_0 = input.LA(1);
if ( (LA290_0==NL) ) {
int LA290_1 = input.LA(2);
if ( ((LA290_1>=TIMESTIMES && LA290_1<=QUOTIENTQUOTIENT)) ) {
alt290=1;
}
}
else if ( ((LA290_0>=TIMESTIMES && LA290_0<=QUOTIENTQUOTIENT)) ) {
alt290=1;
}
switch (alt290) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:19: ( NL )? ( TIMESTIMES | QUOTIENTQUOTIENT ) ( NL )? p_simple_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:21: ( NL )?
int alt287=2;
int LA287_0 = input.LA(1);
if ( (LA287_0==NL) ) {
alt287=1;
}
switch (alt287) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:21: NL
{
NL646=(Token)match(input,NL,FOLLOW_NL_in_p_timestimes_expr5904); if (state.failed) return retval;
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:24: ( TIMESTIMES | QUOTIENTQUOTIENT )
int alt288=2;
int LA288_0 = input.LA(1);
if ( (LA288_0==TIMESTIMES) ) {
alt288=1;
}
else if ( (LA288_0==QUOTIENTQUOTIENT) ) {
alt288=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 288, 0, input);
throw nvae;
}
switch (alt288) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:25: TIMESTIMES
{
TIMESTIMES647=(Token)match(input,TIMESTIMES,FOLLOW_TIMESTIMES_in_p_timestimes_expr5909); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TIMESTIMES647_tree = (CommonTree)adaptor.create(TIMESTIMES647);
root_0 = (CommonTree)adaptor.becomeRoot(TIMESTIMES647_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:37: QUOTIENTQUOTIENT
{
QUOTIENTQUOTIENT648=(Token)match(input,QUOTIENTQUOTIENT,FOLLOW_QUOTIENTQUOTIENT_in_p_timestimes_expr5912); if (state.failed) return retval;
if ( state.backtracking==0 ) {
QUOTIENTQUOTIENT648_tree = (CommonTree)adaptor.create(QUOTIENTQUOTIENT648);
root_0 = (CommonTree)adaptor.becomeRoot(QUOTIENTQUOTIENT648_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:58: ( NL )?
int alt289=2;
int LA289_0 = input.LA(1);
if ( (LA289_0==NL) ) {
alt289=1;
}
switch (alt289) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:827:58: NL
{
NL649=(Token)match(input,NL,FOLLOW_NL_in_p_timestimes_expr5916); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_simple_expr_in_p_timestimes_expr5920);
p_simple_expr650=p_simple_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_simple_expr650.getTree());
}
break;
default :
break loop290;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_timestimes_expr"
public static class simple_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "simple_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:829:1: simple_expr : cons_expr ;
public final babel17Parser.simple_expr_return simple_expr() throws RecognitionException {
babel17Parser.simple_expr_return retval = new babel17Parser.simple_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.cons_expr_return cons_expr651 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:830:2: ( cons_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:830:4: cons_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_cons_expr_in_simple_expr5931);
cons_expr651=cons_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, cons_expr651.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "simple_expr"
public static class p_simple_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_simple_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:832:1: p_simple_expr : p_cons_expr ;
public final babel17Parser.p_simple_expr_return p_simple_expr() throws RecognitionException {
babel17Parser.p_simple_expr_return retval = new babel17Parser.p_simple_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.p_cons_expr_return p_cons_expr652 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:833:2: ( p_cons_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:833:4: p_cons_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_cons_expr_in_p_simple_expr5940);
p_cons_expr652=p_cons_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_cons_expr652.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_simple_expr"
public static class cons_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "cons_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:835:1: cons_expr : to_expr ( ( NL )? token_DOUBLE_COLON ( NL )? to_expr )* -> ^( LIST_CONS ( to_expr )* ) ;
public final babel17Parser.cons_expr_return cons_expr() throws RecognitionException {
babel17Parser.cons_expr_return retval = new babel17Parser.cons_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL654=null;
Token NL656=null;
babel17Parser.to_expr_return to_expr653 = null;
babel17Parser.token_DOUBLE_COLON_return token_DOUBLE_COLON655 = null;
babel17Parser.to_expr_return to_expr657 = null;
CommonTree NL654_tree=null;
CommonTree NL656_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_token_DOUBLE_COLON=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_COLON");
RewriteRuleSubtreeStream stream_to_expr=new RewriteRuleSubtreeStream(adaptor,"rule to_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:2: ( to_expr ( ( NL )? token_DOUBLE_COLON ( NL )? to_expr )* -> ^( LIST_CONS ( to_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:4: to_expr ( ( NL )? token_DOUBLE_COLON ( NL )? to_expr )*
{
pushFollow(FOLLOW_to_expr_in_cons_expr5949);
to_expr653=to_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_to_expr.add(to_expr653.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:12: ( ( NL )? token_DOUBLE_COLON ( NL )? to_expr )*
loop293:
do {
int alt293=2;
int LA293_0 = input.LA(1);
if ( (LA293_0==NL) ) {
int LA293_1 = input.LA(2);
if ( ((LA293_1>=A_DOUBLE_COLON && LA293_1<=U_DOUBLE_COLON)) ) {
alt293=1;
}
}
else if ( ((LA293_0>=A_DOUBLE_COLON && LA293_0<=U_DOUBLE_COLON)) ) {
alt293=1;
}
switch (alt293) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:13: ( NL )? token_DOUBLE_COLON ( NL )? to_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:13: ( NL )?
int alt291=2;
int LA291_0 = input.LA(1);
if ( (LA291_0==NL) ) {
alt291=1;
}
switch (alt291) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:13: NL
{
NL654=(Token)match(input,NL,FOLLOW_NL_in_cons_expr5952); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL654);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_COLON_in_cons_expr5955);
token_DOUBLE_COLON655=token_DOUBLE_COLON();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_COLON.add(token_DOUBLE_COLON655.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:36: ( NL )?
int alt292=2;
int LA292_0 = input.LA(1);
if ( (LA292_0==NL) ) {
alt292=1;
}
switch (alt292) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:36: NL
{
NL656=(Token)match(input,NL,FOLLOW_NL_in_cons_expr5957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL656);
}
break;
}
pushFollow(FOLLOW_to_expr_in_cons_expr5960);
to_expr657=to_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_to_expr.add(to_expr657.getTree());
}
break;
default :
break loop293;
}
} while (true);
// AST REWRITE
// elements: to_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 836:50: -> ^( LIST_CONS ( to_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:53: ^( LIST_CONS ( to_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LIST_CONS, "LIST_CONS"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:836:65: ( to_expr )*
while ( stream_to_expr.hasNext() ) {
adaptor.addChild(root_1, stream_to_expr.nextTree());
}
stream_to_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "cons_expr"
public static class p_cons_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_cons_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:838:1: p_cons_expr : p_to_expr ( ( NL )? token_DOUBLE_COLON ( NL )? p_to_expr )* -> ^( LIST_CONS ( p_to_expr )* ) ;
public final babel17Parser.p_cons_expr_return p_cons_expr() throws RecognitionException {
babel17Parser.p_cons_expr_return retval = new babel17Parser.p_cons_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL659=null;
Token NL661=null;
babel17Parser.p_to_expr_return p_to_expr658 = null;
babel17Parser.token_DOUBLE_COLON_return token_DOUBLE_COLON660 = null;
babel17Parser.p_to_expr_return p_to_expr662 = null;
CommonTree NL659_tree=null;
CommonTree NL661_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_p_to_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_to_expr");
RewriteRuleSubtreeStream stream_token_DOUBLE_COLON=new RewriteRuleSubtreeStream(adaptor,"rule token_DOUBLE_COLON");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:2: ( p_to_expr ( ( NL )? token_DOUBLE_COLON ( NL )? p_to_expr )* -> ^( LIST_CONS ( p_to_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:4: p_to_expr ( ( NL )? token_DOUBLE_COLON ( NL )? p_to_expr )*
{
pushFollow(FOLLOW_p_to_expr_in_p_cons_expr5980);
p_to_expr658=p_to_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_to_expr.add(p_to_expr658.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:14: ( ( NL )? token_DOUBLE_COLON ( NL )? p_to_expr )*
loop296:
do {
int alt296=2;
int LA296_0 = input.LA(1);
if ( (LA296_0==NL) ) {
int LA296_1 = input.LA(2);
if ( ((LA296_1>=A_DOUBLE_COLON && LA296_1<=U_DOUBLE_COLON)) ) {
alt296=1;
}
}
else if ( ((LA296_0>=A_DOUBLE_COLON && LA296_0<=U_DOUBLE_COLON)) ) {
alt296=1;
}
switch (alt296) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:15: ( NL )? token_DOUBLE_COLON ( NL )? p_to_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:15: ( NL )?
int alt294=2;
int LA294_0 = input.LA(1);
if ( (LA294_0==NL) ) {
alt294=1;
}
switch (alt294) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:15: NL
{
NL659=(Token)match(input,NL,FOLLOW_NL_in_p_cons_expr5983); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL659);
}
break;
}
pushFollow(FOLLOW_token_DOUBLE_COLON_in_p_cons_expr5986);
token_DOUBLE_COLON660=token_DOUBLE_COLON();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_DOUBLE_COLON.add(token_DOUBLE_COLON660.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:38: ( NL )?
int alt295=2;
int LA295_0 = input.LA(1);
if ( (LA295_0==NL) ) {
alt295=1;
}
switch (alt295) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:38: NL
{
NL661=(Token)match(input,NL,FOLLOW_NL_in_p_cons_expr5988); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL661);
}
break;
}
pushFollow(FOLLOW_p_to_expr_in_p_cons_expr5991);
p_to_expr662=p_to_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_to_expr.add(p_to_expr662.getTree());
}
break;
default :
break loop296;
}
} while (true);
// AST REWRITE
// elements: p_to_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 839:54: -> ^( LIST_CONS ( p_to_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:57: ^( LIST_CONS ( p_to_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LIST_CONS, "LIST_CONS"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:839:69: ( p_to_expr )*
while ( stream_p_to_expr.hasNext() ) {
adaptor.addChild(root_1, stream_p_to_expr.nextTree());
}
stream_p_to_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_cons_expr"
public static class to_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "to_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:1: to_expr : arith_plus_expr ( ( NL )? ( L_to | L_downto ) ( NL )? arith_plus_expr )? ;
public final babel17Parser.to_expr_return to_expr() throws RecognitionException {
babel17Parser.to_expr_return retval = new babel17Parser.to_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL664=null;
Token L_to665=null;
Token L_downto666=null;
Token NL667=null;
babel17Parser.arith_plus_expr_return arith_plus_expr663 = null;
babel17Parser.arith_plus_expr_return arith_plus_expr668 = null;
CommonTree NL664_tree=null;
CommonTree L_to665_tree=null;
CommonTree L_downto666_tree=null;
CommonTree NL667_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:9: ( arith_plus_expr ( ( NL )? ( L_to | L_downto ) ( NL )? arith_plus_expr )? )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:11: arith_plus_expr ( ( NL )? ( L_to | L_downto ) ( NL )? arith_plus_expr )?
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_arith_plus_expr_in_to_expr6011);
arith_plus_expr663=arith_plus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_plus_expr663.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:27: ( ( NL )? ( L_to | L_downto ) ( NL )? arith_plus_expr )?
int alt300=2;
int LA300_0 = input.LA(1);
if ( (LA300_0==NL) ) {
int LA300_1 = input.LA(2);
if ( ((LA300_1>=L_to && LA300_1<=L_downto)) ) {
alt300=1;
}
}
else if ( ((LA300_0>=L_to && LA300_0<=L_downto)) ) {
alt300=1;
}
switch (alt300) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:28: ( NL )? ( L_to | L_downto ) ( NL )? arith_plus_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:30: ( NL )?
int alt297=2;
int LA297_0 = input.LA(1);
if ( (LA297_0==NL) ) {
alt297=1;
}
switch (alt297) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:30: NL
{
NL664=(Token)match(input,NL,FOLLOW_NL_in_to_expr6014); if (state.failed) return retval;
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:33: ( L_to | L_downto )
int alt298=2;
int LA298_0 = input.LA(1);
if ( (LA298_0==L_to) ) {
alt298=1;
}
else if ( (LA298_0==L_downto) ) {
alt298=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 298, 0, input);
throw nvae;
}
switch (alt298) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:34: L_to
{
L_to665=(Token)match(input,L_to,FOLLOW_L_to_in_to_expr6019); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_to665_tree = (CommonTree)adaptor.create(L_to665);
root_0 = (CommonTree)adaptor.becomeRoot(L_to665_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:41: L_downto
{
L_downto666=(Token)match(input,L_downto,FOLLOW_L_downto_in_to_expr6023); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_downto666_tree = (CommonTree)adaptor.create(L_downto666);
root_0 = (CommonTree)adaptor.becomeRoot(L_downto666_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:54: ( NL )?
int alt299=2;
int LA299_0 = input.LA(1);
if ( (LA299_0==NL) ) {
alt299=1;
}
switch (alt299) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:842:54: NL
{
NL667=(Token)match(input,NL,FOLLOW_NL_in_to_expr6027); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_arith_plus_expr_in_to_expr6031);
arith_plus_expr668=arith_plus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_plus_expr668.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "to_expr"
public static class p_to_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_to_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:844:1: p_to_expr : p_arith_plus_expr ( ( NL )? ( L_to | L_downto ) ( NL )? p_arith_plus_expr )? ;
public final babel17Parser.p_to_expr_return p_to_expr() throws RecognitionException {
babel17Parser.p_to_expr_return retval = new babel17Parser.p_to_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL670=null;
Token L_to671=null;
Token L_downto672=null;
Token NL673=null;
babel17Parser.p_arith_plus_expr_return p_arith_plus_expr669 = null;
babel17Parser.p_arith_plus_expr_return p_arith_plus_expr674 = null;
CommonTree NL670_tree=null;
CommonTree L_to671_tree=null;
CommonTree L_downto672_tree=null;
CommonTree NL673_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:2: ( p_arith_plus_expr ( ( NL )? ( L_to | L_downto ) ( NL )? p_arith_plus_expr )? )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:4: p_arith_plus_expr ( ( NL )? ( L_to | L_downto ) ( NL )? p_arith_plus_expr )?
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_arith_plus_expr_in_p_to_expr6044);
p_arith_plus_expr669=p_arith_plus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_plus_expr669.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:22: ( ( NL )? ( L_to | L_downto ) ( NL )? p_arith_plus_expr )?
int alt304=2;
int LA304_0 = input.LA(1);
if ( (LA304_0==NL) ) {
int LA304_1 = input.LA(2);
if ( ((LA304_1>=L_to && LA304_1<=L_downto)) ) {
alt304=1;
}
}
else if ( ((LA304_0>=L_to && LA304_0<=L_downto)) ) {
alt304=1;
}
switch (alt304) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:23: ( NL )? ( L_to | L_downto ) ( NL )? p_arith_plus_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:25: ( NL )?
int alt301=2;
int LA301_0 = input.LA(1);
if ( (LA301_0==NL) ) {
alt301=1;
}
switch (alt301) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:25: NL
{
NL670=(Token)match(input,NL,FOLLOW_NL_in_p_to_expr6047); if (state.failed) return retval;
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:28: ( L_to | L_downto )
int alt302=2;
int LA302_0 = input.LA(1);
if ( (LA302_0==L_to) ) {
alt302=1;
}
else if ( (LA302_0==L_downto) ) {
alt302=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 302, 0, input);
throw nvae;
}
switch (alt302) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:29: L_to
{
L_to671=(Token)match(input,L_to,FOLLOW_L_to_in_p_to_expr6052); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_to671_tree = (CommonTree)adaptor.create(L_to671);
root_0 = (CommonTree)adaptor.becomeRoot(L_to671_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:36: L_downto
{
L_downto672=(Token)match(input,L_downto,FOLLOW_L_downto_in_p_to_expr6056); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_downto672_tree = (CommonTree)adaptor.create(L_downto672);
root_0 = (CommonTree)adaptor.becomeRoot(L_downto672_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:49: ( NL )?
int alt303=2;
int LA303_0 = input.LA(1);
if ( (LA303_0==NL) ) {
alt303=1;
}
switch (alt303) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:845:49: NL
{
NL673=(Token)match(input,NL,FOLLOW_NL_in_p_to_expr6060); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_arith_plus_expr_in_p_to_expr6064);
p_arith_plus_expr674=p_arith_plus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_plus_expr674.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_to_expr"
public static class arith_plus_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_plus_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:847:1: arith_plus_expr : arith_uminus_expr ( ( ( NL )? PLUS | MINUS ) ( NL )? arith_uminus_expr )* ;
public final babel17Parser.arith_plus_expr_return arith_plus_expr() throws RecognitionException {
babel17Parser.arith_plus_expr_return retval = new babel17Parser.arith_plus_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL676=null;
Token PLUS677=null;
Token MINUS678=null;
Token NL679=null;
babel17Parser.arith_uminus_expr_return arith_uminus_expr675 = null;
babel17Parser.arith_uminus_expr_return arith_uminus_expr680 = null;
CommonTree NL676_tree=null;
CommonTree PLUS677_tree=null;
CommonTree MINUS678_tree=null;
CommonTree NL679_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:2: ( arith_uminus_expr ( ( ( NL )? PLUS | MINUS ) ( NL )? arith_uminus_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:4: arith_uminus_expr ( ( ( NL )? PLUS | MINUS ) ( NL )? arith_uminus_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_arith_uminus_expr_in_arith_plus_expr6076);
arith_uminus_expr675=arith_uminus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_uminus_expr675.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:22: ( ( ( NL )? PLUS | MINUS ) ( NL )? arith_uminus_expr )*
loop308:
do {
int alt308=2;
int LA308_0 = input.LA(1);
if ( (LA308_0==NL) ) {
int LA308_1 = input.LA(2);
if ( (LA308_1==PLUS) ) {
alt308=1;
}
}
else if ( ((LA308_0>=PLUS && LA308_0<=MINUS)) ) {
alt308=1;
}
switch (alt308) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:23: ( ( NL )? PLUS | MINUS ) ( NL )? arith_uminus_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:23: ( ( NL )? PLUS | MINUS )
int alt306=2;
int LA306_0 = input.LA(1);
if ( (LA306_0==PLUS||LA306_0==NL) ) {
alt306=1;
}
else if ( (LA306_0==MINUS) ) {
alt306=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 306, 0, input);
throw nvae;
}
switch (alt306) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:24: ( NL )? PLUS
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:26: ( NL )?
int alt305=2;
int LA305_0 = input.LA(1);
if ( (LA305_0==NL) ) {
alt305=1;
}
switch (alt305) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:26: NL
{
NL676=(Token)match(input,NL,FOLLOW_NL_in_arith_plus_expr6080); if (state.failed) return retval;
}
break;
}
PLUS677=(Token)match(input,PLUS,FOLLOW_PLUS_in_arith_plus_expr6084); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUS677_tree = (CommonTree)adaptor.create(PLUS677);
root_0 = (CommonTree)adaptor.becomeRoot(PLUS677_tree, root_0);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:37: MINUS
{
MINUS678=(Token)match(input,MINUS,FOLLOW_MINUS_in_arith_plus_expr6089); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUS678_tree = (CommonTree)adaptor.create(MINUS678);
root_0 = (CommonTree)adaptor.becomeRoot(MINUS678_tree, root_0);
}
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:47: ( NL )?
int alt307=2;
int LA307_0 = input.LA(1);
if ( (LA307_0==NL) ) {
alt307=1;
}
switch (alt307) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:848:47: NL
{
NL679=(Token)match(input,NL,FOLLOW_NL_in_arith_plus_expr6093); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_arith_uminus_expr_in_arith_plus_expr6097);
arith_uminus_expr680=arith_uminus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_uminus_expr680.getTree());
}
break;
default :
break loop308;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arith_plus_expr"
public static class p_arith_plus_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_arith_plus_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:850:1: p_arith_plus_expr : p_arith_uminus_expr ( ( NL )? ( PLUS | MINUS ) ( NL )? p_arith_uminus_expr )* ;
public final babel17Parser.p_arith_plus_expr_return p_arith_plus_expr() throws RecognitionException {
babel17Parser.p_arith_plus_expr_return retval = new babel17Parser.p_arith_plus_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL682=null;
Token set683=null;
Token NL684=null;
babel17Parser.p_arith_uminus_expr_return p_arith_uminus_expr681 = null;
babel17Parser.p_arith_uminus_expr_return p_arith_uminus_expr685 = null;
CommonTree NL682_tree=null;
CommonTree set683_tree=null;
CommonTree NL684_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:2: ( p_arith_uminus_expr ( ( NL )? ( PLUS | MINUS ) ( NL )? p_arith_uminus_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:4: p_arith_uminus_expr ( ( NL )? ( PLUS | MINUS ) ( NL )? p_arith_uminus_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_arith_uminus_expr_in_p_arith_plus_expr6108);
p_arith_uminus_expr681=p_arith_uminus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_uminus_expr681.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:24: ( ( NL )? ( PLUS | MINUS ) ( NL )? p_arith_uminus_expr )*
loop311:
do {
int alt311=2;
int LA311_0 = input.LA(1);
if ( (LA311_0==NL) ) {
int LA311_1 = input.LA(2);
if ( ((LA311_1>=PLUS && LA311_1<=MINUS)) ) {
alt311=1;
}
}
else if ( ((LA311_0>=PLUS && LA311_0<=MINUS)) ) {
alt311=1;
}
switch (alt311) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:25: ( NL )? ( PLUS | MINUS ) ( NL )? p_arith_uminus_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:27: ( NL )?
int alt309=2;
int LA309_0 = input.LA(1);
if ( (LA309_0==NL) ) {
alt309=1;
}
switch (alt309) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:27: NL
{
NL682=(Token)match(input,NL,FOLLOW_NL_in_p_arith_plus_expr6111); if (state.failed) return retval;
}
break;
}
set683=(Token)input.LT(1);
set683=(Token)input.LT(1);
if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) {
input.consume();
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(set683), root_0);
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:48: ( NL )?
int alt310=2;
int LA310_0 = input.LA(1);
if ( (LA310_0==NL) ) {
alt310=1;
}
switch (alt310) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:851:48: NL
{
NL684=(Token)match(input,NL,FOLLOW_NL_in_p_arith_plus_expr6124); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_arith_uminus_expr_in_p_arith_plus_expr6128);
p_arith_uminus_expr685=p_arith_uminus_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_uminus_expr685.getTree());
}
break;
default :
break loop311;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_arith_plus_expr"
public static class arith_uminus_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_uminus_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:853:1: arith_uminus_expr : ( MINUS ( NL )? arith_mult_expr -> ^( UMINUS arith_mult_expr ) | arith_mult_expr );
public final babel17Parser.arith_uminus_expr_return arith_uminus_expr() throws RecognitionException {
babel17Parser.arith_uminus_expr_return retval = new babel17Parser.arith_uminus_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token MINUS686=null;
Token NL687=null;
babel17Parser.arith_mult_expr_return arith_mult_expr688 = null;
babel17Parser.arith_mult_expr_return arith_mult_expr689 = null;
CommonTree MINUS686_tree=null;
CommonTree NL687_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_MINUS=new RewriteRuleTokenStream(adaptor,"token MINUS");
RewriteRuleSubtreeStream stream_arith_mult_expr=new RewriteRuleSubtreeStream(adaptor,"rule arith_mult_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:854:2: ( MINUS ( NL )? arith_mult_expr -> ^( UMINUS arith_mult_expr ) | arith_mult_expr )
int alt313=2;
int LA313_0 = input.LA(1);
if ( (LA313_0==MINUS) ) {
alt313=1;
}
else if ( (LA313_0==L_begin||(LA313_0>=L_obj && LA313_0<=L_if)||(LA313_0>=L_while && LA313_0<=L_for)||LA313_0==L_match||LA313_0==L_try||(LA313_0>=L_true && LA313_0<=L_this)||LA313_0==L_nil||LA313_0==L_root||(LA313_0>=Constr && LA313_0<=Id)||(LA313_0>=Float && LA313_0<=Num)||(LA313_0>=String && LA313_0<=ROUND_BRACKET_OPEN)||LA313_0==SQUARE_BRACKET_OPEN||LA313_0==CURLY_BRACKET_OPEN) ) {
alt313=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 313, 0, input);
throw nvae;
}
switch (alt313) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:854:4: MINUS ( NL )? arith_mult_expr
{
MINUS686=(Token)match(input,MINUS,FOLLOW_MINUS_in_arith_uminus_expr6141); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUS.add(MINUS686);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:854:10: ( NL )?
int alt312=2;
int LA312_0 = input.LA(1);
if ( (LA312_0==NL) ) {
alt312=1;
}
switch (alt312) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:854:10: NL
{
NL687=(Token)match(input,NL,FOLLOW_NL_in_arith_uminus_expr6143); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL687);
}
break;
}
pushFollow(FOLLOW_arith_mult_expr_in_arith_uminus_expr6146);
arith_mult_expr688=arith_mult_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arith_mult_expr.add(arith_mult_expr688.getTree());
// AST REWRITE
// elements: arith_mult_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 854:30: -> ^( UMINUS arith_mult_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:854:33: ^( UMINUS arith_mult_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UMINUS, "UMINUS"), root_1);
adaptor.addChild(root_1, stream_arith_mult_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:855:4: arith_mult_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_arith_mult_expr_in_arith_uminus_expr6159);
arith_mult_expr689=arith_mult_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_mult_expr689.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arith_uminus_expr"
public static class p_arith_uminus_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_arith_uminus_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:857:1: p_arith_uminus_expr : ( MINUS ( NL )? p_arith_mult_expr -> ^( UMINUS p_arith_mult_expr ) | p_arith_mult_expr );
public final babel17Parser.p_arith_uminus_expr_return p_arith_uminus_expr() throws RecognitionException {
babel17Parser.p_arith_uminus_expr_return retval = new babel17Parser.p_arith_uminus_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token MINUS690=null;
Token NL691=null;
babel17Parser.p_arith_mult_expr_return p_arith_mult_expr692 = null;
babel17Parser.p_arith_mult_expr_return p_arith_mult_expr693 = null;
CommonTree MINUS690_tree=null;
CommonTree NL691_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_MINUS=new RewriteRuleTokenStream(adaptor,"token MINUS");
RewriteRuleSubtreeStream stream_p_arith_mult_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_arith_mult_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:858:2: ( MINUS ( NL )? p_arith_mult_expr -> ^( UMINUS p_arith_mult_expr ) | p_arith_mult_expr )
int alt315=2;
int LA315_0 = input.LA(1);
if ( (LA315_0==MINUS) ) {
alt315=1;
}
else if ( (LA315_0==L_begin||(LA315_0>=L_obj && LA315_0<=L_if)||(LA315_0>=L_while && LA315_0<=L_for)||LA315_0==L_match||LA315_0==L_try||(LA315_0>=L_true && LA315_0<=L_this)||LA315_0==L_nil||LA315_0==L_root||(LA315_0>=Constr && LA315_0<=Id)||(LA315_0>=Float && LA315_0<=Num)||(LA315_0>=String && LA315_0<=ROUND_BRACKET_OPEN)||LA315_0==SQUARE_BRACKET_OPEN||LA315_0==CURLY_BRACKET_OPEN) ) {
alt315=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 315, 0, input);
throw nvae;
}
switch (alt315) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:858:4: MINUS ( NL )? p_arith_mult_expr
{
MINUS690=(Token)match(input,MINUS,FOLLOW_MINUS_in_p_arith_uminus_expr6170); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUS.add(MINUS690);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:858:10: ( NL )?
int alt314=2;
int LA314_0 = input.LA(1);
if ( (LA314_0==NL) ) {
alt314=1;
}
switch (alt314) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:858:10: NL
{
NL691=(Token)match(input,NL,FOLLOW_NL_in_p_arith_uminus_expr6172); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL691);
}
break;
}
pushFollow(FOLLOW_p_arith_mult_expr_in_p_arith_uminus_expr6175);
p_arith_mult_expr692=p_arith_mult_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_arith_mult_expr.add(p_arith_mult_expr692.getTree());
// AST REWRITE
// elements: p_arith_mult_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 858:32: -> ^( UMINUS p_arith_mult_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:858:35: ^( UMINUS p_arith_mult_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UMINUS, "UMINUS"), root_1);
adaptor.addChild(root_1, stream_p_arith_mult_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:859:4: p_arith_mult_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_arith_mult_expr_in_p_arith_uminus_expr6188);
p_arith_mult_expr693=p_arith_mult_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_mult_expr693.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_arith_uminus_expr"
public static class arith_mult_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_mult_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:861:1: arith_mult_expr : arith_pow_expr ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? arith_pow_expr )* ;
public final babel17Parser.arith_mult_expr_return arith_mult_expr() throws RecognitionException {
babel17Parser.arith_mult_expr_return retval = new babel17Parser.arith_mult_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL695=null;
Token set696=null;
Token NL697=null;
babel17Parser.arith_pow_expr_return arith_pow_expr694 = null;
babel17Parser.arith_pow_expr_return arith_pow_expr698 = null;
CommonTree NL695_tree=null;
CommonTree set696_tree=null;
CommonTree NL697_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:2: ( arith_pow_expr ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? arith_pow_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:4: arith_pow_expr ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? arith_pow_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_arith_pow_expr_in_arith_mult_expr6197);
arith_pow_expr694=arith_pow_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_pow_expr694.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:19: ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? arith_pow_expr )*
loop318:
do {
int alt318=2;
switch ( input.LA(1) ) {
case NL:
{
switch ( input.LA(2) ) {
case L_div:
{
int LA318_3 = input.LA(3);
if ( (LA318_3==L_begin||(LA318_3>=L_obj && LA318_3<=L_if)||(LA318_3>=L_while && LA318_3<=L_for)||LA318_3==L_match||LA318_3==L_try||(LA318_3>=L_true && LA318_3<=L_this)||LA318_3==L_nil||LA318_3==L_root||(LA318_3>=NL && LA318_3<=Id)||(LA318_3>=Float && LA318_3<=Num)||(LA318_3>=String && LA318_3<=ROUND_BRACKET_OPEN)||LA318_3==SQUARE_BRACKET_OPEN||LA318_3==CURLY_BRACKET_OPEN) ) {
alt318=1;
}
}
break;
case L_mod:
{
int LA318_4 = input.LA(3);
if ( (LA318_4==L_begin||(LA318_4>=L_obj && LA318_4<=L_if)||(LA318_4>=L_while && LA318_4<=L_for)||LA318_4==L_match||LA318_4==L_try||(LA318_4>=L_true && LA318_4<=L_this)||LA318_4==L_nil||LA318_4==L_root||(LA318_4>=NL && LA318_4<=Id)||(LA318_4>=Float && LA318_4<=Num)||(LA318_4>=String && LA318_4<=ROUND_BRACKET_OPEN)||LA318_4==SQUARE_BRACKET_OPEN||LA318_4==CURLY_BRACKET_OPEN) ) {
alt318=1;
}
}
break;
case TIMES:
case QUOTIENT:
{
alt318=1;
}
break;
}
}
break;
case L_div:
{
int LA318_3 = input.LA(2);
if ( (LA318_3==L_begin||(LA318_3>=L_obj && LA318_3<=L_if)||(LA318_3>=L_while && LA318_3<=L_for)||LA318_3==L_match||LA318_3==L_try||(LA318_3>=L_true && LA318_3<=L_this)||LA318_3==L_nil||LA318_3==L_root||(LA318_3>=NL && LA318_3<=Id)||(LA318_3>=Float && LA318_3<=Num)||(LA318_3>=String && LA318_3<=ROUND_BRACKET_OPEN)||LA318_3==SQUARE_BRACKET_OPEN||LA318_3==CURLY_BRACKET_OPEN) ) {
alt318=1;
}
}
break;
case L_mod:
{
int LA318_4 = input.LA(2);
if ( (LA318_4==L_begin||(LA318_4>=L_obj && LA318_4<=L_if)||(LA318_4>=L_while && LA318_4<=L_for)||LA318_4==L_match||LA318_4==L_try||(LA318_4>=L_true && LA318_4<=L_this)||LA318_4==L_nil||LA318_4==L_root||(LA318_4>=NL && LA318_4<=Id)||(LA318_4>=Float && LA318_4<=Num)||(LA318_4>=String && LA318_4<=ROUND_BRACKET_OPEN)||LA318_4==SQUARE_BRACKET_OPEN||LA318_4==CURLY_BRACKET_OPEN) ) {
alt318=1;
}
}
break;
case TIMES:
case QUOTIENT:
{
alt318=1;
}
break;
}
switch (alt318) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:20: ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? arith_pow_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:22: ( NL )?
int alt316=2;
int LA316_0 = input.LA(1);
if ( (LA316_0==NL) ) {
alt316=1;
}
switch (alt316) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:22: NL
{
NL695=(Token)match(input,NL,FOLLOW_NL_in_arith_mult_expr6200); if (state.failed) return retval;
}
break;
}
set696=(Token)input.LT(1);
set696=(Token)input.LT(1);
if ( (input.LA(1)>=L_div && input.LA(1)<=L_mod)||(input.LA(1)>=TIMES && input.LA(1)<=QUOTIENT) ) {
input.consume();
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(set696), root_0);
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:63: ( NL )?
int alt317=2;
int LA317_0 = input.LA(1);
if ( (LA317_0==NL) ) {
alt317=1;
}
switch (alt317) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:862:63: NL
{
NL697=(Token)match(input,NL,FOLLOW_NL_in_arith_mult_expr6221); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_arith_pow_expr_in_arith_mult_expr6225);
arith_pow_expr698=arith_pow_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arith_pow_expr698.getTree());
}
break;
default :
break loop318;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arith_mult_expr"
public static class p_arith_mult_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_arith_mult_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:864:1: p_arith_mult_expr : p_arith_pow_expr ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? p_arith_pow_expr )* ;
public final babel17Parser.p_arith_mult_expr_return p_arith_mult_expr() throws RecognitionException {
babel17Parser.p_arith_mult_expr_return retval = new babel17Parser.p_arith_mult_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL700=null;
Token set701=null;
Token NL702=null;
babel17Parser.p_arith_pow_expr_return p_arith_pow_expr699 = null;
babel17Parser.p_arith_pow_expr_return p_arith_pow_expr703 = null;
CommonTree NL700_tree=null;
CommonTree set701_tree=null;
CommonTree NL702_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:2: ( p_arith_pow_expr ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? p_arith_pow_expr )* )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:4: p_arith_pow_expr ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? p_arith_pow_expr )*
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_p_arith_pow_expr_in_p_arith_mult_expr6237);
p_arith_pow_expr699=p_arith_pow_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_pow_expr699.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:21: ( ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? p_arith_pow_expr )*
loop321:
do {
int alt321=2;
int LA321_0 = input.LA(1);
if ( (LA321_0==NL) ) {
int LA321_1 = input.LA(2);
if ( ((LA321_1>=L_div && LA321_1<=L_mod)||(LA321_1>=TIMES && LA321_1<=QUOTIENT)) ) {
alt321=1;
}
}
else if ( ((LA321_0>=L_div && LA321_0<=L_mod)||(LA321_0>=TIMES && LA321_0<=QUOTIENT)) ) {
alt321=1;
}
switch (alt321) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:22: ( NL )? ( TIMES | QUOTIENT | L_div | L_mod ) ( NL )? p_arith_pow_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:24: ( NL )?
int alt319=2;
int LA319_0 = input.LA(1);
if ( (LA319_0==NL) ) {
alt319=1;
}
switch (alt319) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:24: NL
{
NL700=(Token)match(input,NL,FOLLOW_NL_in_p_arith_mult_expr6240); if (state.failed) return retval;
}
break;
}
set701=(Token)input.LT(1);
set701=(Token)input.LT(1);
if ( (input.LA(1)>=L_div && input.LA(1)<=L_mod)||(input.LA(1)>=TIMES && input.LA(1)<=QUOTIENT) ) {
input.consume();
if ( state.backtracking==0 ) root_0 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(set701), root_0);
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:65: ( NL )?
int alt320=2;
int LA320_0 = input.LA(1);
if ( (LA320_0==NL) ) {
alt320=1;
}
switch (alt320) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:865:65: NL
{
NL702=(Token)match(input,NL,FOLLOW_NL_in_p_arith_mult_expr6261); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_p_arith_pow_expr_in_p_arith_mult_expr6265);
p_arith_pow_expr703=p_arith_pow_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p_arith_pow_expr703.getTree());
}
break;
default :
break loop321;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_arith_mult_expr"
public static class arith_pow_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_pow_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:867:1: arith_pow_expr : apply_expr ( ( NL )? POW_tok ( NL )? apply_expr )* -> ^( POW ( apply_expr )* ) ;
public final babel17Parser.arith_pow_expr_return arith_pow_expr() throws RecognitionException {
babel17Parser.arith_pow_expr_return retval = new babel17Parser.arith_pow_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL705=null;
Token POW_tok706=null;
Token NL707=null;
babel17Parser.apply_expr_return apply_expr704 = null;
babel17Parser.apply_expr_return apply_expr708 = null;
CommonTree NL705_tree=null;
CommonTree POW_tok706_tree=null;
CommonTree NL707_tree=null;
RewriteRuleTokenStream stream_POW_tok=new RewriteRuleTokenStream(adaptor,"token POW_tok");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_apply_expr=new RewriteRuleSubtreeStream(adaptor,"rule apply_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:2: ( apply_expr ( ( NL )? POW_tok ( NL )? apply_expr )* -> ^( POW ( apply_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:4: apply_expr ( ( NL )? POW_tok ( NL )? apply_expr )*
{
pushFollow(FOLLOW_apply_expr_in_arith_pow_expr6276);
apply_expr704=apply_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_apply_expr.add(apply_expr704.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:15: ( ( NL )? POW_tok ( NL )? apply_expr )*
loop324:
do {
int alt324=2;
int LA324_0 = input.LA(1);
if ( (LA324_0==NL) ) {
int LA324_1 = input.LA(2);
if ( (LA324_1==POW_tok) ) {
alt324=1;
}
}
else if ( (LA324_0==POW_tok) ) {
alt324=1;
}
switch (alt324) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:16: ( NL )? POW_tok ( NL )? apply_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:16: ( NL )?
int alt322=2;
int LA322_0 = input.LA(1);
if ( (LA322_0==NL) ) {
alt322=1;
}
switch (alt322) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:16: NL
{
NL705=(Token)match(input,NL,FOLLOW_NL_in_arith_pow_expr6279); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL705);
}
break;
}
POW_tok706=(Token)match(input,POW_tok,FOLLOW_POW_tok_in_arith_pow_expr6282); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_POW_tok.add(POW_tok706);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:28: ( NL )?
int alt323=2;
int LA323_0 = input.LA(1);
if ( (LA323_0==NL) ) {
alt323=1;
}
switch (alt323) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:28: NL
{
NL707=(Token)match(input,NL,FOLLOW_NL_in_arith_pow_expr6284); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL707);
}
break;
}
pushFollow(FOLLOW_apply_expr_in_arith_pow_expr6287);
apply_expr708=apply_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_apply_expr.add(apply_expr708.getTree());
}
break;
default :
break loop324;
}
} while (true);
// AST REWRITE
// elements: apply_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 868:45: -> ^( POW ( apply_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:48: ^( POW ( apply_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(POW, "POW"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:868:54: ( apply_expr )*
while ( stream_apply_expr.hasNext() ) {
adaptor.addChild(root_1, stream_apply_expr.nextTree());
}
stream_apply_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arith_pow_expr"
public static class p_arith_pow_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_arith_pow_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:870:1: p_arith_pow_expr : p_apply_expr ( ( NL )? POW_tok ( NL )? p_apply_expr )* -> ^( POW ( p_apply_expr )* ) ;
public final babel17Parser.p_arith_pow_expr_return p_arith_pow_expr() throws RecognitionException {
babel17Parser.p_arith_pow_expr_return retval = new babel17Parser.p_arith_pow_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL710=null;
Token POW_tok711=null;
Token NL712=null;
babel17Parser.p_apply_expr_return p_apply_expr709 = null;
babel17Parser.p_apply_expr_return p_apply_expr713 = null;
CommonTree NL710_tree=null;
CommonTree POW_tok711_tree=null;
CommonTree NL712_tree=null;
RewriteRuleTokenStream stream_POW_tok=new RewriteRuleTokenStream(adaptor,"token POW_tok");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_p_apply_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_apply_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:2: ( p_apply_expr ( ( NL )? POW_tok ( NL )? p_apply_expr )* -> ^( POW ( p_apply_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:4: p_apply_expr ( ( NL )? POW_tok ( NL )? p_apply_expr )*
{
pushFollow(FOLLOW_p_apply_expr_in_p_arith_pow_expr6308);
p_apply_expr709=p_apply_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_apply_expr.add(p_apply_expr709.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:17: ( ( NL )? POW_tok ( NL )? p_apply_expr )*
loop327:
do {
int alt327=2;
int LA327_0 = input.LA(1);
if ( (LA327_0==NL) ) {
int LA327_1 = input.LA(2);
if ( (LA327_1==POW_tok) ) {
alt327=1;
}
}
else if ( (LA327_0==POW_tok) ) {
alt327=1;
}
switch (alt327) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:18: ( NL )? POW_tok ( NL )? p_apply_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:18: ( NL )?
int alt325=2;
int LA325_0 = input.LA(1);
if ( (LA325_0==NL) ) {
alt325=1;
}
switch (alt325) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:18: NL
{
NL710=(Token)match(input,NL,FOLLOW_NL_in_p_arith_pow_expr6311); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL710);
}
break;
}
POW_tok711=(Token)match(input,POW_tok,FOLLOW_POW_tok_in_p_arith_pow_expr6314); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_POW_tok.add(POW_tok711);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:30: ( NL )?
int alt326=2;
int LA326_0 = input.LA(1);
if ( (LA326_0==NL) ) {
alt326=1;
}
switch (alt326) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:30: NL
{
NL712=(Token)match(input,NL,FOLLOW_NL_in_p_arith_pow_expr6316); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL712);
}
break;
}
pushFollow(FOLLOW_p_apply_expr_in_p_arith_pow_expr6319);
p_apply_expr713=p_apply_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_apply_expr.add(p_apply_expr713.getTree());
}
break;
default :
break loop327;
}
} while (true);
// AST REWRITE
// elements: p_apply_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 871:49: -> ^( POW ( p_apply_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:52: ^( POW ( p_apply_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(POW, "POW"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:871:58: ( p_apply_expr )*
while ( stream_p_apply_expr.hasNext() ) {
adaptor.addChild(root_1, stream_p_apply_expr.nextTree());
}
stream_p_apply_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_arith_pow_expr"
public static class apply_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "apply_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:873:1: apply_expr : ( basic_expr )+ -> ^( APPLY ( basic_expr )* ) ;
public final babel17Parser.apply_expr_return apply_expr() throws RecognitionException {
babel17Parser.apply_expr_return retval = new babel17Parser.apply_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.basic_expr_return basic_expr714 = null;
RewriteRuleSubtreeStream stream_basic_expr=new RewriteRuleSubtreeStream(adaptor,"rule basic_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:874:2: ( ( basic_expr )+ -> ^( APPLY ( basic_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:874:4: ( basic_expr )+
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:874:4: ( basic_expr )+
int cnt328=0;
loop328:
do {
int alt328=2;
int LA328_0 = input.LA(1);
if ( (LA328_0==L_try) ) {
int LA328_2 = input.LA(2);
if ( (LA328_2==NL) ) {
int LA328_4 = input.LA(3);
if ( (LA328_4==L_begin||(LA328_4>=L_obj && LA328_4<=L_if)||(LA328_4>=L_while && LA328_4<=L_for)||(LA328_4>=L_yield && LA328_4<=L_match)||(LA328_4>=L_val && LA328_4<=L_def)||LA328_4==L_exception||LA328_4==L_try||(LA328_4>=L_concurrent && LA328_4<=L_nil)||(LA328_4>=L_module && LA328_4<=L_import)||LA328_4==L_not||(LA328_4>=L_root && LA328_4<=L_lens)||LA328_4==MINUS||(LA328_4>=A_ELLIPSIS && LA328_4<=U_ELLIPSIS)||LA328_4==L_force||(LA328_4>=Constr && LA328_4<=Id)||(LA328_4>=Float && LA328_4<=Num)||(LA328_4>=String && LA328_4<=ROUND_BRACKET_OPEN)||LA328_4==SQUARE_BRACKET_OPEN||LA328_4==CURLY_BRACKET_OPEN||LA328_4==UNDERSCORE||(LA328_4>=PRAGMA_LOG && LA328_4<=PRAGMA_CATCH)) ) {
alt328=1;
}
}
else if ( (LA328_2==L_begin||(LA328_2>=L_obj && LA328_2<=L_if)||(LA328_2>=L_while && LA328_2<=L_for)||(LA328_2>=L_yield && LA328_2<=L_match)||(LA328_2>=L_val && LA328_2<=L_def)||LA328_2==L_exception||LA328_2==L_try||(LA328_2>=L_concurrent && LA328_2<=L_nil)||(LA328_2>=L_module && LA328_2<=L_import)||LA328_2==L_not||(LA328_2>=L_root && LA328_2<=L_lens)||LA328_2==MINUS||(LA328_2>=A_ELLIPSIS && LA328_2<=U_ELLIPSIS)||LA328_2==L_force||(LA328_2>=Constr && LA328_2<=Id)||(LA328_2>=Float && LA328_2<=Num)||(LA328_2>=String && LA328_2<=ROUND_BRACKET_OPEN)||LA328_2==SQUARE_BRACKET_OPEN||LA328_2==CURLY_BRACKET_OPEN||LA328_2==UNDERSCORE||(LA328_2>=PRAGMA_LOG && LA328_2<=PRAGMA_CATCH)) ) {
alt328=1;
}
}
else if ( (LA328_0==L_begin||(LA328_0>=L_obj && LA328_0<=L_if)||(LA328_0>=L_while && LA328_0<=L_for)||LA328_0==L_match||(LA328_0>=L_true && LA328_0<=L_this)||LA328_0==L_nil||LA328_0==L_root||(LA328_0>=Constr && LA328_0<=Id)||(LA328_0>=Float && LA328_0<=Num)||(LA328_0>=String && LA328_0<=ROUND_BRACKET_OPEN)||LA328_0==SQUARE_BRACKET_OPEN||LA328_0==CURLY_BRACKET_OPEN) ) {
alt328=1;
}
switch (alt328) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:874:4: basic_expr
{
pushFollow(FOLLOW_basic_expr_in_apply_expr6340);
basic_expr714=basic_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_basic_expr.add(basic_expr714.getTree());
}
break;
default :
if ( cnt328 >= 1 ) break loop328;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(328, input);
throw eee;
}
cnt328++;
} while (true);
// AST REWRITE
// elements: basic_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 874:16: -> ^( APPLY ( basic_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:874:19: ^( APPLY ( basic_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APPLY, "APPLY"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:874:27: ( basic_expr )*
while ( stream_basic_expr.hasNext() ) {
adaptor.addChild(root_1, stream_basic_expr.nextTree());
}
stream_basic_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "apply_expr"
public static class p_apply_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_apply_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:875:1: p_apply_expr : p_basic_expr ( ( NL )? p_basic_expr )* -> ^( APPLY ( p_basic_expr )* ) ;
public final babel17Parser.p_apply_expr_return p_apply_expr() throws RecognitionException {
babel17Parser.p_apply_expr_return retval = new babel17Parser.p_apply_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL716=null;
babel17Parser.p_basic_expr_return p_basic_expr715 = null;
babel17Parser.p_basic_expr_return p_basic_expr717 = null;
CommonTree NL716_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_p_basic_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_basic_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:2: ( p_basic_expr ( ( NL )? p_basic_expr )* -> ^( APPLY ( p_basic_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:4: p_basic_expr ( ( NL )? p_basic_expr )*
{
pushFollow(FOLLOW_p_basic_expr_in_p_apply_expr6358);
p_basic_expr715=p_basic_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_basic_expr.add(p_basic_expr715.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:17: ( ( NL )? p_basic_expr )*
loop330:
do {
int alt330=2;
switch ( input.LA(1) ) {
case NL:
{
int LA330_1 = input.LA(2);
if ( (LA330_1==L_try) ) {
int LA330_3 = input.LA(3);
if ( (LA330_3==NL) ) {
int LA330_5 = input.LA(4);
if ( (LA330_5==L_begin||(LA330_5>=L_obj && LA330_5<=L_if)||(LA330_5>=L_while && LA330_5<=L_for)||(LA330_5>=L_yield && LA330_5<=L_match)||(LA330_5>=L_val && LA330_5<=L_def)||LA330_5==L_exception||LA330_5==L_try||(LA330_5>=L_concurrent && LA330_5<=L_nil)||(LA330_5>=L_module && LA330_5<=L_import)||LA330_5==L_not||(LA330_5>=L_root && LA330_5<=L_lens)||LA330_5==MINUS||(LA330_5>=A_ELLIPSIS && LA330_5<=U_ELLIPSIS)||LA330_5==L_force||(LA330_5>=Constr && LA330_5<=Id)||(LA330_5>=Float && LA330_5<=Num)||(LA330_5>=String && LA330_5<=ROUND_BRACKET_OPEN)||LA330_5==SQUARE_BRACKET_OPEN||LA330_5==CURLY_BRACKET_OPEN||LA330_5==UNDERSCORE||(LA330_5>=PRAGMA_LOG && LA330_5<=PRAGMA_CATCH)) ) {
alt330=1;
}
}
else if ( (LA330_3==L_begin||(LA330_3>=L_obj && LA330_3<=L_if)||(LA330_3>=L_while && LA330_3<=L_for)||(LA330_3>=L_yield && LA330_3<=L_match)||(LA330_3>=L_val && LA330_3<=L_def)||LA330_3==L_exception||LA330_3==L_try||(LA330_3>=L_concurrent && LA330_3<=L_nil)||(LA330_3>=L_module && LA330_3<=L_import)||LA330_3==L_not||(LA330_3>=L_root && LA330_3<=L_lens)||LA330_3==MINUS||(LA330_3>=A_ELLIPSIS && LA330_3<=U_ELLIPSIS)||LA330_3==L_force||(LA330_3>=Constr && LA330_3<=Id)||(LA330_3>=Float && LA330_3<=Num)||(LA330_3>=String && LA330_3<=ROUND_BRACKET_OPEN)||LA330_3==SQUARE_BRACKET_OPEN||LA330_3==CURLY_BRACKET_OPEN||LA330_3==UNDERSCORE||(LA330_3>=PRAGMA_LOG && LA330_3<=PRAGMA_CATCH)) ) {
alt330=1;
}
}
else if ( (LA330_1==L_begin||(LA330_1>=L_obj && LA330_1<=L_if)||(LA330_1>=L_while && LA330_1<=L_for)||LA330_1==L_match||(LA330_1>=L_true && LA330_1<=L_this)||LA330_1==L_nil||LA330_1==L_root||(LA330_1>=Constr && LA330_1<=Id)||(LA330_1>=Float && LA330_1<=Num)||(LA330_1>=String && LA330_1<=ROUND_BRACKET_OPEN)||LA330_1==SQUARE_BRACKET_OPEN||LA330_1==CURLY_BRACKET_OPEN) ) {
alt330=1;
}
}
break;
case L_try:
{
int LA330_3 = input.LA(2);
if ( (LA330_3==NL) ) {
int LA330_5 = input.LA(3);
if ( (LA330_5==L_begin||(LA330_5>=L_obj && LA330_5<=L_if)||(LA330_5>=L_while && LA330_5<=L_for)||(LA330_5>=L_yield && LA330_5<=L_match)||(LA330_5>=L_val && LA330_5<=L_def)||LA330_5==L_exception||LA330_5==L_try||(LA330_5>=L_concurrent && LA330_5<=L_nil)||(LA330_5>=L_module && LA330_5<=L_import)||LA330_5==L_not||(LA330_5>=L_root && LA330_5<=L_lens)||LA330_5==MINUS||(LA330_5>=A_ELLIPSIS && LA330_5<=U_ELLIPSIS)||LA330_5==L_force||(LA330_5>=Constr && LA330_5<=Id)||(LA330_5>=Float && LA330_5<=Num)||(LA330_5>=String && LA330_5<=ROUND_BRACKET_OPEN)||LA330_5==SQUARE_BRACKET_OPEN||LA330_5==CURLY_BRACKET_OPEN||LA330_5==UNDERSCORE||(LA330_5>=PRAGMA_LOG && LA330_5<=PRAGMA_CATCH)) ) {
alt330=1;
}
}
else if ( (LA330_3==L_begin||(LA330_3>=L_obj && LA330_3<=L_if)||(LA330_3>=L_while && LA330_3<=L_for)||(LA330_3>=L_yield && LA330_3<=L_match)||(LA330_3>=L_val && LA330_3<=L_def)||LA330_3==L_exception||LA330_3==L_try||(LA330_3>=L_concurrent && LA330_3<=L_nil)||(LA330_3>=L_module && LA330_3<=L_import)||LA330_3==L_not||(LA330_3>=L_root && LA330_3<=L_lens)||LA330_3==MINUS||(LA330_3>=A_ELLIPSIS && LA330_3<=U_ELLIPSIS)||LA330_3==L_force||(LA330_3>=Constr && LA330_3<=Id)||(LA330_3>=Float && LA330_3<=Num)||(LA330_3>=String && LA330_3<=ROUND_BRACKET_OPEN)||LA330_3==SQUARE_BRACKET_OPEN||LA330_3==CURLY_BRACKET_OPEN||LA330_3==UNDERSCORE||(LA330_3>=PRAGMA_LOG && LA330_3<=PRAGMA_CATCH)) ) {
alt330=1;
}
}
break;
case L_begin:
case L_obj:
case L_with:
case L_if:
case L_while:
case L_for:
case L_match:
case L_true:
case L_false:
case L_this:
case L_nil:
case L_root:
case Constr:
case Id:
case Float:
case Num:
case String:
case ROUND_BRACKET_OPEN:
case SQUARE_BRACKET_OPEN:
case CURLY_BRACKET_OPEN:
{
alt330=1;
}
break;
}
switch (alt330) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:18: ( NL )? p_basic_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:18: ( NL )?
int alt329=2;
int LA329_0 = input.LA(1);
if ( (LA329_0==NL) ) {
alt329=1;
}
switch (alt329) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:18: NL
{
NL716=(Token)match(input,NL,FOLLOW_NL_in_p_apply_expr6361); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL716);
}
break;
}
pushFollow(FOLLOW_p_basic_expr_in_p_apply_expr6364);
p_basic_expr717=p_basic_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_basic_expr.add(p_basic_expr717.getTree());
}
break;
default :
break loop330;
}
} while (true);
// AST REWRITE
// elements: p_basic_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 876:37: -> ^( APPLY ( p_basic_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:40: ^( APPLY ( p_basic_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APPLY, "APPLY"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:876:48: ( p_basic_expr )*
while ( stream_p_basic_expr.hasNext() ) {
adaptor.addChild(root_1, stream_p_basic_expr.nextTree());
}
stream_p_basic_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_apply_expr"
public static class basic_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "basic_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:878:1: basic_expr : message_send_expr ;
public final babel17Parser.basic_expr_return basic_expr() throws RecognitionException {
babel17Parser.basic_expr_return retval = new babel17Parser.basic_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.message_send_expr_return message_send_expr718 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:879:2: ( message_send_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:879:4: message_send_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_message_send_expr_in_basic_expr6384);
message_send_expr718=message_send_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, message_send_expr718.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "basic_expr"
public static class p_basic_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "p_basic_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:881:1: p_basic_expr : message_send_expr ;
public final babel17Parser.p_basic_expr_return p_basic_expr() throws RecognitionException {
babel17Parser.p_basic_expr_return retval = new babel17Parser.p_basic_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
babel17Parser.message_send_expr_return message_send_expr719 = null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:882:2: ( message_send_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:882:4: message_send_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_message_send_expr_in_p_basic_expr6393);
message_send_expr719=message_send_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, message_send_expr719.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "p_basic_expr"
public static class message_send_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "message_send_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:884:1: message_send_expr : primitive_expr ( ( NL )? PERIOD ( NL )? message_expr )* -> ^( MESSAGE_SEND primitive_expr ( message_expr )* ) ;
public final babel17Parser.message_send_expr_return message_send_expr() throws RecognitionException {
babel17Parser.message_send_expr_return retval = new babel17Parser.message_send_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL721=null;
Token PERIOD722=null;
Token NL723=null;
babel17Parser.primitive_expr_return primitive_expr720 = null;
babel17Parser.message_expr_return message_expr724 = null;
CommonTree NL721_tree=null;
CommonTree PERIOD722_tree=null;
CommonTree NL723_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_PERIOD=new RewriteRuleTokenStream(adaptor,"token PERIOD");
RewriteRuleSubtreeStream stream_primitive_expr=new RewriteRuleSubtreeStream(adaptor,"rule primitive_expr");
RewriteRuleSubtreeStream stream_message_expr=new RewriteRuleSubtreeStream(adaptor,"rule message_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:2: ( primitive_expr ( ( NL )? PERIOD ( NL )? message_expr )* -> ^( MESSAGE_SEND primitive_expr ( message_expr )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:4: primitive_expr ( ( NL )? PERIOD ( NL )? message_expr )*
{
pushFollow(FOLLOW_primitive_expr_in_message_send_expr6402);
primitive_expr720=primitive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primitive_expr.add(primitive_expr720.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:19: ( ( NL )? PERIOD ( NL )? message_expr )*
loop333:
do {
int alt333=2;
int LA333_0 = input.LA(1);
if ( (LA333_0==NL) ) {
int LA333_1 = input.LA(2);
if ( (LA333_1==PERIOD) ) {
alt333=1;
}
}
else if ( (LA333_0==PERIOD) ) {
alt333=1;
}
switch (alt333) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:20: ( NL )? PERIOD ( NL )? message_expr
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:20: ( NL )?
int alt331=2;
int LA331_0 = input.LA(1);
if ( (LA331_0==NL) ) {
alt331=1;
}
switch (alt331) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:20: NL
{
NL721=(Token)match(input,NL,FOLLOW_NL_in_message_send_expr6405); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL721);
}
break;
}
PERIOD722=(Token)match(input,PERIOD,FOLLOW_PERIOD_in_message_send_expr6408); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERIOD.add(PERIOD722);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:31: ( NL )?
int alt332=2;
int LA332_0 = input.LA(1);
if ( (LA332_0==NL) ) {
alt332=1;
}
switch (alt332) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:31: NL
{
NL723=(Token)match(input,NL,FOLLOW_NL_in_message_send_expr6410); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL723);
}
break;
}
pushFollow(FOLLOW_message_expr_in_message_send_expr6413);
message_expr724=message_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_message_expr.add(message_expr724.getTree());
}
break;
default :
break loop333;
}
} while (true);
// AST REWRITE
// elements: message_expr, primitive_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 885:50: -> ^( MESSAGE_SEND primitive_expr ( message_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:53: ^( MESSAGE_SEND primitive_expr ( message_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MESSAGE_SEND, "MESSAGE_SEND"), root_1);
adaptor.addChild(root_1, stream_primitive_expr.nextTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:885:83: ( message_expr )*
while ( stream_message_expr.hasNext() ) {
adaptor.addChild(root_1, stream_message_expr.nextTree());
}
stream_message_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "message_send_expr"
public static class message_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "message_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:887:1: message_expr : ( Id -> ^( MESSAGE_ID Id ) | '(' ( NL )? p_op_expr ( NL )? ')' -> ^( MESSAGE_LENS p_op_expr ) );
public final babel17Parser.message_expr_return message_expr() throws RecognitionException {
babel17Parser.message_expr_return retval = new babel17Parser.message_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Id725=null;
Token char_literal726=null;
Token NL727=null;
Token NL729=null;
Token char_literal730=null;
babel17Parser.p_op_expr_return p_op_expr728 = null;
CommonTree Id725_tree=null;
CommonTree char_literal726_tree=null;
CommonTree NL727_tree=null;
CommonTree NL729_tree=null;
CommonTree char_literal730_tree=null;
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleTokenStream stream_Id=new RewriteRuleTokenStream(adaptor,"token Id");
RewriteRuleSubtreeStream stream_p_op_expr=new RewriteRuleSubtreeStream(adaptor,"rule p_op_expr");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:888:2: ( Id -> ^( MESSAGE_ID Id ) | '(' ( NL )? p_op_expr ( NL )? ')' -> ^( MESSAGE_LENS p_op_expr ) )
int alt336=2;
int LA336_0 = input.LA(1);
if ( (LA336_0==Id) ) {
alt336=1;
}
else if ( (LA336_0==ROUND_BRACKET_OPEN) ) {
alt336=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 336, 0, input);
throw nvae;
}
switch (alt336) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:888:4: Id
{
Id725=(Token)match(input,Id,FOLLOW_Id_in_message_expr6436); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_Id.add(Id725);
// AST REWRITE
// elements: Id
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 888:7: -> ^( MESSAGE_ID Id )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:888:10: ^( MESSAGE_ID Id )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MESSAGE_ID, "MESSAGE_ID"), root_1);
adaptor.addChild(root_1, stream_Id.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:889:4: '(' ( NL )? p_op_expr ( NL )? ')'
{
char_literal726=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_message_expr6449); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal726);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:889:8: ( NL )?
int alt334=2;
int LA334_0 = input.LA(1);
if ( (LA334_0==NL) ) {
alt334=1;
}
switch (alt334) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:889:8: NL
{
NL727=(Token)match(input,NL,FOLLOW_NL_in_message_expr6451); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL727);
}
break;
}
pushFollow(FOLLOW_p_op_expr_in_message_expr6454);
p_op_expr728=p_op_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_p_op_expr.add(p_op_expr728.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:889:22: ( NL )?
int alt335=2;
int LA335_0 = input.LA(1);
if ( (LA335_0==NL) ) {
alt335=1;
}
switch (alt335) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:889:22: NL
{
NL729=(Token)match(input,NL,FOLLOW_NL_in_message_expr6456); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL729);
}
break;
}
char_literal730=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_message_expr6459); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal730);
// AST REWRITE
// elements: p_op_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 889:30: -> ^( MESSAGE_LENS p_op_expr )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:889:33: ^( MESSAGE_LENS p_op_expr )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MESSAGE_LENS, "MESSAGE_LENS"), root_1);
adaptor.addChild(root_1, stream_p_op_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "message_expr"
public static class list_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "list_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:891:1: list_expr : ( ( '[' ( NL )? protected_expr_nc ( NL )? ';' )=> '[' ( NL )? protected_expr_nc ( NL )? ';' ( NL )? protected_expr_nc ( NL )? ']' -> ^( INTERVAL ( protected_expr_nc )* ) | '[' ( NL )? ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? )? ']' -> ^( SQUARE_LIST ( protected_expr_nc )* ) | '(' ( NL )? ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? ( COMMA ( NL )? )? )? ')' -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( protected_expr_nc )* ) ) );
public final babel17Parser.list_expr_return list_expr() throws RecognitionException {
babel17Parser.list_expr_return retval = new babel17Parser.list_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal731=null;
Token NL732=null;
Token NL734=null;
Token char_literal735=null;
Token NL736=null;
Token NL738=null;
Token char_literal739=null;
Token char_literal740=null;
Token NL741=null;
Token NL743=null;
Token COMMA744=null;
Token NL745=null;
Token NL747=null;
Token char_literal748=null;
Token char_literal749=null;
Token NL750=null;
Token NL752=null;
Token COMMA753=null;
Token NL754=null;
Token NL756=null;
Token COMMA757=null;
Token NL758=null;
Token char_literal759=null;
babel17Parser.protected_expr_nc_return protected_expr_nc733 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc737 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc742 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc746 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc751 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc755 = null;
CommonTree char_literal731_tree=null;
CommonTree NL732_tree=null;
CommonTree NL734_tree=null;
CommonTree char_literal735_tree=null;
CommonTree NL736_tree=null;
CommonTree NL738_tree=null;
CommonTree char_literal739_tree=null;
CommonTree char_literal740_tree=null;
CommonTree NL741_tree=null;
CommonTree NL743_tree=null;
CommonTree COMMA744_tree=null;
CommonTree NL745_tree=null;
CommonTree NL747_tree=null;
CommonTree char_literal748_tree=null;
CommonTree char_literal749_tree=null;
CommonTree NL750_tree=null;
CommonTree NL752_tree=null;
CommonTree COMMA753_tree=null;
CommonTree NL754_tree=null;
CommonTree NL756_tree=null;
CommonTree COMMA757_tree=null;
CommonTree NL758_tree=null;
CommonTree char_literal759_tree=null;
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_SC=new RewriteRuleTokenStream(adaptor,"token SC");
RewriteRuleTokenStream stream_SQUARE_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token SQUARE_BRACKET_CLOSE");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_SQUARE_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token SQUARE_BRACKET_OPEN");
RewriteRuleSubtreeStream stream_protected_expr_nc=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr_nc");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:2: ( ( '[' ( NL )? protected_expr_nc ( NL )? ';' )=> '[' ( NL )? protected_expr_nc ( NL )? ';' ( NL )? protected_expr_nc ( NL )? ']' -> ^( INTERVAL ( protected_expr_nc )* ) | '[' ( NL )? ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? )? ']' -> ^( SQUARE_LIST ( protected_expr_nc )* ) | '(' ( NL )? ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? ( COMMA ( NL )? )? )? ')' -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( protected_expr_nc )* ) ) )
int alt355=3;
int LA355_0 = input.LA(1);
if ( (LA355_0==SQUARE_BRACKET_OPEN) ) {
int LA355_1 = input.LA(2);
if ( (synpred19_babel17()) ) {
alt355=1;
}
else if ( (true) ) {
alt355=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 355, 1, input);
throw nvae;
}
}
else if ( (LA355_0==ROUND_BRACKET_OPEN) ) {
alt355=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 355, 0, input);
throw nvae;
}
switch (alt355) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:4: ( '[' ( NL )? protected_expr_nc ( NL )? ';' )=> '[' ( NL )? protected_expr_nc ( NL )? ';' ( NL )? protected_expr_nc ( NL )? ']'
{
char_literal731=(Token)match(input,SQUARE_BRACKET_OPEN,FOLLOW_SQUARE_BRACKET_OPEN_in_list_expr6494); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SQUARE_BRACKET_OPEN.add(char_literal731);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:47: ( NL )?
int alt337=2;
int LA337_0 = input.LA(1);
if ( (LA337_0==NL) ) {
alt337=1;
}
switch (alt337) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:47: NL
{
NL732=(Token)match(input,NL,FOLLOW_NL_in_list_expr6496); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL732);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_list_expr6499);
protected_expr_nc733=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc733.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:69: ( NL )?
int alt338=2;
int LA338_0 = input.LA(1);
if ( (LA338_0==NL) ) {
alt338=1;
}
switch (alt338) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:69: NL
{
NL734=(Token)match(input,NL,FOLLOW_NL_in_list_expr6501); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL734);
}
break;
}
char_literal735=(Token)match(input,SC,FOLLOW_SC_in_list_expr6504); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SC.add(char_literal735);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:77: ( NL )?
int alt339=2;
int LA339_0 = input.LA(1);
if ( (LA339_0==NL) ) {
alt339=1;
}
switch (alt339) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:77: NL
{
NL736=(Token)match(input,NL,FOLLOW_NL_in_list_expr6506); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL736);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_list_expr6509);
protected_expr_nc737=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc737.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:99: ( NL )?
int alt340=2;
int LA340_0 = input.LA(1);
if ( (LA340_0==NL) ) {
alt340=1;
}
switch (alt340) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:99: NL
{
NL738=(Token)match(input,NL,FOLLOW_NL_in_list_expr6511); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL738);
}
break;
}
char_literal739=(Token)match(input,SQUARE_BRACKET_CLOSE,FOLLOW_SQUARE_BRACKET_CLOSE_in_list_expr6514); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SQUARE_BRACKET_CLOSE.add(char_literal739);
// AST REWRITE
// elements: protected_expr_nc
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 892:107: -> ^( INTERVAL ( protected_expr_nc )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:110: ^( INTERVAL ( protected_expr_nc )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INTERVAL, "INTERVAL"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:121: ( protected_expr_nc )*
while ( stream_protected_expr_nc.hasNext() ) {
adaptor.addChild(root_1, stream_protected_expr_nc.nextTree());
}
stream_protected_expr_nc.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:4: '[' ( NL )? ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? )? ']'
{
char_literal740=(Token)match(input,SQUARE_BRACKET_OPEN,FOLLOW_SQUARE_BRACKET_OPEN_in_list_expr6528); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SQUARE_BRACKET_OPEN.add(char_literal740);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:8: ( NL )?
int alt341=2;
int LA341_0 = input.LA(1);
if ( (LA341_0==NL) ) {
alt341=1;
}
switch (alt341) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:8: NL
{
NL741=(Token)match(input,NL,FOLLOW_NL_in_list_expr6530); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL741);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:12: ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? )?
int alt346=2;
int LA346_0 = input.LA(1);
if ( (LA346_0==L_begin||(LA346_0>=L_obj && LA346_0<=L_if)||(LA346_0>=L_while && LA346_0<=L_for)||LA346_0==L_match||LA346_0==L_exception||LA346_0==L_try||(LA346_0>=L_concurrent && LA346_0<=L_lazy)||(LA346_0>=L_true && LA346_0<=L_nil)||LA346_0==L_typeof||LA346_0==L_not||(LA346_0>=L_root && LA346_0<=L_lens)||LA346_0==MINUS||(LA346_0>=A_ELLIPSIS && LA346_0<=U_ELLIPSIS)||LA346_0==L_force||(LA346_0>=Constr && LA346_0<=Id)||(LA346_0>=Float && LA346_0<=Num)||(LA346_0>=String && LA346_0<=ROUND_BRACKET_OPEN)||LA346_0==SQUARE_BRACKET_OPEN||LA346_0==CURLY_BRACKET_OPEN||LA346_0==UNDERSCORE) ) {
alt346=1;
}
switch (alt346) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:13: protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )?
{
pushFollow(FOLLOW_protected_expr_nc_in_list_expr6534);
protected_expr_nc742=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc742.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:31: ( ( NL )? COMMA ( NL )? protected_expr_nc )*
loop344:
do {
int alt344=2;
int LA344_0 = input.LA(1);
if ( (LA344_0==NL) ) {
int LA344_1 = input.LA(2);
if ( (LA344_1==COMMA) ) {
alt344=1;
}
}
else if ( (LA344_0==COMMA) ) {
alt344=1;
}
switch (alt344) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:32: ( NL )? COMMA ( NL )? protected_expr_nc
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:32: ( NL )?
int alt342=2;
int LA342_0 = input.LA(1);
if ( (LA342_0==NL) ) {
alt342=1;
}
switch (alt342) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:32: NL
{
NL743=(Token)match(input,NL,FOLLOW_NL_in_list_expr6537); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL743);
}
break;
}
COMMA744=(Token)match(input,COMMA,FOLLOW_COMMA_in_list_expr6540); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA744);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:42: ( NL )?
int alt343=2;
int LA343_0 = input.LA(1);
if ( (LA343_0==NL) ) {
alt343=1;
}
switch (alt343) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:42: NL
{
NL745=(Token)match(input,NL,FOLLOW_NL_in_list_expr6542); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL745);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_list_expr6545);
protected_expr_nc746=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc746.getTree());
}
break;
default :
break loop344;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:66: ( NL )?
int alt345=2;
int LA345_0 = input.LA(1);
if ( (LA345_0==NL) ) {
alt345=1;
}
switch (alt345) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:66: NL
{
NL747=(Token)match(input,NL,FOLLOW_NL_in_list_expr6549); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL747);
}
break;
}
}
break;
}
char_literal748=(Token)match(input,SQUARE_BRACKET_CLOSE,FOLLOW_SQUARE_BRACKET_CLOSE_in_list_expr6554); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SQUARE_BRACKET_CLOSE.add(char_literal748);
// AST REWRITE
// elements: protected_expr_nc
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 893:76: -> ^( SQUARE_LIST ( protected_expr_nc )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:79: ^( SQUARE_LIST ( protected_expr_nc )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(SQUARE_LIST, "SQUARE_LIST"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:893:93: ( protected_expr_nc )*
while ( stream_protected_expr_nc.hasNext() ) {
adaptor.addChild(root_1, stream_protected_expr_nc.nextTree());
}
stream_protected_expr_nc.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:4: '(' ( NL )? ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? ( COMMA ( NL )? )? )? ')'
{
char_literal749=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_list_expr6568); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal749);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:8: ( NL )?
int alt347=2;
int LA347_0 = input.LA(1);
if ( (LA347_0==NL) ) {
alt347=1;
}
switch (alt347) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:8: NL
{
NL750=(Token)match(input,NL,FOLLOW_NL_in_list_expr6570); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL750);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:12: ( protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? ( COMMA ( NL )? )? )?
int alt354=2;
int LA354_0 = input.LA(1);
if ( (LA354_0==L_begin||(LA354_0>=L_obj && LA354_0<=L_if)||(LA354_0>=L_while && LA354_0<=L_for)||LA354_0==L_match||LA354_0==L_exception||LA354_0==L_try||(LA354_0>=L_concurrent && LA354_0<=L_lazy)||(LA354_0>=L_true && LA354_0<=L_nil)||LA354_0==L_typeof||LA354_0==L_not||(LA354_0>=L_root && LA354_0<=L_lens)||LA354_0==MINUS||(LA354_0>=A_ELLIPSIS && LA354_0<=U_ELLIPSIS)||LA354_0==L_force||(LA354_0>=Constr && LA354_0<=Id)||(LA354_0>=Float && LA354_0<=Num)||(LA354_0>=String && LA354_0<=ROUND_BRACKET_OPEN)||LA354_0==SQUARE_BRACKET_OPEN||LA354_0==CURLY_BRACKET_OPEN||LA354_0==UNDERSCORE) ) {
alt354=1;
}
switch (alt354) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:13: protected_expr_nc ( ( NL )? COMMA ( NL )? protected_expr_nc )* ( NL )? ( COMMA ( NL )? )?
{
pushFollow(FOLLOW_protected_expr_nc_in_list_expr6574);
protected_expr_nc751=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc751.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:31: ( ( NL )? COMMA ( NL )? protected_expr_nc )*
loop350:
do {
int alt350=2;
int LA350_0 = input.LA(1);
if ( (LA350_0==NL) ) {
int LA350_1 = input.LA(2);
if ( (LA350_1==COMMA) ) {
int LA350_2 = input.LA(3);
if ( (LA350_2==NL) ) {
int LA350_4 = input.LA(4);
if ( (LA350_4==L_begin||(LA350_4>=L_obj && LA350_4<=L_if)||(LA350_4>=L_while && LA350_4<=L_for)||LA350_4==L_match||LA350_4==L_exception||LA350_4==L_try||(LA350_4>=L_concurrent && LA350_4<=L_lazy)||(LA350_4>=L_true && LA350_4<=L_nil)||LA350_4==L_typeof||LA350_4==L_not||(LA350_4>=L_root && LA350_4<=L_lens)||LA350_4==MINUS||(LA350_4>=A_ELLIPSIS && LA350_4<=U_ELLIPSIS)||LA350_4==L_force||(LA350_4>=Constr && LA350_4<=Id)||(LA350_4>=Float && LA350_4<=Num)||(LA350_4>=String && LA350_4<=ROUND_BRACKET_OPEN)||LA350_4==SQUARE_BRACKET_OPEN||LA350_4==CURLY_BRACKET_OPEN||LA350_4==UNDERSCORE) ) {
alt350=1;
}
}
else if ( (LA350_2==L_begin||(LA350_2>=L_obj && LA350_2<=L_if)||(LA350_2>=L_while && LA350_2<=L_for)||LA350_2==L_match||LA350_2==L_exception||LA350_2==L_try||(LA350_2>=L_concurrent && LA350_2<=L_lazy)||(LA350_2>=L_true && LA350_2<=L_nil)||LA350_2==L_typeof||LA350_2==L_not||(LA350_2>=L_root && LA350_2<=L_lens)||LA350_2==MINUS||(LA350_2>=A_ELLIPSIS && LA350_2<=U_ELLIPSIS)||LA350_2==L_force||(LA350_2>=Constr && LA350_2<=Id)||(LA350_2>=Float && LA350_2<=Num)||(LA350_2>=String && LA350_2<=ROUND_BRACKET_OPEN)||LA350_2==SQUARE_BRACKET_OPEN||LA350_2==CURLY_BRACKET_OPEN||LA350_2==UNDERSCORE) ) {
alt350=1;
}
}
}
else if ( (LA350_0==COMMA) ) {
int LA350_2 = input.LA(2);
if ( (LA350_2==NL) ) {
int LA350_4 = input.LA(3);
if ( (LA350_4==L_begin||(LA350_4>=L_obj && LA350_4<=L_if)||(LA350_4>=L_while && LA350_4<=L_for)||LA350_4==L_match||LA350_4==L_exception||LA350_4==L_try||(LA350_4>=L_concurrent && LA350_4<=L_lazy)||(LA350_4>=L_true && LA350_4<=L_nil)||LA350_4==L_typeof||LA350_4==L_not||(LA350_4>=L_root && LA350_4<=L_lens)||LA350_4==MINUS||(LA350_4>=A_ELLIPSIS && LA350_4<=U_ELLIPSIS)||LA350_4==L_force||(LA350_4>=Constr && LA350_4<=Id)||(LA350_4>=Float && LA350_4<=Num)||(LA350_4>=String && LA350_4<=ROUND_BRACKET_OPEN)||LA350_4==SQUARE_BRACKET_OPEN||LA350_4==CURLY_BRACKET_OPEN||LA350_4==UNDERSCORE) ) {
alt350=1;
}
}
else if ( (LA350_2==L_begin||(LA350_2>=L_obj && LA350_2<=L_if)||(LA350_2>=L_while && LA350_2<=L_for)||LA350_2==L_match||LA350_2==L_exception||LA350_2==L_try||(LA350_2>=L_concurrent && LA350_2<=L_lazy)||(LA350_2>=L_true && LA350_2<=L_nil)||LA350_2==L_typeof||LA350_2==L_not||(LA350_2>=L_root && LA350_2<=L_lens)||LA350_2==MINUS||(LA350_2>=A_ELLIPSIS && LA350_2<=U_ELLIPSIS)||LA350_2==L_force||(LA350_2>=Constr && LA350_2<=Id)||(LA350_2>=Float && LA350_2<=Num)||(LA350_2>=String && LA350_2<=ROUND_BRACKET_OPEN)||LA350_2==SQUARE_BRACKET_OPEN||LA350_2==CURLY_BRACKET_OPEN||LA350_2==UNDERSCORE) ) {
alt350=1;
}
}
switch (alt350) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:32: ( NL )? COMMA ( NL )? protected_expr_nc
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:32: ( NL )?
int alt348=2;
int LA348_0 = input.LA(1);
if ( (LA348_0==NL) ) {
alt348=1;
}
switch (alt348) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:32: NL
{
NL752=(Token)match(input,NL,FOLLOW_NL_in_list_expr6577); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL752);
}
break;
}
COMMA753=(Token)match(input,COMMA,FOLLOW_COMMA_in_list_expr6580); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA753);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:42: ( NL )?
int alt349=2;
int LA349_0 = input.LA(1);
if ( (LA349_0==NL) ) {
alt349=1;
}
switch (alt349) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:42: NL
{
NL754=(Token)match(input,NL,FOLLOW_NL_in_list_expr6582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL754);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_list_expr6585);
protected_expr_nc755=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc755.getTree());
}
break;
default :
break loop350;
}
} while (true);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:66: ( NL )?
int alt351=2;
int LA351_0 = input.LA(1);
if ( (LA351_0==NL) ) {
alt351=1;
}
switch (alt351) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:66: NL
{
NL756=(Token)match(input,NL,FOLLOW_NL_in_list_expr6589); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL756);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:70: ( COMMA ( NL )? )?
int alt353=2;
int LA353_0 = input.LA(1);
if ( (LA353_0==COMMA) ) {
alt353=1;
}
switch (alt353) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:71: COMMA ( NL )?
{
COMMA757=(Token)match(input,COMMA,FOLLOW_COMMA_in_list_expr6593); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA757);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:77: ( NL )?
int alt352=2;
int LA352_0 = input.LA(1);
if ( (LA352_0==NL) ) {
alt352=1;
}
switch (alt352) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:77: NL
{
NL758=(Token)match(input,NL,FOLLOW_NL_in_list_expr6595); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL758);
}
break;
}
}
break;
}
}
break;
}
char_literal759=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_list_expr6602); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal759);
// AST REWRITE
// elements: protected_expr_nc, COMMA
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 894:89: -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( protected_expr_nc )* ) )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:92: ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( protected_expr_nc )* ) )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ROUND_LIST, "ROUND_LIST"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:105: ^( NIL_TOKEN ( COMMA )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:117: ( COMMA )*
while ( stream_COMMA.hasNext() ) {
adaptor.addChild(root_2, stream_COMMA.nextNode());
}
stream_COMMA.reset();
adaptor.addChild(root_1, root_2);
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:125: ^( NIL_TOKEN ( protected_expr_nc )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:894:137: ( protected_expr_nc )*
while ( stream_protected_expr_nc.hasNext() ) {
adaptor.addChild(root_2, stream_protected_expr_nc.nextTree());
}
stream_protected_expr_nc.reset();
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "list_expr"
public static class map_or_set_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "map_or_set_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:896:1: map_or_set_expr : ( '{' ( NL )? ( map_or_set_elem_expr ( NL )? ( COMMA ( NL )? map_or_set_elem_expr ( NL )? )* )? '}' -> ^( MAP_OR_SET_OR_OBJ ( map_or_set_elem_expr )* ) | '{' ( NL )? token_ARROW ( NL )? '}' -> ^( EMPTY_MAP ) );
public final babel17Parser.map_or_set_expr_return map_or_set_expr() throws RecognitionException {
babel17Parser.map_or_set_expr_return retval = new babel17Parser.map_or_set_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal760=null;
Token NL761=null;
Token NL763=null;
Token COMMA764=null;
Token NL765=null;
Token NL767=null;
Token char_literal768=null;
Token char_literal769=null;
Token NL770=null;
Token NL772=null;
Token char_literal773=null;
babel17Parser.map_or_set_elem_expr_return map_or_set_elem_expr762 = null;
babel17Parser.map_or_set_elem_expr_return map_or_set_elem_expr766 = null;
babel17Parser.token_ARROW_return token_ARROW771 = null;
CommonTree char_literal760_tree=null;
CommonTree NL761_tree=null;
CommonTree NL763_tree=null;
CommonTree COMMA764_tree=null;
CommonTree NL765_tree=null;
CommonTree NL767_tree=null;
CommonTree char_literal768_tree=null;
CommonTree char_literal769_tree=null;
CommonTree NL770_tree=null;
CommonTree NL772_tree=null;
CommonTree char_literal773_tree=null;
RewriteRuleTokenStream stream_CURLY_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token CURLY_BRACKET_OPEN");
RewriteRuleTokenStream stream_CURLY_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token CURLY_BRACKET_CLOSE");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_map_or_set_elem_expr=new RewriteRuleSubtreeStream(adaptor,"rule map_or_set_elem_expr");
RewriteRuleSubtreeStream stream_token_ARROW=new RewriteRuleSubtreeStream(adaptor,"rule token_ARROW");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:2: ( '{' ( NL )? ( map_or_set_elem_expr ( NL )? ( COMMA ( NL )? map_or_set_elem_expr ( NL )? )* )? '}' -> ^( MAP_OR_SET_OR_OBJ ( map_or_set_elem_expr )* ) | '{' ( NL )? token_ARROW ( NL )? '}' -> ^( EMPTY_MAP ) )
int alt364=2;
int LA364_0 = input.LA(1);
if ( (LA364_0==CURLY_BRACKET_OPEN) ) {
switch ( input.LA(2) ) {
case NL:
{
int LA364_2 = input.LA(3);
if ( ((LA364_2>=A_ARROW && LA364_2<=U_ARROW)) ) {
alt364=2;
}
else if ( (LA364_2==L_begin||(LA364_2>=L_obj && LA364_2<=L_if)||(LA364_2>=L_while && LA364_2<=L_for)||LA364_2==L_match||LA364_2==L_exception||LA364_2==L_try||(LA364_2>=L_concurrent && LA364_2<=L_lazy)||(LA364_2>=L_true && LA364_2<=L_nil)||LA364_2==L_typeof||LA364_2==L_not||(LA364_2>=L_root && LA364_2<=L_lens)||LA364_2==MINUS||(LA364_2>=A_ELLIPSIS && LA364_2<=U_ELLIPSIS)||LA364_2==L_force||(LA364_2>=Constr && LA364_2<=Id)||(LA364_2>=Float && LA364_2<=Num)||(LA364_2>=String && LA364_2<=ROUND_BRACKET_OPEN)||LA364_2==SQUARE_BRACKET_OPEN||(LA364_2>=CURLY_BRACKET_OPEN && LA364_2<=UNDERSCORE)) ) {
alt364=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 364, 2, input);
throw nvae;
}
}
break;
case L_begin:
case L_obj:
case L_with:
case L_if:
case L_while:
case L_for:
case L_match:
case L_exception:
case L_try:
case L_concurrent:
case L_choose:
case L_lazy:
case L_true:
case L_false:
case L_this:
case L_random:
case L_nil:
case L_typeof:
case L_not:
case L_root:
case L_native:
case L_min:
case L_max:
case L_lens:
case MINUS:
case A_ELLIPSIS:
case U_ELLIPSIS:
case L_force:
case Constr:
case Id:
case Float:
case Num:
case String:
case ROUND_BRACKET_OPEN:
case SQUARE_BRACKET_OPEN:
case CURLY_BRACKET_OPEN:
case CURLY_BRACKET_CLOSE:
case UNDERSCORE:
{
alt364=1;
}
break;
case A_ARROW:
case U_ARROW:
{
alt364=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 364, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 364, 0, input);
throw nvae;
}
switch (alt364) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:4: '{' ( NL )? ( map_or_set_elem_expr ( NL )? ( COMMA ( NL )? map_or_set_elem_expr ( NL )? )* )? '}'
{
char_literal760=(Token)match(input,CURLY_BRACKET_OPEN,FOLLOW_CURLY_BRACKET_OPEN_in_map_or_set_expr6631); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_OPEN.add(char_literal760);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:8: ( NL )?
int alt356=2;
int LA356_0 = input.LA(1);
if ( (LA356_0==NL) ) {
alt356=1;
}
switch (alt356) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:8: NL
{
NL761=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_expr6633); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL761);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:12: ( map_or_set_elem_expr ( NL )? ( COMMA ( NL )? map_or_set_elem_expr ( NL )? )* )?
int alt361=2;
int LA361_0 = input.LA(1);
if ( (LA361_0==L_begin||(LA361_0>=L_obj && LA361_0<=L_if)||(LA361_0>=L_while && LA361_0<=L_for)||LA361_0==L_match||LA361_0==L_exception||LA361_0==L_try||(LA361_0>=L_concurrent && LA361_0<=L_lazy)||(LA361_0>=L_true && LA361_0<=L_nil)||LA361_0==L_typeof||LA361_0==L_not||(LA361_0>=L_root && LA361_0<=L_lens)||LA361_0==MINUS||(LA361_0>=A_ELLIPSIS && LA361_0<=U_ELLIPSIS)||LA361_0==L_force||(LA361_0>=Constr && LA361_0<=Id)||(LA361_0>=Float && LA361_0<=Num)||(LA361_0>=String && LA361_0<=ROUND_BRACKET_OPEN)||LA361_0==SQUARE_BRACKET_OPEN||LA361_0==CURLY_BRACKET_OPEN||LA361_0==UNDERSCORE) ) {
alt361=1;
}
switch (alt361) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:13: map_or_set_elem_expr ( NL )? ( COMMA ( NL )? map_or_set_elem_expr ( NL )? )*
{
pushFollow(FOLLOW_map_or_set_elem_expr_in_map_or_set_expr6637);
map_or_set_elem_expr762=map_or_set_elem_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_map_or_set_elem_expr.add(map_or_set_elem_expr762.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:34: ( NL )?
int alt357=2;
int LA357_0 = input.LA(1);
if ( (LA357_0==NL) ) {
alt357=1;
}
switch (alt357) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:34: NL
{
NL763=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_expr6639); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL763);
}
break;
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:38: ( COMMA ( NL )? map_or_set_elem_expr ( NL )? )*
loop360:
do {
int alt360=2;
int LA360_0 = input.LA(1);
if ( (LA360_0==COMMA) ) {
alt360=1;
}
switch (alt360) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:39: COMMA ( NL )? map_or_set_elem_expr ( NL )?
{
COMMA764=(Token)match(input,COMMA,FOLLOW_COMMA_in_map_or_set_expr6643); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA764);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:45: ( NL )?
int alt358=2;
int LA358_0 = input.LA(1);
if ( (LA358_0==NL) ) {
alt358=1;
}
switch (alt358) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:45: NL
{
NL765=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_expr6645); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL765);
}
break;
}
pushFollow(FOLLOW_map_or_set_elem_expr_in_map_or_set_expr6648);
map_or_set_elem_expr766=map_or_set_elem_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_map_or_set_elem_expr.add(map_or_set_elem_expr766.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:70: ( NL )?
int alt359=2;
int LA359_0 = input.LA(1);
if ( (LA359_0==NL) ) {
alt359=1;
}
switch (alt359) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:70: NL
{
NL767=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_expr6650); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL767);
}
break;
}
}
break;
default :
break loop360;
}
} while (true);
}
break;
}
char_literal768=(Token)match(input,CURLY_BRACKET_CLOSE,FOLLOW_CURLY_BRACKET_CLOSE_in_map_or_set_expr6657); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_CLOSE.add(char_literal768);
// AST REWRITE
// elements: map_or_set_elem_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 897:82: -> ^( MAP_OR_SET_OR_OBJ ( map_or_set_elem_expr )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:85: ^( MAP_OR_SET_OR_OBJ ( map_or_set_elem_expr )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MAP_OR_SET_OR_OBJ, "MAP_OR_SET_OR_OBJ"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:897:105: ( map_or_set_elem_expr )*
while ( stream_map_or_set_elem_expr.hasNext() ) {
adaptor.addChild(root_1, stream_map_or_set_elem_expr.nextTree());
}
stream_map_or_set_elem_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:898:10: '{' ( NL )? token_ARROW ( NL )? '}'
{
char_literal769=(Token)match(input,CURLY_BRACKET_OPEN,FOLLOW_CURLY_BRACKET_OPEN_in_map_or_set_expr6677); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_OPEN.add(char_literal769);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:898:14: ( NL )?
int alt362=2;
int LA362_0 = input.LA(1);
if ( (LA362_0==NL) ) {
alt362=1;
}
switch (alt362) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:898:14: NL
{
NL770=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_expr6679); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL770);
}
break;
}
pushFollow(FOLLOW_token_ARROW_in_map_or_set_expr6682);
token_ARROW771=token_ARROW();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_token_ARROW.add(token_ARROW771.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:898:30: ( NL )?
int alt363=2;
int LA363_0 = input.LA(1);
if ( (LA363_0==NL) ) {
alt363=1;
}
switch (alt363) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:898:30: NL
{
NL772=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_expr6684); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL772);
}
break;
}
char_literal773=(Token)match(input,CURLY_BRACKET_CLOSE,FOLLOW_CURLY_BRACKET_CLOSE_in_map_or_set_expr6687); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CURLY_BRACKET_CLOSE.add(char_literal773);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 898:38: -> ^( EMPTY_MAP )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:898:41: ^( EMPTY_MAP )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(EMPTY_MAP, "EMPTY_MAP"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "map_or_set_expr"
public static class map_or_set_elem_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "map_or_set_elem_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:900:1: map_or_set_elem_expr : protected_expr_nc ( ( NL )? arrow_or_assign ( NL )? protected_expr_nc )? -> ^( NIL_TOKEN ^( NIL_TOKEN ( protected_expr_nc )* ) ( arrow_or_assign )* ) ;
public final babel17Parser.map_or_set_elem_expr_return map_or_set_elem_expr() throws RecognitionException {
babel17Parser.map_or_set_elem_expr_return retval = new babel17Parser.map_or_set_elem_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token NL775=null;
Token NL777=null;
babel17Parser.protected_expr_nc_return protected_expr_nc774 = null;
babel17Parser.arrow_or_assign_return arrow_or_assign776 = null;
babel17Parser.protected_expr_nc_return protected_expr_nc778 = null;
CommonTree NL775_tree=null;
CommonTree NL777_tree=null;
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleSubtreeStream stream_arrow_or_assign=new RewriteRuleSubtreeStream(adaptor,"rule arrow_or_assign");
RewriteRuleSubtreeStream stream_protected_expr_nc=new RewriteRuleSubtreeStream(adaptor,"rule protected_expr_nc");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:2: ( protected_expr_nc ( ( NL )? arrow_or_assign ( NL )? protected_expr_nc )? -> ^( NIL_TOKEN ^( NIL_TOKEN ( protected_expr_nc )* ) ( arrow_or_assign )* ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:4: protected_expr_nc ( ( NL )? arrow_or_assign ( NL )? protected_expr_nc )?
{
pushFollow(FOLLOW_protected_expr_nc_in_map_or_set_elem_expr6704);
protected_expr_nc774=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc774.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:22: ( ( NL )? arrow_or_assign ( NL )? protected_expr_nc )?
int alt367=2;
int LA367_0 = input.LA(1);
if ( (LA367_0==NL) ) {
int LA367_1 = input.LA(2);
if ( (LA367_1==ASSIGN||(LA367_1>=A_ARROW && LA367_1<=U_ARROW)) ) {
alt367=1;
}
}
else if ( (LA367_0==ASSIGN||(LA367_0>=A_ARROW && LA367_0<=U_ARROW)) ) {
alt367=1;
}
switch (alt367) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:23: ( NL )? arrow_or_assign ( NL )? protected_expr_nc
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:23: ( NL )?
int alt365=2;
int LA365_0 = input.LA(1);
if ( (LA365_0==NL) ) {
alt365=1;
}
switch (alt365) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:23: NL
{
NL775=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_elem_expr6707); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL775);
}
break;
}
pushFollow(FOLLOW_arrow_or_assign_in_map_or_set_elem_expr6710);
arrow_or_assign776=arrow_or_assign();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrow_or_assign.add(arrow_or_assign776.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:43: ( NL )?
int alt366=2;
int LA366_0 = input.LA(1);
if ( (LA366_0==NL) ) {
alt366=1;
}
switch (alt366) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:43: NL
{
NL777=(Token)match(input,NL,FOLLOW_NL_in_map_or_set_elem_expr6712); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL777);
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_map_or_set_elem_expr6715);
protected_expr_nc778=protected_expr_nc();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_protected_expr_nc.add(protected_expr_nc778.getTree());
}
break;
}
// AST REWRITE
// elements: protected_expr_nc, arrow_or_assign
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 901:67: -> ^( NIL_TOKEN ^( NIL_TOKEN ( protected_expr_nc )* ) ( arrow_or_assign )* )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:70: ^( NIL_TOKEN ^( NIL_TOKEN ( protected_expr_nc )* ) ( arrow_or_assign )* )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_1);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:82: ^( NIL_TOKEN ( protected_expr_nc )* )
{
CommonTree root_2 = (CommonTree)adaptor.nil();
root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NIL_TOKEN, "NIL_TOKEN"), root_2);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:94: ( protected_expr_nc )*
while ( stream_protected_expr_nc.hasNext() ) {
adaptor.addChild(root_2, stream_protected_expr_nc.nextTree());
}
stream_protected_expr_nc.reset();
adaptor.addChild(root_1, root_2);
}
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:901:114: ( arrow_or_assign )*
while ( stream_arrow_or_assign.hasNext() ) {
adaptor.addChild(root_1, stream_arrow_or_assign.nextTree());
}
stream_arrow_or_assign.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "map_or_set_elem_expr"
public static class type_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "type_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:903:1: type_expr : '(' ( NL )? ':' ( NL )? typeid ( NL )? ')' -> ^( TYPE_EXPR typeid ) ;
public final babel17Parser.type_expr_return type_expr() throws RecognitionException {
babel17Parser.type_expr_return retval = new babel17Parser.type_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token char_literal779=null;
Token NL780=null;
Token char_literal781=null;
Token NL782=null;
Token NL784=null;
Token char_literal785=null;
babel17Parser.typeid_return typeid783 = null;
CommonTree char_literal779_tree=null;
CommonTree NL780_tree=null;
CommonTree char_literal781_tree=null;
CommonTree NL782_tree=null;
CommonTree NL784_tree=null;
CommonTree char_literal785_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_ROUND_BRACKET_OPEN=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_OPEN");
RewriteRuleTokenStream stream_NL=new RewriteRuleTokenStream(adaptor,"token NL");
RewriteRuleTokenStream stream_ROUND_BRACKET_CLOSE=new RewriteRuleTokenStream(adaptor,"token ROUND_BRACKET_CLOSE");
RewriteRuleSubtreeStream stream_typeid=new RewriteRuleSubtreeStream(adaptor,"rule typeid");
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:2: ( '(' ( NL )? ':' ( NL )? typeid ( NL )? ')' -> ^( TYPE_EXPR typeid ) )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:4: '(' ( NL )? ':' ( NL )? typeid ( NL )? ')'
{
char_literal779=(Token)match(input,ROUND_BRACKET_OPEN,FOLLOW_ROUND_BRACKET_OPEN_in_type_expr6742); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_OPEN.add(char_literal779);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:8: ( NL )?
int alt368=2;
int LA368_0 = input.LA(1);
if ( (LA368_0==NL) ) {
alt368=1;
}
switch (alt368) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:8: NL
{
NL780=(Token)match(input,NL,FOLLOW_NL_in_type_expr6744); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL780);
}
break;
}
char_literal781=(Token)match(input,COLON,FOLLOW_COLON_in_type_expr6747); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal781);
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:16: ( NL )?
int alt369=2;
int LA369_0 = input.LA(1);
if ( (LA369_0==NL) ) {
alt369=1;
}
switch (alt369) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:16: NL
{
NL782=(Token)match(input,NL,FOLLOW_NL_in_type_expr6749); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL782);
}
break;
}
pushFollow(FOLLOW_typeid_in_type_expr6752);
typeid783=typeid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeid.add(typeid783.getTree());
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:27: ( NL )?
int alt370=2;
int LA370_0 = input.LA(1);
if ( (LA370_0==NL) ) {
alt370=1;
}
switch (alt370) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:27: NL
{
NL784=(Token)match(input,NL,FOLLOW_NL_in_type_expr6754); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NL.add(NL784);
}
break;
}
char_literal785=(Token)match(input,ROUND_BRACKET_CLOSE,FOLLOW_ROUND_BRACKET_CLOSE_in_type_expr6757); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ROUND_BRACKET_CLOSE.add(char_literal785);
// AST REWRITE
// elements: typeid
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (CommonTree)adaptor.nil();
// 904:35: -> ^( TYPE_EXPR typeid )
{
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:904:38: ^( TYPE_EXPR typeid )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_EXPR, "TYPE_EXPR"), root_1);
adaptor.addChild(root_1, stream_typeid.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "type_expr"
public static class primitive_expr_return extends ParserRuleReturnScope {
CommonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "primitive_expr"
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:906:1: primitive_expr : ( Num | Float | String | Id | Constr | L_true | L_false | L_this | L_nil | L_root | ( type_expr )=> type_expr | ( lambda_expr )=> lambda_expr | obj_expr | list_expr | with_control_expr | map_or_set_expr );
public final babel17Parser.primitive_expr_return primitive_expr() throws RecognitionException {
babel17Parser.primitive_expr_return retval = new babel17Parser.primitive_expr_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
Token Num786=null;
Token Float787=null;
Token String788=null;
Token Id789=null;
Token Constr790=null;
Token L_true791=null;
Token L_false792=null;
Token L_this793=null;
Token L_nil794=null;
Token L_root795=null;
babel17Parser.type_expr_return type_expr796 = null;
babel17Parser.lambda_expr_return lambda_expr797 = null;
babel17Parser.obj_expr_return obj_expr798 = null;
babel17Parser.list_expr_return list_expr799 = null;
babel17Parser.with_control_expr_return with_control_expr800 = null;
babel17Parser.map_or_set_expr_return map_or_set_expr801 = null;
CommonTree Num786_tree=null;
CommonTree Float787_tree=null;
CommonTree String788_tree=null;
CommonTree Id789_tree=null;
CommonTree Constr790_tree=null;
CommonTree L_true791_tree=null;
CommonTree L_false792_tree=null;
CommonTree L_this793_tree=null;
CommonTree L_nil794_tree=null;
CommonTree L_root795_tree=null;
try {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:907:2: ( Num | Float | String | Id | Constr | L_true | L_false | L_this | L_nil | L_root | ( type_expr )=> type_expr | ( lambda_expr )=> lambda_expr | obj_expr | list_expr | with_control_expr | map_or_set_expr )
int alt371=16;
alt371 = dfa371.predict(input);
switch (alt371) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:907:4: Num
{
root_0 = (CommonTree)adaptor.nil();
Num786=(Token)match(input,Num,FOLLOW_Num_in_primitive_expr6775); if (state.failed) return retval;
if ( state.backtracking==0 ) {
Num786_tree = (CommonTree)adaptor.create(Num786);
adaptor.addChild(root_0, Num786_tree);
}
}
break;
case 2 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:908:4: Float
{
root_0 = (CommonTree)adaptor.nil();
Float787=(Token)match(input,Float,FOLLOW_Float_in_primitive_expr6780); if (state.failed) return retval;
if ( state.backtracking==0 ) {
Float787_tree = (CommonTree)adaptor.create(Float787);
adaptor.addChild(root_0, Float787_tree);
}
}
break;
case 3 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:909:4: String
{
root_0 = (CommonTree)adaptor.nil();
String788=(Token)match(input,String,FOLLOW_String_in_primitive_expr6785); if (state.failed) return retval;
if ( state.backtracking==0 ) {
String788_tree = (CommonTree)adaptor.create(String788);
adaptor.addChild(root_0, String788_tree);
}
}
break;
case 4 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:910:4: Id
{
root_0 = (CommonTree)adaptor.nil();
Id789=(Token)match(input,Id,FOLLOW_Id_in_primitive_expr6790); if (state.failed) return retval;
if ( state.backtracking==0 ) {
Id789_tree = (CommonTree)adaptor.create(Id789);
adaptor.addChild(root_0, Id789_tree);
}
}
break;
case 5 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:911:4: Constr
{
root_0 = (CommonTree)adaptor.nil();
Constr790=(Token)match(input,Constr,FOLLOW_Constr_in_primitive_expr6795); if (state.failed) return retval;
if ( state.backtracking==0 ) {
Constr790_tree = (CommonTree)adaptor.create(Constr790);
adaptor.addChild(root_0, Constr790_tree);
}
}
break;
case 6 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:912:4: L_true
{
root_0 = (CommonTree)adaptor.nil();
L_true791=(Token)match(input,L_true,FOLLOW_L_true_in_primitive_expr6800); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_true791_tree = (CommonTree)adaptor.create(L_true791);
adaptor.addChild(root_0, L_true791_tree);
}
}
break;
case 7 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:913:4: L_false
{
root_0 = (CommonTree)adaptor.nil();
L_false792=(Token)match(input,L_false,FOLLOW_L_false_in_primitive_expr6805); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_false792_tree = (CommonTree)adaptor.create(L_false792);
adaptor.addChild(root_0, L_false792_tree);
}
}
break;
case 8 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:914:4: L_this
{
root_0 = (CommonTree)adaptor.nil();
L_this793=(Token)match(input,L_this,FOLLOW_L_this_in_primitive_expr6810); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_this793_tree = (CommonTree)adaptor.create(L_this793);
adaptor.addChild(root_0, L_this793_tree);
}
}
break;
case 9 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:915:4: L_nil
{
root_0 = (CommonTree)adaptor.nil();
L_nil794=(Token)match(input,L_nil,FOLLOW_L_nil_in_primitive_expr6816); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_nil794_tree = (CommonTree)adaptor.create(L_nil794);
adaptor.addChild(root_0, L_nil794_tree);
}
}
break;
case 10 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:916:4: L_root
{
root_0 = (CommonTree)adaptor.nil();
L_root795=(Token)match(input,L_root,FOLLOW_L_root_in_primitive_expr6821); if (state.failed) return retval;
if ( state.backtracking==0 ) {
L_root795_tree = (CommonTree)adaptor.create(L_root795);
adaptor.addChild(root_0, L_root795_tree);
}
}
break;
case 11 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:917:4: ( type_expr )=> type_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_type_expr_in_primitive_expr6832);
type_expr796=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type_expr796.getTree());
}
break;
case 12 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:918:4: ( lambda_expr )=> lambda_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_lambda_expr_in_primitive_expr6843);
lambda_expr797=lambda_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lambda_expr797.getTree());
}
break;
case 13 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:919:4: obj_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_obj_expr_in_primitive_expr6848);
obj_expr798=obj_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, obj_expr798.getTree());
}
break;
case 14 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:920:5: list_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_list_expr_in_primitive_expr6854);
list_expr799=list_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, list_expr799.getTree());
}
break;
case 15 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:921:4: with_control_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_with_control_expr_in_primitive_expr6859);
with_control_expr800=with_control_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, with_control_expr800.getTree());
}
break;
case 16 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:922:4: map_or_set_expr
{
root_0 = (CommonTree)adaptor.nil();
pushFollow(FOLLOW_map_or_set_expr_in_primitive_expr6864);
map_or_set_expr801=map_or_set_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, map_or_set_expr801.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "primitive_expr"
// $ANTLR start synpred1_babel17
public final void synpred1_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:4: ( pattern ( NL )? ':' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:5: pattern ( NL )? ':'
{
pushFollow(FOLLOW_pattern_in_synpred1_babel172140);
pattern();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:13: ( NL )?
int alt372=2;
int LA372_0 = input.LA(1);
if ( (LA372_0==NL) ) {
alt372=1;
}
switch (alt372) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:486:13: NL
{
match(input,NL,FOLLOW_NL_in_synpred1_babel172142); if (state.failed) return ;
}
break;
}
match(input,COLON,FOLLOW_COLON_in_synpred1_babel172145); if (state.failed) return ;
}
}
// $ANTLR end synpred1_babel17
// $ANTLR start synpred2_babel17
public final void synpred2_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:10: ( Id ( NL )? L_as )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:11: Id ( NL )? L_as
{
match(input,Id,FOLLOW_Id_in_synpred2_babel172201); if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:14: ( NL )?
int alt373=2;
int LA373_0 = input.LA(1);
if ( (LA373_0==NL) ) {
alt373=1;
}
switch (alt373) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:493:14: NL
{
match(input,NL,FOLLOW_NL_in_synpred2_babel172203); if (state.failed) return ;
}
break;
}
match(input,L_as,FOLLOW_L_as_in_synpred2_babel172206); if (state.failed) return ;
}
}
// $ANTLR end synpred2_babel17
// $ANTLR start synpred3_babel17
public final void synpred3_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:494:4: ( protected_expr ( NL )? QUESTION_MARK )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:494:5: protected_expr ( NL )? QUESTION_MARK
{
pushFollow(FOLLOW_protected_expr_in_synpred3_babel172237);
protected_expr();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:494:20: ( NL )?
int alt374=2;
int LA374_0 = input.LA(1);
if ( (LA374_0==NL) ) {
alt374=1;
}
switch (alt374) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:494:20: NL
{
match(input,NL,FOLLOW_NL_in_synpred3_babel172239); if (state.failed) return ;
}
break;
}
match(input,QUESTION_MARK,FOLLOW_QUESTION_MARK_in_synpred3_babel172242); if (state.failed) return ;
}
}
// $ANTLR end synpred3_babel17
// $ANTLR start synpred4_babel17
public final void synpred4_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:496:4: ( protected_expr ( NL )? EXCLAMATION_MARK )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:496:5: protected_expr ( NL )? EXCLAMATION_MARK
{
pushFollow(FOLLOW_protected_expr_in_synpred4_babel172280);
protected_expr();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:496:20: ( NL )?
int alt375=2;
int LA375_0 = input.LA(1);
if ( (LA375_0==NL) ) {
alt375=1;
}
switch (alt375) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:496:20: NL
{
match(input,NL,FOLLOW_NL_in_synpred4_babel172282); if (state.failed) return ;
}
break;
}
match(input,EXCLAMATION_MARK,FOLLOW_EXCLAMATION_MARK_in_synpred4_babel172285); if (state.failed) return ;
}
}
// $ANTLR end synpred4_babel17
// $ANTLR start synpred5_babel17
public final void synpred5_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:498:4: ( Id pattern )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:498:5: Id pattern
{
match(input,Id,FOLLOW_Id_in_synpred5_babel172323); if (state.failed) return ;
pushFollow(FOLLOW_pattern_in_synpred5_babel172325);
pattern();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred5_babel17
// $ANTLR start synpred6_babel17
public final void synpred6_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:4: ( pattern ( NL )? L_if )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:5: pattern ( NL )? L_if
{
pushFollow(FOLLOW_pattern_in_synpred6_babel172414);
pattern();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:13: ( NL )?
int alt376=2;
int LA376_0 = input.LA(1);
if ( (LA376_0==NL) ) {
alt376=1;
}
switch (alt376) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:501:13: NL
{
match(input,NL,FOLLOW_NL_in_synpred6_babel172416); if (state.failed) return ;
}
break;
}
match(input,L_if,FOLLOW_L_if_in_synpred6_babel172419); if (state.failed) return ;
}
}
// $ANTLR end synpred6_babel17
// $ANTLR start synpred7_babel17
public final void synpred7_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:4: ( pattern ( NL )? ':' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:5: pattern ( NL )? ':'
{
pushFollow(FOLLOW_pattern_in_synpred7_babel172450);
pattern();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:13: ( NL )?
int alt377=2;
int LA377_0 = input.LA(1);
if ( (LA377_0==NL) ) {
alt377=1;
}
switch (alt377) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:502:13: NL
{
match(input,NL,FOLLOW_NL_in_synpred7_babel172452); if (state.failed) return ;
}
break;
}
match(input,COLON,FOLLOW_COLON_in_synpred7_babel172455); if (state.failed) return ;
}
}
// $ANTLR end synpred7_babel17
// $ANTLR start synpred8_babel17
public final void synpred8_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:4: ( defpattern ( NL )? '=' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:5: defpattern ( NL )? '='
{
pushFollow(FOLLOW_defpattern_in_synpred8_babel173300);
defpattern();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:16: ( NL )?
int alt378=2;
int LA378_0 = input.LA(1);
if ( (LA378_0==NL) ) {
alt378=1;
}
switch (alt378) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:568:16: NL
{
match(input,NL,FOLLOW_NL_in_synpred8_babel173302); if (state.failed) return ;
}
break;
}
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred8_babel173305); if (state.failed) return ;
}
}
// $ANTLR end synpred8_babel17
// $ANTLR start synpred9_babel17
public final void synpred9_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:4: ( Id ( NL )? left_modify )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:5: Id ( NL )? left_modify
{
match(input,Id,FOLLOW_Id_in_synpred9_babel173828); if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:8: ( NL )?
int alt379=2;
int LA379_0 = input.LA(1);
if ( (LA379_0==NL) ) {
alt379=1;
}
switch (alt379) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:615:8: NL
{
match(input,NL,FOLLOW_NL_in_synpred9_babel173830); if (state.failed) return ;
}
break;
}
pushFollow(FOLLOW_left_modify_in_synpred9_babel173833);
left_modify();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred9_babel17
// $ANTLR start synpred10_babel17
public final void synpred10_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:4: ( Id ( NL )? right_modify )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:5: Id ( NL )? right_modify
{
match(input,Id,FOLLOW_Id_in_synpred10_babel173867); if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:8: ( NL )?
int alt380=2;
int LA380_0 = input.LA(1);
if ( (LA380_0==NL) ) {
alt380=1;
}
switch (alt380) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:616:8: NL
{
match(input,NL,FOLLOW_NL_in_synpred10_babel173869); if (state.failed) return ;
}
break;
}
pushFollow(FOLLOW_right_modify_in_synpred10_babel173872);
right_modify();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred10_babel17
// $ANTLR start synpred11_babel17
public final void synpred11_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:4: ( Id ( NL )? '=' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:5: Id ( NL )? '='
{
match(input,Id,FOLLOW_Id_in_synpred11_babel173907); if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:8: ( NL )?
int alt381=2;
int LA381_0 = input.LA(1);
if ( (LA381_0==NL) ) {
alt381=1;
}
switch (alt381) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:617:8: NL
{
match(input,NL,FOLLOW_NL_in_synpred11_babel173909); if (state.failed) return ;
}
break;
}
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred11_babel173912); if (state.failed) return ;
}
}
// $ANTLR end synpred11_babel17
// $ANTLR start synpred12_babel17
public final void synpred12_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:4: ( pattern ( NL )? '=' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:5: pattern ( NL )? '='
{
pushFollow(FOLLOW_pattern_in_synpred12_babel173944);
pattern();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:13: ( NL )?
int alt382=2;
int LA382_0 = input.LA(1);
if ( (LA382_0==NL) ) {
alt382=1;
}
switch (alt382) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:618:13: NL
{
match(input,NL,FOLLOW_NL_in_synpred12_babel173946); if (state.failed) return ;
}
break;
}
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred12_babel173949); if (state.failed) return ;
}
}
// $ANTLR end synpred12_babel17
// $ANTLR start synpred13_babel17
public final void synpred13_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:4: ( term_expr ( NL )? left_modify )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:5: term_expr ( NL )? left_modify
{
pushFollow(FOLLOW_term_expr_in_synpred13_babel173981);
term_expr();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:15: ( NL )?
int alt383=2;
int LA383_0 = input.LA(1);
if ( (LA383_0==NL) ) {
alt383=1;
}
switch (alt383) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:619:15: NL
{
match(input,NL,FOLLOW_NL_in_synpred13_babel173983); if (state.failed) return ;
}
break;
}
pushFollow(FOLLOW_left_modify_in_synpred13_babel173986);
left_modify();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred13_babel17
// $ANTLR start synpred14_babel17
public final void synpred14_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:4: ( term_expr ( NL )? right_modify )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:5: term_expr ( NL )? right_modify
{
pushFollow(FOLLOW_term_expr_in_synpred14_babel174020);
term_expr();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:15: ( NL )?
int alt384=2;
int LA384_0 = input.LA(1);
if ( (LA384_0==NL) ) {
alt384=1;
}
switch (alt384) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:620:15: NL
{
match(input,NL,FOLLOW_NL_in_synpred14_babel174022); if (state.failed) return ;
}
break;
}
pushFollow(FOLLOW_right_modify_in_synpred14_babel174025);
right_modify();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred14_babel17
// $ANTLR start synpred15_babel17
public final void synpred15_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:4: ( term_expr ( NL )? '=' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:5: term_expr ( NL )? '='
{
pushFollow(FOLLOW_term_expr_in_synpred15_babel174059);
term_expr();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:15: ( NL )?
int alt385=2;
int LA385_0 = input.LA(1);
if ( (LA385_0==NL) ) {
alt385=1;
}
switch (alt385) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:621:15: NL
{
match(input,NL,FOLLOW_NL_in_synpred15_babel174061); if (state.failed) return ;
}
break;
}
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred15_babel174064); if (state.failed) return ;
}
}
// $ANTLR end synpred15_babel17
// $ANTLR start synpred16_babel17
public final void synpred16_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:11: ( L_obj ( NL )? parents )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:12: L_obj ( NL )? parents
{
match(input,L_obj,FOLLOW_L_obj_in_synpred16_babel174420); if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:18: ( NL )?
int alt386=2;
int LA386_0 = input.LA(1);
if ( (LA386_0==NL) ) {
alt386=1;
}
switch (alt386) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:668:18: NL
{
match(input,NL,FOLLOW_NL_in_synpred16_babel174422); if (state.failed) return ;
}
break;
}
pushFollow(FOLLOW_parents_in_synpred16_babel174425);
parents();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred16_babel17
// $ANTLR start synpred17_babel17
public final void synpred17_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:673:4: ( lambda_expr_nobrackets )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:673:5: lambda_expr_nobrackets
{
pushFollow(FOLLOW_lambda_expr_nobrackets_in_synpred17_babel174496);
lambda_expr_nobrackets();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred17_babel17
// $ANTLR start synpred18_babel17
public final void synpred18_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:678:4: ( lambda_expr_nobrackets )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:678:5: lambda_expr_nobrackets
{
pushFollow(FOLLOW_lambda_expr_nobrackets_in_synpred18_babel174519);
lambda_expr_nobrackets();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred18_babel17
// $ANTLR start synpred19_babel17
public final void synpred19_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:4: ( '[' ( NL )? protected_expr_nc ( NL )? ';' )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:5: '[' ( NL )? protected_expr_nc ( NL )? ';'
{
match(input,SQUARE_BRACKET_OPEN,FOLLOW_SQUARE_BRACKET_OPEN_in_synpred19_babel176479); if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:9: ( NL )?
int alt387=2;
int LA387_0 = input.LA(1);
if ( (LA387_0==NL) ) {
alt387=1;
}
switch (alt387) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:9: NL
{
match(input,NL,FOLLOW_NL_in_synpred19_babel176481); if (state.failed) return ;
}
break;
}
pushFollow(FOLLOW_protected_expr_nc_in_synpred19_babel176484);
protected_expr_nc();
state._fsp--;
if (state.failed) return ;
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:31: ( NL )?
int alt388=2;
int LA388_0 = input.LA(1);
if ( (LA388_0==NL) ) {
alt388=1;
}
switch (alt388) {
case 1 :
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:892:31: NL
{
match(input,NL,FOLLOW_NL_in_synpred19_babel176486); if (state.failed) return ;
}
break;
}
match(input,SC,FOLLOW_SC_in_synpred19_babel176489); if (state.failed) return ;
}
}
// $ANTLR end synpred19_babel17
// $ANTLR start synpred20_babel17
public final void synpred20_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:917:4: ( type_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:917:5: type_expr
{
pushFollow(FOLLOW_type_expr_in_synpred20_babel176827);
type_expr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred20_babel17
// $ANTLR start synpred21_babel17
public final void synpred21_babel17_fragment() throws RecognitionException {
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:918:4: ( lambda_expr )
// /Users/stevenobua/Programming/babel-17/Babel17_ANTLR_Parser/babel17.g:918:5: lambda_expr
{
pushFollow(FOLLOW_lambda_expr_in_synpred21_babel176838);
lambda_expr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred21_babel17
// Delegated rules
public final boolean synpred4_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred4_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred6_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred6_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred12_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred12_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred1_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred1_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred15_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred15_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred13_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred13_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred10_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred10_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred7_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred7_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred19_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred19_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred20_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred20_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred2_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred2_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred3_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred3_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred11_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred11_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred8_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred8_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred9_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred9_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred21_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred21_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred14_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred14_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred16_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred16_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred18_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred18_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred17_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred17_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred5_babel17() {
state.backtracking++;
int start = input.mark();
try {
synpred5_babel17_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
protected DFA19 dfa19 = new DFA19(this);
protected DFA39 dfa39 = new DFA39(this);
protected DFA67 dfa67 = new DFA67(this);
protected DFA73 dfa73 = new DFA73(this);
protected DFA70 dfa70 = new DFA70(this);
protected DFA83 dfa83 = new DFA83(this);
protected DFA113 dfa113 = new DFA113(this);
protected DFA162 dfa162 = new DFA162(this);
protected DFA174 dfa174 = new DFA174(this);
protected DFA175 dfa175 = new DFA175(this);
protected DFA371 dfa371 = new DFA371(this);
static final String DFA19_eotS =
"\21\uffff";
static final String DFA19_eofS =
"\21\uffff";
static final String DFA19_minS =
"\1\161\16\0\2\uffff";
static final String DFA19_maxS =
"\1\u00c3\16\0\2\uffff";
static final String DFA19_acceptS =
"\17\uffff\1\1\1\2";
static final String DFA19_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\2\uffff}>";
static final String[] DFA19_transitionS = {
"\1\15\10\uffff\1\6\1\7\2\uffff\1\10\35\uffff\1\11\17\uffff\2"+
"\16\10\uffff\1\1\1\2\2\uffff\1\5\1\uffff\1\4\1\13\1\uffff\1"+
"\12\1\uffff\1\14\1\uffff\1\3",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
""
};
static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);
static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);
static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);
static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);
static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);
static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);
static final short[][] DFA19_transition;
static {
int numStates = DFA19_transitionS.length;
DFA19_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);
}
}
class DFA19 extends DFA {
public DFA19(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 19;
this.eot = DFA19_eot;
this.eof = DFA19_eof;
this.min = DFA19_min;
this.max = DFA19_max;
this.accept = DFA19_accept;
this.special = DFA19_special;
this.transition = DFA19_transition;
}
public String getDescription() {
return "485:1: valpattern : ( ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation -> ^( TYPE_PATTERN typeannotation pattern ) | pattern );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA19_1 = input.LA(1);
int index19_1 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA19_2 = input.LA(1);
int index19_2 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA19_3 = input.LA(1);
int index19_3 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA19_4 = input.LA(1);
int index19_4 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA19_5 = input.LA(1);
int index19_5 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA19_6 = input.LA(1);
int index19_6 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA19_7 = input.LA(1);
int index19_7 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA19_8 = input.LA(1);
int index19_8 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA19_9 = input.LA(1);
int index19_9 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA19_10 = input.LA(1);
int index19_10 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA19_11 = input.LA(1);
int index19_11 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA19_12 = input.LA(1);
int index19_12 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA19_13 = input.LA(1);
int index19_13 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA19_14 = input.LA(1);
int index19_14 = input.index();
input.rewind();
s = -1;
if ( (synpred1_babel17()) ) {s = 15;}
else if ( (true) ) {s = 16;}
input.seek(index19_14);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 19, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA39_eotS =
"\47\uffff";
static final String DFA39_eofS =
"\47\uffff";
static final String DFA39_minS =
"\1\137\35\0\11\uffff";
static final String DFA39_maxS =
"\1\u00c3\35\0\11\uffff";
static final String DFA39_acceptS =
"\36\uffff\1\5\1\1\1\2\1\3\1\4\1\7\1\10\1\11\1\6";
static final String DFA39_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
"\1\32\1\33\1\34\11\uffff}>";
static final String[] DFA39_transitionS = {
"\1\34\1\uffff\1\26\1\35\1\27\3\uffff\1\30\1\32\2\uffff\1\31"+
"\2\uffff\1\36\2\uffff\1\15\2\uffff\1\33\1\uffff\1\17\1\22\1"+
"\17\1\uffff\1\6\1\7\1\24\1\22\1\10\4\uffff\1\22\4\uffff\1\21"+
"\2\uffff\1\25\3\22\1\20\14\uffff\1\11\17\uffff\2\16\4\uffff"+
"\1\17\3\uffff\1\2\1\1\1\uffff\1\23\1\5\1\uffff\1\4\1\13\1\uffff"+
"\1\12\1\uffff\1\14\1\uffff\1\3",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA39_eot = DFA.unpackEncodedString(DFA39_eotS);
static final short[] DFA39_eof = DFA.unpackEncodedString(DFA39_eofS);
static final char[] DFA39_min = DFA.unpackEncodedStringToUnsignedChars(DFA39_minS);
static final char[] DFA39_max = DFA.unpackEncodedStringToUnsignedChars(DFA39_maxS);
static final short[] DFA39_accept = DFA.unpackEncodedString(DFA39_acceptS);
static final short[] DFA39_special = DFA.unpackEncodedString(DFA39_specialS);
static final short[][] DFA39_transition;
static {
int numStates = DFA39_transitionS.length;
DFA39_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA39_transition[i] = DFA.unpackEncodedString(DFA39_transitionS[i]);
}
}
class DFA39 extends DFA {
public DFA39(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 39;
this.eot = DFA39_eot;
this.eof = DFA39_eof;
this.min = DFA39_min;
this.max = DFA39_max;
this.accept = DFA39_accept;
this.special = DFA39_special;
this.transition = DFA39_transition;
}
public String getDescription() {
return "492:1: bracket_pattern : ( ( Id ( NL )? L_as )=> Id ( NL )? L_as ( NL )? pattern -> ^( L_as Id pattern ) | ( protected_expr ( NL )? QUESTION_MARK )=> protected_expr ( NL )? QUESTION_MARK ( ( NL )? pattern )? -> ^( QUESTION_MARK protected_expr ( pattern )? ) | ( protected_expr ( NL )? EXCLAMATION_MARK )=> protected_expr ( NL )? EXCLAMATION_MARK ( ( NL )? pattern )? -> ^( EXCLAMATION_MARK protected_expr ( pattern )? ) | ( Id pattern )=> Id pattern -> ^( INNERVALUE_PATTERN Id pattern ) | L_val ( NL )? protected_expr_nc -> ^( L_val protected_expr_nc ) | L_for ( NL )? ( bracket_pattern ( ( NL )? COMMA ( NL )? bracket_pattern )* ( NL )? )? L_end -> ^( L_for ( bracket_pattern )* ) | ( pattern ( NL )? L_if )=> pattern ( NL )? L_if ( NL )? protected_expr_nc -> ^( IF_PATTERN pattern protected_expr_nc ) | ( pattern ( NL )? ':' )=> pattern ( NL )? ':' ( NL )? typeannotation -> ^( TYPE_PATTERN typeannotation pattern ) | pattern );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA39_1 = input.LA(1);
int index39_1 = input.index();
input.rewind();
s = -1;
if ( (synpred2_babel17()) ) {s = 31;}
else if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred5_babel17()) ) {s = 34;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA39_2 = input.LA(1);
int index39_2 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA39_3 = input.LA(1);
int index39_3 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA39_4 = input.LA(1);
int index39_4 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA39_5 = input.LA(1);
int index39_5 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA39_6 = input.LA(1);
int index39_6 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA39_7 = input.LA(1);
int index39_7 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA39_8 = input.LA(1);
int index39_8 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA39_9 = input.LA(1);
int index39_9 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA39_10 = input.LA(1);
int index39_10 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA39_11 = input.LA(1);
int index39_11 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA39_12 = input.LA(1);
int index39_12 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA39_13 = input.LA(1);
int index39_13 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA39_14 = input.LA(1);
int index39_14 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (synpred6_babel17()) ) {s = 35;}
else if ( (synpred7_babel17()) ) {s = 36;}
else if ( (true) ) {s = 37;}
input.seek(index39_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA39_15 = input.LA(1);
int index39_15 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA39_16 = input.LA(1);
int index39_16 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_16);
if ( s>=0 ) return s;
break;
case 16 :
int LA39_17 = input.LA(1);
int index39_17 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_17);
if ( s>=0 ) return s;
break;
case 17 :
int LA39_18 = input.LA(1);
int index39_18 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_18);
if ( s>=0 ) return s;
break;
case 18 :
int LA39_19 = input.LA(1);
int index39_19 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_19);
if ( s>=0 ) return s;
break;
case 19 :
int LA39_20 = input.LA(1);
int index39_20 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_20);
if ( s>=0 ) return s;
break;
case 20 :
int LA39_21 = input.LA(1);
int index39_21 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_21);
if ( s>=0 ) return s;
break;
case 21 :
int LA39_22 = input.LA(1);
int index39_22 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_22);
if ( s>=0 ) return s;
break;
case 22 :
int LA39_23 = input.LA(1);
int index39_23 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_23);
if ( s>=0 ) return s;
break;
case 23 :
int LA39_24 = input.LA(1);
int index39_24 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_24);
if ( s>=0 ) return s;
break;
case 24 :
int LA39_25 = input.LA(1);
int index39_25 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_25);
if ( s>=0 ) return s;
break;
case 25 :
int LA39_26 = input.LA(1);
int index39_26 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
else if ( (true) ) {s = 38;}
input.seek(index39_26);
if ( s>=0 ) return s;
break;
case 26 :
int LA39_27 = input.LA(1);
int index39_27 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_27);
if ( s>=0 ) return s;
break;
case 27 :
int LA39_28 = input.LA(1);
int index39_28 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_28);
if ( s>=0 ) return s;
break;
case 28 :
int LA39_29 = input.LA(1);
int index39_29 = input.index();
input.rewind();
s = -1;
if ( (synpred3_babel17()) ) {s = 32;}
else if ( (synpred4_babel17()) ) {s = 33;}
input.seek(index39_29);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 39, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA67_eotS =
"\17\uffff";
static final String DFA67_eofS =
"\17\uffff";
static final String DFA67_minS =
"\1\172\12\uffff\2\137\2\uffff";
static final String DFA67_maxS =
"\1\u00c3\12\uffff\2\u00c3\2\uffff";
static final String DFA67_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\2\uffff\1\14"+
"\1\13";
static final String DFA67_specialS =
"\17\uffff}>";
static final String[] DFA67_transitionS = {
"\1\5\1\6\2\uffff\1\7\35\uffff\1\10\32\uffff\1\1\2\uffff\1\4"+
"\1\uffff\1\3\1\12\1\uffff\1\11\1\uffff\1\13\1\uffff\1\2",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\16\1\uffff\3\16\3\uffff\2\16\2\uffff\1\16\2\uffff\1\16\2"+
"\uffff\1\16\2\uffff\1\16\1\uffff\3\16\1\uffff\5\16\4\uffff\1"+
"\16\4\uffff\1\16\2\uffff\5\16\14\uffff\1\16\15\uffff\2\15\2"+
"\16\4\uffff\1\16\2\uffff\1\14\2\16\1\uffff\2\16\1\uffff\2\16"+
"\1\uffff\1\16\1\uffff\3\16",
"\1\16\1\uffff\3\16\3\uffff\2\16\2\uffff\1\16\2\uffff\1\16\2"+
"\uffff\1\16\2\uffff\1\16\1\uffff\3\16\1\uffff\5\16\4\uffff\1"+
"\16\4\uffff\1\16\2\uffff\5\16\14\uffff\1\16\15\uffff\2\15\2"+
"\16\4\uffff\1\16\3\uffff\2\16\1\uffff\2\16\1\uffff\2\16\1\uffff"+
"\1\16\1\uffff\3\16",
"",
""
};
static final short[] DFA67_eot = DFA.unpackEncodedString(DFA67_eotS);
static final short[] DFA67_eof = DFA.unpackEncodedString(DFA67_eofS);
static final char[] DFA67_min = DFA.unpackEncodedStringToUnsignedChars(DFA67_minS);
static final char[] DFA67_max = DFA.unpackEncodedStringToUnsignedChars(DFA67_maxS);
static final short[] DFA67_accept = DFA.unpackEncodedString(DFA67_acceptS);
static final short[] DFA67_special = DFA.unpackEncodedString(DFA67_specialS);
static final short[][] DFA67_transition;
static {
int numStates = DFA67_transitionS.length;
DFA67_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA67_transition[i] = DFA.unpackEncodedString(DFA67_transitionS[i]);
}
}
class DFA67 extends DFA {
public DFA67(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 67;
this.eot = DFA67_eot;
this.eof = DFA67_eof;
this.min = DFA67_min;
this.max = DFA67_max;
this.accept = DFA67_accept;
this.special = DFA67_special;
this.transition = DFA67_transition;
}
public String getDescription() {
return "513:1: primitive_pattern : ( Id | '_' -> ANY | String | Num | L_true | L_false | L_nil | '-' ( NL )? Num -> ^( UMINUS Num ) | '[' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* )? ']' -> ^( SQUARE_LIST ( bracket_pattern )* ) | '(' ( NL )? ( bracket_pattern ( NL )? ( COMMA ( NL )? bracket_pattern ( NL )? )* ( COMMA ( NL )? )? )? ')' -> ^( ROUND_LIST ^( NIL_TOKEN ( COMMA )* ) ^( NIL_TOKEN ( bracket_pattern )* ) ) | '{' ( NL )? ( mselem_pattern ( NL )? ( COMMA ( NL )? mselem_pattern ( NL )? )* )? '}' -> ^( MAP_OR_SET_OR_OBJ ( mselem_pattern )* ) | '{' ( NL )? token_ARROW ( NL )? '}' -> ^( EMPTY_MAP ) );";
}
}
static final String DFA73_eotS =
"\4\uffff";
static final String DFA73_eofS =
"\2\3\2\uffff";
static final String DFA73_minS =
"\2\137\2\uffff";
static final String DFA73_maxS =
"\2\u00c9\2\uffff";
static final String DFA73_acceptS =
"\2\uffff\1\1\1\2";
static final String DFA73_specialS =
"\4\uffff}>";
static final String[] DFA73_transitionS = {
"\1\2\1\3\3\2\1\uffff\2\3\2\2\1\uffff\2\2\1\3\1\uffff\2\2\1\uffff"+
"\1\2\2\uffff\1\2\1\uffff\11\2\2\uffff\5\2\1\3\1\uffff\1\2\2"+
"\uffff\5\2\12\uffff\1\1\1\uffff\1\2\17\uffff\2\2\4\uffff\1\2"+
"\2\uffff\1\1\2\2\1\uffff\2\2\1\uffff\2\2\1\uffff\1\2\1\uffff"+
"\1\2\1\uffff\1\2\1\uffff\5\2",
"\1\2\1\3\3\2\1\uffff\2\3\2\2\1\uffff\2\2\1\3\1\uffff\2\2\1"+
"\uffff\1\2\2\uffff\1\2\1\uffff\11\2\2\uffff\5\2\1\3\1\uffff"+
"\1\2\2\uffff\5\2\12\uffff\1\1\1\uffff\1\2\17\uffff\2\2\4\uffff"+
"\1\2\2\uffff\1\1\2\2\1\uffff\2\2\1\uffff\2\2\1\uffff\1\2\1\uffff"+
"\1\2\1\uffff\1\2\1\uffff\5\2",
"",
""
};
static final short[] DFA73_eot = DFA.unpackEncodedString(DFA73_eotS);
static final short[] DFA73_eof = DFA.unpackEncodedString(DFA73_eofS);
static final char[] DFA73_min = DFA.unpackEncodedStringToUnsignedChars(DFA73_minS);
static final char[] DFA73_max = DFA.unpackEncodedStringToUnsignedChars(DFA73_maxS);
static final short[] DFA73_accept = DFA.unpackEncodedString(DFA73_acceptS);
static final short[] DFA73_special = DFA.unpackEncodedString(DFA73_specialS);
static final short[][] DFA73_transition;
static {
int numStates = DFA73_transitionS.length;
DFA73_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA73_transition[i] = DFA.unpackEncodedString(DFA73_transitionS[i]);
}
}
class DFA73 extends DFA {
public DFA73(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 73;
this.eot = DFA73_eot;
this.eof = DFA73_eof;
this.min = DFA73_min;
this.max = DFA73_max;
this.accept = DFA73_accept;
this.special = DFA73_special;
this.transition = DFA73_transition;
}
public String getDescription() {
return "535:1: block : ( ( sep )? statement ( sep statement )* ( sep )? -> ^( BLOCK ( statement )* ) | ( sep )? -> ^( BLOCK ) );";
}
}
static final String DFA70_eotS =
"\4\uffff";
static final String DFA70_eofS =
"\2\2\2\uffff";
static final String DFA70_minS =
"\1\140\1\137\2\uffff";
static final String DFA70_maxS =
"\1\u00b5\1\u00c9\2\uffff";
static final String DFA70_acceptS =
"\2\uffff\1\2\1\1";
static final String DFA70_specialS =
"\4\uffff}>";
static final String[] DFA70_transitionS = {
"\1\2\4\uffff\2\2\5\uffff\1\2\31\uffff\1\2\23\uffff\1\1\32\uffff"+
"\1\1",
"\1\3\1\2\3\3\1\uffff\2\2\2\3\1\uffff\2\3\1\2\1\uffff\2\3\1"+
"\uffff\1\3\2\uffff\1\3\1\uffff\11\3\2\uffff\5\3\1\2\1\uffff"+
"\1\3\2\uffff\5\3\12\uffff\1\1\1\uffff\1\3\17\uffff\2\3\4\uffff"+
"\1\3\2\uffff\1\1\2\3\1\uffff\2\3\1\uffff\2\3\1\uffff\1\3\1\uffff"+
"\1\3\1\uffff\1\3\1\uffff\5\3",
"",
""
};
static final short[] DFA70_eot = DFA.unpackEncodedString(DFA70_eotS);
static final short[] DFA70_eof = DFA.unpackEncodedString(DFA70_eofS);
static final char[] DFA70_min = DFA.unpackEncodedStringToUnsignedChars(DFA70_minS);
static final char[] DFA70_max = DFA.unpackEncodedStringToUnsignedChars(DFA70_maxS);
static final short[] DFA70_accept = DFA.unpackEncodedString(DFA70_acceptS);
static final short[] DFA70_special = DFA.unpackEncodedString(DFA70_specialS);
static final short[][] DFA70_transition;
static {
int numStates = DFA70_transitionS.length;
DFA70_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA70_transition[i] = DFA.unpackEncodedString(DFA70_transitionS[i]);
}
}
class DFA70 extends DFA {
public DFA70(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 70;
this.eot = DFA70_eot;
this.eof = DFA70_eof;
this.min = DFA70_min;
this.max = DFA70_max;
this.accept = DFA70_accept;
this.special = DFA70_special;
this.transition = DFA70_transition;
}
public String getDescription() {
return "()* loopback of 535:25: ( sep statement )*";
}
}
static final String DFA83_eotS =
"\17\uffff";
static final String DFA83_eofS =
"\17\uffff";
static final String DFA83_minS =
"\1\137\16\uffff";
static final String DFA83_maxS =
"\1\u00c9\16\uffff";
static final String DFA83_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+
"\15\1\16";
static final String DFA83_specialS =
"\17\uffff}>";
static final String[] DFA83_transitionS = {
"\1\11\1\uffff\3\11\3\uffff\2\11\1\uffff\1\4\1\11\2\uffff\1\2"+
"\1\3\1\uffff\1\11\2\uffff\1\11\1\uffff\3\11\1\5\5\11\2\uffff"+
"\1\7\1\1\1\11\1\6\1\10\2\uffff\1\11\2\uffff\5\11\14\uffff\1"+
"\11\17\uffff\2\11\4\uffff\1\11\3\uffff\2\11\1\uffff\2\11\1\uffff"+
"\2\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\11\1\uffff\1\13\1"+
"\12\1\15\1\14\1\16",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA83_eot = DFA.unpackEncodedString(DFA83_eotS);
static final short[] DFA83_eof = DFA.unpackEncodedString(DFA83_eofS);
static final char[] DFA83_min = DFA.unpackEncodedStringToUnsignedChars(DFA83_minS);
static final char[] DFA83_max = DFA.unpackEncodedStringToUnsignedChars(DFA83_maxS);
static final short[] DFA83_accept = DFA.unpackEncodedString(DFA83_acceptS);
static final short[] DFA83_special = DFA.unpackEncodedString(DFA83_specialS);
static final short[][] DFA83_transition;
static {
int numStates = DFA83_transitionS.length;
DFA83_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA83_transition[i] = DFA.unpackEncodedString(DFA83_transitionS[i]);
}
}
class DFA83 extends DFA {
public DFA83(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 83;
this.eot = DFA83_eot;
this.eof = DFA83_eof;
this.min = DFA83_min;
this.max = DFA83_max;
this.accept = DFA83_accept;
this.special = DFA83_special;
this.transition = DFA83_transition;
}
public String getDescription() {
return "541:1: statement : ( st_typedef | st_val | st_def | st_yield | st_memoize | st_private | st_module | st_import | expr_or_assign | PRAGMA_PRINT ( NL )? expr -> ^( PRAGMA_PRINT expr ) | PRAGMA_LOG ( NL )? expr -> ^( PRAGMA_LOG expr ) | PRAGMA_PROFILE ( NL )? expr -> ^( PRAGMA_PROFILE expr ) | PRAGMA_ASSERT ( NL )? expr -> ^( PRAGMA_ASSERT expr ) | PRAGMA_CATCH ( NL )? casepattern ( NL )? L_try ( NL )? COLON ( NL )? expr -> ^( PRAGMA_CATCH expr casepattern ) );";
}
}
static final String DFA113_eotS =
"\17\uffff";
static final String DFA113_eofS =
"\17\uffff";
static final String DFA113_minS =
"\1\172\14\0\2\uffff";
static final String DFA113_maxS =
"\1\u00c3\14\0\2\uffff";
static final String DFA113_acceptS =
"\15\uffff\1\1\1\2";
static final String DFA113_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\2\uffff}>";
static final String[] DFA113_transitionS = {
"\1\5\1\6\2\uffff\1\7\35\uffff\1\10\31\uffff\1\14\1\1\2\uffff"+
"\1\4\1\uffff\1\3\1\12\1\uffff\1\11\1\uffff\1\13\1\uffff\1\2",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
""
};
static final short[] DFA113_eot = DFA.unpackEncodedString(DFA113_eotS);
static final short[] DFA113_eof = DFA.unpackEncodedString(DFA113_eofS);
static final char[] DFA113_min = DFA.unpackEncodedStringToUnsignedChars(DFA113_minS);
static final char[] DFA113_max = DFA.unpackEncodedStringToUnsignedChars(DFA113_maxS);
static final short[] DFA113_accept = DFA.unpackEncodedString(DFA113_acceptS);
static final short[] DFA113_special = DFA.unpackEncodedString(DFA113_specialS);
static final short[][] DFA113_transition;
static {
int numStates = DFA113_transitionS.length;
DFA113_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA113_transition[i] = DFA.unpackEncodedString(DFA113_transitionS[i]);
}
}
class DFA113 extends DFA {
public DFA113(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 113;
this.eot = DFA113_eot;
this.eof = DFA113_eof;
this.min = DFA113_min;
this.max = DFA113_max;
this.accept = DFA113_accept;
this.special = DFA113_special;
this.transition = DFA113_transition;
}
public String getDescription() {
return "567:1: typedef_clause : ( ( defpattern ( NL )? '=' )=> defpattern ( NL )? '=' ( NL )? expr -> ^( TYPEDEF_CLAUSE defpattern expr ) | defpattern -> ^( TYPEDEF_CLAUSE defpattern ) );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA113_1 = input.LA(1);
int index113_1 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA113_2 = input.LA(1);
int index113_2 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA113_3 = input.LA(1);
int index113_3 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA113_4 = input.LA(1);
int index113_4 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA113_5 = input.LA(1);
int index113_5 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA113_6 = input.LA(1);
int index113_6 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA113_7 = input.LA(1);
int index113_7 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA113_8 = input.LA(1);
int index113_8 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA113_9 = input.LA(1);
int index113_9 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA113_10 = input.LA(1);
int index113_10 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA113_11 = input.LA(1);
int index113_11 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA113_12 = input.LA(1);
int index113_12 = input.index();
input.rewind();
s = -1;
if ( (synpred8_babel17()) ) {s = 13;}
else if ( (true) ) {s = 14;}
input.seek(index113_12);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 113, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA162_eotS =
"\45\uffff";
static final String DFA162_eofS =
"\45\uffff";
static final String DFA162_minS =
"\1\137\32\0\12\uffff";
static final String DFA162_maxS =
"\1\u00c3\32\0\12\uffff";
static final String DFA162_acceptS =
"\33\uffff\1\10\2\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7";
static final String DFA162_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
"\12\uffff}>";
static final String[] DFA162_transitionS = {
"\1\31\1\uffff\1\23\1\32\1\24\3\uffff\1\25\1\27\2\uffff\1\26"+
"\5\uffff\1\15\2\uffff\1\30\1\uffff\1\33\1\17\1\33\1\uffff\1"+
"\6\1\7\1\21\1\17\1\10\4\uffff\1\17\4\uffff\1\33\2\uffff\1\22"+
"\3\17\1\33\14\uffff\1\11\17\uffff\2\16\4\uffff\1\33\3\uffff"+
"\1\2\1\1\1\uffff\1\20\1\5\1\uffff\1\4\1\13\1\uffff\1\12\1\uffff"+
"\1\14\1\uffff\1\3",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA162_eot = DFA.unpackEncodedString(DFA162_eotS);
static final short[] DFA162_eof = DFA.unpackEncodedString(DFA162_eofS);
static final char[] DFA162_min = DFA.unpackEncodedStringToUnsignedChars(DFA162_minS);
static final char[] DFA162_max = DFA.unpackEncodedStringToUnsignedChars(DFA162_maxS);
static final short[] DFA162_accept = DFA.unpackEncodedString(DFA162_acceptS);
static final short[] DFA162_special = DFA.unpackEncodedString(DFA162_specialS);
static final short[][] DFA162_transition;
static {
int numStates = DFA162_transitionS.length;
DFA162_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA162_transition[i] = DFA.unpackEncodedString(DFA162_transitionS[i]);
}
}
class DFA162 extends DFA {
public DFA162(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 162;
this.eot = DFA162_eot;
this.eof = DFA162_eof;
this.min = DFA162_min;
this.max = DFA162_max;
this.accept = DFA162_accept;
this.special = DFA162_special;
this.transition = DFA162_transition;
}
public String getDescription() {
return "613:1: expr_or_assign : ( ( Id ( NL )? left_modify )=> Id ( NL )? left_modify ( NL )? expr -> ^( LENS_MODIFY_LEFT left_modify Id expr ) | ( Id ( NL )? right_modify )=> Id ( NL )? right_modify ( NL )? expr -> ^( LENS_MODIFY_RIGHT right_modify Id expr ) | ( Id ( NL )? '=' )=> Id ( NL )? '=' ( NL )? expr -> ^( LENS_ASSIGN Id expr ) | ( pattern ( NL )? '=' )=> pattern ( NL )? '=' ( NL )? expr -> ^( ASSIGN pattern expr ) | ( term_expr ( NL )? left_modify )=> term_expr ( NL )? left_modify ( NL )? expr -> ^( LENS_MODIFY_LEFT left_modify term_expr expr ) | ( term_expr ( NL )? right_modify )=> term_expr ( NL )? right_modify ( NL )? expr -> ^( LENS_MODIFY_RIGHT right_modify term_expr expr ) | ( term_expr ( NL )? '=' )=> term_expr ( NL )? '=' ( NL )? expr -> ^( LENS_ASSIGN term_expr expr ) | expr );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA162_1 = input.LA(1);
int index162_1 = input.index();
input.rewind();
s = -1;
if ( (synpred9_babel17()) ) {s = 30;}
else if ( (synpred10_babel17()) ) {s = 31;}
else if ( (synpred11_babel17()) ) {s = 32;}
else if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA162_2 = input.LA(1);
int index162_2 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA162_3 = input.LA(1);
int index162_3 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (true) ) {s = 27;}
input.seek(index162_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA162_4 = input.LA(1);
int index162_4 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA162_5 = input.LA(1);
int index162_5 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA162_6 = input.LA(1);
int index162_6 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA162_7 = input.LA(1);
int index162_7 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA162_8 = input.LA(1);
int index162_8 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA162_9 = input.LA(1);
int index162_9 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA162_10 = input.LA(1);
int index162_10 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA162_11 = input.LA(1);
int index162_11 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA162_12 = input.LA(1);
int index162_12 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA162_13 = input.LA(1);
int index162_13 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (true) ) {s = 27;}
input.seek(index162_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA162_14 = input.LA(1);
int index162_14 = input.index();
input.rewind();
s = -1;
if ( (synpred12_babel17()) ) {s = 33;}
else if ( (true) ) {s = 27;}
input.seek(index162_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA162_15 = input.LA(1);
int index162_15 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA162_16 = input.LA(1);
int index162_16 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_16);
if ( s>=0 ) return s;
break;
case 16 :
int LA162_17 = input.LA(1);
int index162_17 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_17);
if ( s>=0 ) return s;
break;
case 17 :
int LA162_18 = input.LA(1);
int index162_18 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_18);
if ( s>=0 ) return s;
break;
case 18 :
int LA162_19 = input.LA(1);
int index162_19 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_19);
if ( s>=0 ) return s;
break;
case 19 :
int LA162_20 = input.LA(1);
int index162_20 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_20);
if ( s>=0 ) return s;
break;
case 20 :
int LA162_21 = input.LA(1);
int index162_21 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_21);
if ( s>=0 ) return s;
break;
case 21 :
int LA162_22 = input.LA(1);
int index162_22 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_22);
if ( s>=0 ) return s;
break;
case 22 :
int LA162_23 = input.LA(1);
int index162_23 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_23);
if ( s>=0 ) return s;
break;
case 23 :
int LA162_24 = input.LA(1);
int index162_24 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_24);
if ( s>=0 ) return s;
break;
case 24 :
int LA162_25 = input.LA(1);
int index162_25 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_25);
if ( s>=0 ) return s;
break;
case 25 :
int LA162_26 = input.LA(1);
int index162_26 = input.index();
input.rewind();
s = -1;
if ( (synpred13_babel17()) ) {s = 34;}
else if ( (synpred14_babel17()) ) {s = 35;}
else if ( (synpred15_babel17()) ) {s = 36;}
else if ( (true) ) {s = 27;}
input.seek(index162_26);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 162, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA174_eotS =
"\36\uffff";
static final String DFA174_eofS =
"\36\uffff";
static final String DFA174_minS =
"\1\137\2\0\1\uffff\12\0\20\uffff";
static final String DFA174_maxS =
"\1\u00c3\2\0\1\uffff\12\0\20\uffff";
static final String DFA174_acceptS =
"\3\uffff\1\1\12\uffff\1\1\1\2\16\uffff";
static final String DFA174_specialS =
"\1\0\1\1\1\2\1\uffff\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\20\uffff}>";
static final String[] DFA174_transitionS = {
"\1\17\1\uffff\3\17\3\uffff\2\17\2\uffff\1\17\5\uffff\1\15\2"+
"\uffff\1\17\1\uffff\3\17\1\uffff\1\6\1\7\2\17\1\10\4\uffff\1"+
"\17\4\uffff\1\17\2\uffff\5\17\14\uffff\1\11\17\uffff\2\16\4"+
"\uffff\1\17\3\uffff\1\1\1\2\1\uffff\1\17\1\5\1\uffff\1\4\1\13"+
"\1\uffff\1\12\1\uffff\1\14\1\uffff\1\3",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA174_eot = DFA.unpackEncodedString(DFA174_eotS);
static final short[] DFA174_eof = DFA.unpackEncodedString(DFA174_eofS);
static final char[] DFA174_min = DFA.unpackEncodedStringToUnsignedChars(DFA174_minS);
static final char[] DFA174_max = DFA.unpackEncodedStringToUnsignedChars(DFA174_maxS);
static final short[] DFA174_accept = DFA.unpackEncodedString(DFA174_acceptS);
static final short[] DFA174_special = DFA.unpackEncodedString(DFA174_specialS);
static final short[][] DFA174_transition;
static {
int numStates = DFA174_transitionS.length;
DFA174_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA174_transition[i] = DFA.unpackEncodedString(DFA174_transitionS[i]);
}
}
class DFA174 extends DFA {
public DFA174(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 174;
this.eot = DFA174_eot;
this.eof = DFA174_eof;
this.min = DFA174_min;
this.max = DFA174_max;
this.accept = DFA174_accept;
this.special = DFA174_special;
this.transition = DFA174_transition;
}
public String getDescription() {
return "671:1: lop_expr : ( ( lambda_expr_nobrackets )=> lambda_expr_nobrackets | op_expr );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA174_0 = input.LA(1);
int index174_0 = input.index();
input.rewind();
s = -1;
if ( (LA174_0==Constr) ) {s = 1;}
else if ( (LA174_0==Id) ) {s = 2;}
else if ( (LA174_0==UNDERSCORE) && (synpred17_babel17())) {s = 3;}
else if ( (LA174_0==String) ) {s = 4;}
else if ( (LA174_0==Num) ) {s = 5;}
else if ( (LA174_0==L_true) ) {s = 6;}
else if ( (LA174_0==L_false) ) {s = 7;}
else if ( (LA174_0==L_nil) ) {s = 8;}
else if ( (LA174_0==MINUS) ) {s = 9;}
else if ( (LA174_0==SQUARE_BRACKET_OPEN) ) {s = 10;}
else if ( (LA174_0==ROUND_BRACKET_OPEN) ) {s = 11;}
else if ( (LA174_0==CURLY_BRACKET_OPEN) ) {s = 12;}
else if ( (LA174_0==L_exception) ) {s = 13;}
else if ( ((LA174_0>=A_ELLIPSIS && LA174_0<=U_ELLIPSIS)) && (synpred17_babel17())) {s = 14;}
else if ( (LA174_0==L_begin||(LA174_0>=L_obj && LA174_0<=L_if)||(LA174_0>=L_while && LA174_0<=L_for)||LA174_0==L_match||LA174_0==L_try||(LA174_0>=L_concurrent && LA174_0<=L_lazy)||(LA174_0>=L_this && LA174_0<=L_random)||LA174_0==L_typeof||LA174_0==L_not||(LA174_0>=L_root && LA174_0<=L_lens)||LA174_0==L_force||LA174_0==Float) ) {s = 15;}
input.seek(index174_0);
if ( s>=0 ) return s;
break;
case 1 :
int LA174_1 = input.LA(1);
int index174_1 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_1);
if ( s>=0 ) return s;
break;
case 2 :
int LA174_2 = input.LA(1);
int index174_2 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_2);
if ( s>=0 ) return s;
break;
case 3 :
int LA174_4 = input.LA(1);
int index174_4 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA174_5 = input.LA(1);
int index174_5 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA174_6 = input.LA(1);
int index174_6 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA174_7 = input.LA(1);
int index174_7 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA174_8 = input.LA(1);
int index174_8 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA174_9 = input.LA(1);
int index174_9 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA174_10 = input.LA(1);
int index174_10 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA174_11 = input.LA(1);
int index174_11 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA174_12 = input.LA(1);
int index174_12 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA174_13 = input.LA(1);
int index174_13 = input.index();
input.rewind();
s = -1;
if ( (synpred17_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index174_13);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 174, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA175_eotS =
"\36\uffff";
static final String DFA175_eofS =
"\36\uffff";
static final String DFA175_minS =
"\1\137\2\0\1\uffff\12\0\20\uffff";
static final String DFA175_maxS =
"\1\u00c3\2\0\1\uffff\12\0\20\uffff";
static final String DFA175_acceptS =
"\3\uffff\1\1\12\uffff\1\1\1\2\16\uffff";
static final String DFA175_specialS =
"\1\0\1\1\1\2\1\uffff\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\20\uffff}>";
static final String[] DFA175_transitionS = {
"\1\17\1\uffff\3\17\3\uffff\2\17\2\uffff\1\17\5\uffff\1\15\2"+
"\uffff\1\17\1\uffff\3\17\1\uffff\1\6\1\7\2\17\1\10\4\uffff\1"+
"\17\4\uffff\1\17\2\uffff\5\17\14\uffff\1\11\17\uffff\2\16\4"+
"\uffff\1\17\3\uffff\1\1\1\2\1\uffff\1\17\1\5\1\uffff\1\4\1\13"+
"\1\uffff\1\12\1\uffff\1\14\1\uffff\1\3",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA175_eot = DFA.unpackEncodedString(DFA175_eotS);
static final short[] DFA175_eof = DFA.unpackEncodedString(DFA175_eofS);
static final char[] DFA175_min = DFA.unpackEncodedStringToUnsignedChars(DFA175_minS);
static final char[] DFA175_max = DFA.unpackEncodedStringToUnsignedChars(DFA175_maxS);
static final short[] DFA175_accept = DFA.unpackEncodedString(DFA175_acceptS);
static final short[] DFA175_special = DFA.unpackEncodedString(DFA175_specialS);
static final short[][] DFA175_transition;
static {
int numStates = DFA175_transitionS.length;
DFA175_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA175_transition[i] = DFA.unpackEncodedString(DFA175_transitionS[i]);
}
}
class DFA175 extends DFA {
public DFA175(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 175;
this.eot = DFA175_eot;
this.eof = DFA175_eof;
this.min = DFA175_min;
this.max = DFA175_max;
this.accept = DFA175_accept;
this.special = DFA175_special;
this.transition = DFA175_transition;
}
public String getDescription() {
return "676:1: p_lop_expr : ( ( lambda_expr_nobrackets )=> lambda_expr_nobrackets | p_op_expr );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA175_0 = input.LA(1);
int index175_0 = input.index();
input.rewind();
s = -1;
if ( (LA175_0==Constr) ) {s = 1;}
else if ( (LA175_0==Id) ) {s = 2;}
else if ( (LA175_0==UNDERSCORE) && (synpred18_babel17())) {s = 3;}
else if ( (LA175_0==String) ) {s = 4;}
else if ( (LA175_0==Num) ) {s = 5;}
else if ( (LA175_0==L_true) ) {s = 6;}
else if ( (LA175_0==L_false) ) {s = 7;}
else if ( (LA175_0==L_nil) ) {s = 8;}
else if ( (LA175_0==MINUS) ) {s = 9;}
else if ( (LA175_0==SQUARE_BRACKET_OPEN) ) {s = 10;}
else if ( (LA175_0==ROUND_BRACKET_OPEN) ) {s = 11;}
else if ( (LA175_0==CURLY_BRACKET_OPEN) ) {s = 12;}
else if ( (LA175_0==L_exception) ) {s = 13;}
else if ( ((LA175_0>=A_ELLIPSIS && LA175_0<=U_ELLIPSIS)) && (synpred18_babel17())) {s = 14;}
else if ( (LA175_0==L_begin||(LA175_0>=L_obj && LA175_0<=L_if)||(LA175_0>=L_while && LA175_0<=L_for)||LA175_0==L_match||LA175_0==L_try||(LA175_0>=L_concurrent && LA175_0<=L_lazy)||(LA175_0>=L_this && LA175_0<=L_random)||LA175_0==L_typeof||LA175_0==L_not||(LA175_0>=L_root && LA175_0<=L_lens)||LA175_0==L_force||LA175_0==Float) ) {s = 15;}
input.seek(index175_0);
if ( s>=0 ) return s;
break;
case 1 :
int LA175_1 = input.LA(1);
int index175_1 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_1);
if ( s>=0 ) return s;
break;
case 2 :
int LA175_2 = input.LA(1);
int index175_2 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_2);
if ( s>=0 ) return s;
break;
case 3 :
int LA175_4 = input.LA(1);
int index175_4 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA175_5 = input.LA(1);
int index175_5 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA175_6 = input.LA(1);
int index175_6 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA175_7 = input.LA(1);
int index175_7 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA175_8 = input.LA(1);
int index175_8 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA175_9 = input.LA(1);
int index175_9 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA175_10 = input.LA(1);
int index175_10 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA175_11 = input.LA(1);
int index175_11 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA175_12 = input.LA(1);
int index175_12 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA175_13 = input.LA(1);
int index175_13 = input.index();
input.rewind();
s = -1;
if ( (synpred18_babel17()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index175_13);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 175, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA371_eotS =
"\30\uffff";
static final String DFA371_eofS =
"\30\uffff";
static final String DFA371_minS =
"\1\137\12\uffff\1\0\14\uffff";
static final String DFA371_maxS =
"\1\u00c1\12\uffff\1\0\14\uffff";
static final String DFA371_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\uffff\1\15"+
"\1\16\1\17\6\uffff\1\20\1\13\1\14";
static final String DFA371_specialS =
"\13\uffff\1\0\14\uffff}>";
static final String[] DFA371_transitionS = {
"\1\16\1\uffff\1\14\2\16\3\uffff\2\16\2\uffff\1\16\10\uffff\1"+
"\16\5\uffff\1\6\1\7\1\10\1\uffff\1\11\14\uffff\1\12\52\uffff"+
"\1\5\1\4\1\uffff\1\2\1\1\1\uffff\1\3\1\13\1\uffff\1\15\1\uffff"+
"\1\25",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA371_eot = DFA.unpackEncodedString(DFA371_eotS);
static final short[] DFA371_eof = DFA.unpackEncodedString(DFA371_eofS);
static final char[] DFA371_min = DFA.unpackEncodedStringToUnsignedChars(DFA371_minS);
static final char[] DFA371_max = DFA.unpackEncodedStringToUnsignedChars(DFA371_maxS);
static final short[] DFA371_accept = DFA.unpackEncodedString(DFA371_acceptS);
static final short[] DFA371_special = DFA.unpackEncodedString(DFA371_specialS);
static final short[][] DFA371_transition;
static {
int numStates = DFA371_transitionS.length;
DFA371_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA371_transition[i] = DFA.unpackEncodedString(DFA371_transitionS[i]);
}
}
class DFA371 extends DFA {
public DFA371(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 371;
this.eot = DFA371_eot;
this.eof = DFA371_eof;
this.min = DFA371_min;
this.max = DFA371_max;
this.accept = DFA371_accept;
this.special = DFA371_special;
this.transition = DFA371_transition;
}
public String getDescription() {
return "906:1: primitive_expr : ( Num | Float | String | Id | Constr | L_true | L_false | L_this | L_nil | L_root | ( type_expr )=> type_expr | ( lambda_expr )=> lambda_expr | obj_expr | list_expr | with_control_expr | map_or_set_expr );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA371_11 = input.LA(1);
int index371_11 = input.index();
input.rewind();
s = -1;
if ( (synpred20_babel17()) ) {s = 22;}
else if ( (synpred21_babel17()) ) {s = 23;}
else if ( (true) ) {s = 13;}
input.seek(index371_11);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 371, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_block_in_prog280 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_prog282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_EQUAL0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_NOT_EQUAL0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_LESS_EQ0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_GREATER_EQ0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_or_in_token_OR1275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_and_in_token_AND1283 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_not_in_token_NOT1291 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_xor_in_token_XOR1301 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_DOUBLE_COLON0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_DOUBLE_ARROW0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_ARROW0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_token_ELLIPSIS0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_typeid1951 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_NL_in_typeid1954 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_PERIOD_in_typeid1957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_typeid1959 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_typeid1962 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_typeid_in_typeannotation1982 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_typeannotation1987 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_typeannotation1989 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_typeannotation1991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Constr_in_pattern2008 = new BitSet(new long[]{0x0000000000000002L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_pattern2011 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_pattern2014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitive_pattern_in_pattern2030 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_NL_in_pattern2033 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_token_DOUBLE_COLON_in_pattern2036 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB4A0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_pattern2038 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB480000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_primitive_pattern_in_pattern2041 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_L_exception_in_pattern2060 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_pattern2062 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_pattern2065 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_ELLIPSIS_in_pattern2078 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitive_pattern_in_defpattern2088 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_NL_in_defpattern2091 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_token_DOUBLE_COLON_in_defpattern2094 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB4A0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_defpattern2096 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB480000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_primitive_pattern_in_defpattern2099 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_Constr_in_defpattern2117 = new BitSet(new long[]{0x0000000000000002L,0x4C00000000000000L,0xB4C0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_defpattern_in_defpattern2119 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_valpattern2150 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_valpattern2152 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_valpattern2155 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_NL_in_valpattern2157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_typeannotation_in_valpattern2160 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_valpattern2175 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bracket_pattern_in_casepattern2184 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_bracket_pattern2211 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2213 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_L_as_in_bracket_pattern2216 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2218 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_expr_in_bracket_pattern2250 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0021000000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2252 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_QUESTION_MARK_in_bracket_pattern2255 = new BitSet(new long[]{0x0000000000000002L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2258 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2261 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_expr_in_bracket_pattern2293 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0022000000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2295 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_EXCLAMATION_MARK_in_bracket_pattern2298 = new BitSet(new long[]{0x0000000000000002L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2301 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2304 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_bracket_pattern2330 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2332 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_val_in_bracket_pattern2347 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2349 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_bracket_pattern2352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_for_in_bracket_pattern2371 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498F80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2373 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498F80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bracket_pattern_in_bracket_pattern2377 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2381 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_bracket_pattern2384 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2386 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bracket_pattern_in_bracket_pattern2389 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2394 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_bracket_pattern2399 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2424 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2426 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_L_if_in_bracket_pattern2429 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bracket_pattern2431 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_bracket_pattern2434 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2460 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2462 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_bracket_pattern2465 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_NL_in_bracket_pattern2467 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_typeannotation_in_bracket_pattern2470 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_bracket_pattern2485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_ARROW_in_arrow_or_assign2495 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGN_in_arrow_or_assign2506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bracket_pattern_in_mselem_pattern2521 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000000L,0x00200C0000000000L});
public static final BitSet FOLLOW_NL_in_mselem_pattern2524 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x00200C0000000000L});
public static final BitSet FOLLOW_arrow_or_assign_in_mselem_pattern2527 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_mselem_pattern2529 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bracket_pattern_in_mselem_pattern2532 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_primitive_pattern2561 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UNDERSCORE_in_primitive_pattern2566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_String_in_primitive_pattern2575 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Num_in_primitive_pattern2580 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_true_in_primitive_pattern2585 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_false_in_primitive_pattern2590 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_nil_in_primitive_pattern2595 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_primitive_pattern2603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0420000000000000L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2605 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_Num_in_primitive_pattern2608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SQUARE_BRACKET_OPEN_in_primitive_pattern2621 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000BL});
public static final BitSet FOLLOW_NL_in_primitive_pattern2624 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000BL});
public static final BitSet FOLLOW_bracket_pattern_in_primitive_pattern2628 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2630 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_COMMA_in_primitive_pattern2635 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_primitive_pattern2637 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bracket_pattern_in_primitive_pattern2640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2642 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_SQUARE_BRACKET_CLOSE_in_primitive_pattern2650 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_primitive_pattern2670 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xF6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_primitive_pattern2673 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xF6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bracket_pattern_in_primitive_pattern2677 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020400000000000L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2679 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000400000000000L});
public static final BitSet FOLLOW_COMMA_in_primitive_pattern2684 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_primitive_pattern2687 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bracket_pattern_in_primitive_pattern2690 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020400000000000L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2692 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000400000000000L});
public static final BitSet FOLLOW_COMMA_in_primitive_pattern2698 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2700 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_primitive_pattern2707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CURLY_BRACKET_OPEN_in_primitive_pattern2739 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000EL});
public static final BitSet FOLLOW_NL_in_primitive_pattern2742 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000EL});
public static final BitSet FOLLOW_mselem_pattern_in_primitive_pattern2746 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2748 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_COMMA_in_primitive_pattern2753 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_primitive_pattern2756 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_mselem_pattern_in_primitive_pattern2759 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2761 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_CURLY_BRACKET_CLOSE_in_primitive_pattern2769 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CURLY_BRACKET_OPEN_in_primitive_pattern2787 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00200C0000000000L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2789 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000C0000000000L});
public static final BitSet FOLLOW_token_ARROW_in_primitive_pattern2792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_primitive_pattern2794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_CURLY_BRACKET_CLOSE_in_primitive_pattern2797 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_sep2813 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_sep_in_block2829 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6C430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_statement_in_block2832 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_sep_in_block2835 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6C430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_statement_in_block2837 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_sep_in_block2841 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sep_in_block2857 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_pure_block2874 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_sep_in_pure_block2877 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6C430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_statement_in_pure_block2879 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_st_typedef_in_statement2900 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_val_in_statement2911 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_def_in_statement2916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_yield_in_statement2921 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_memoize_in_statement2926 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_private_in_statement2931 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_module_in_statement2936 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_st_import_in_statement2941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_or_assign_in_statement2946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_PRINT_in_statement2952 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_statement2954 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_statement2957 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_LOG_in_statement2971 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_statement2973 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_statement2976 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_PROFILE_in_statement2990 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_statement2992 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_statement2995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_ASSERT_in_statement3009 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_statement3011 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_statement3014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_CATCH_in_statement3027 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_statement3029 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_casepattern_in_statement3032 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_statement3034 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_L_try_in_statement3037 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_statement3039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_statement3042 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_statement3044 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_statement3047 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_val_in_st_val3066 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_val3068 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_valpattern_in_st_val3071 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_st_val3073 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_st_val3076 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_val3078 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_st_val3081 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_def_in_st_def3101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_st_def3106 = new BitSet(new long[]{0x0000000100000000L,0x4C00000000000000L,0xB4E0000010000000L,0x000000000000001AL});
public static final BitSet FOLLOW_NL_in_st_def3108 = new BitSet(new long[]{0x0000000100000000L,0x4C00000000000000L,0xB4C0000010000000L,0x000000000000001AL});
public static final BitSet FOLLOW_defpattern_in_st_def3112 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_st_def3114 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_st_def3120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_typeid_in_st_def3125 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3127 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_st_def3132 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_def3134 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_st_def3137 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_def_in_st_def3163 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3165 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_L_this_in_st_def3168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_st_def3170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_st_def3173 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3175 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_typeid_in_st_def3178 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3180 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_st_def3183 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_def3185 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_st_def3188 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_def_in_st_def3203 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3205 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_L_this_in_st_def3208 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000200000000L});
public static final BitSet FOLLOW_NL_in_st_def3210 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_TOK_CONVERT_in_st_def3213 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3215 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_typeid_in_st_def3218 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_st_def3220 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_st_def3223 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_def3225 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_st_def3228 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_typedef_in_st_typedef3251 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_typedef3253 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_st_typedef3256 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB4E0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_typedef3258 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB4E0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_typedef_clause_in_st_typedef3261 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_st_typedef3264 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_st_typedef3267 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB4E0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_st_typedef3269 = new BitSet(new long[]{0x0000000000000000L,0x4C00000000000000L,0xB4E0000010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_typedef_clause_in_st_typedef3272 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_defpattern_in_typedef_clause3310 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_typedef_clause3312 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_typedef_clause3315 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_typedef_clause3317 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_typedef_clause3320 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defpattern_in_typedef_clause3335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_yield_in_st_yield3354 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_st_yield3356 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_memoize_in_st_memoize3377 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2080000000000000L});
public static final BitSet FOLLOW_memo_id_in_st_memoize3379 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_st_memoize3382 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_st_memoize3385 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_memoize3387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2080000000000000L});
public static final BitSet FOLLOW_memo_id_in_st_memoize3390 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_Id_in_memo_id3419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_memo_id3432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_memo_id3434 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_memo_id3436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_private_in_st_private3453 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_private_id_in_st_private3455 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_st_private3458 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_st_private3461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_private3463 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_private_id_in_st_private3466 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_Id_in_private_id3492 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_testid0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_moduleid3525 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_NL_in_moduleid3528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_PERIOD_in_moduleid3531 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000040L});
public static final BitSet FOLLOW_NL_in_moduleid3533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000040L});
public static final BitSet FOLLOW_testid_in_moduleid3536 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_L_module_in_st_module3559 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_module3561 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_moduleid_in_st_module3564 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F97EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_st_module3566 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L,0x0000000000000040L});
public static final BitSet FOLLOW_L_unittest_in_st_module3569 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_st_module3571 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_st_module3575 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_root_in_importprefix3602 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_testid_in_importprefix3606 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_NL_in_importprefix3610 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_PERIOD_in_importprefix3613 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000040L});
public static final BitSet FOLLOW_NL_in_importprefix3615 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000040L});
public static final BitSet FOLLOW_testid_in_importprefix3618 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_UNDERSCORE_in_importall3643 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_testid_in_importsetclause3659 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_importsetclause3662 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_importsetclause3665 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_importsetclause3668 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_importsetclause3671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_importsetclause3691 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000040L});
public static final BitSet FOLLOW_NL_in_importsetclause3693 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000040L});
public static final BitSet FOLLOW_testid_in_importsetclause3696 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_importall_in_importsetclause3709 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CURLY_BRACKET_OPEN_in_importset3719 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000010000040L,0x0000000000000008L});
public static final BitSet FOLLOW_NL_in_importset3721 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000010000040L,0x0000000000000008L});
public static final BitSet FOLLOW_importsetclause_in_importset3724 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_importset3727 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_importset3730 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000010000040L,0x0000000000000008L});
public static final BitSet FOLLOW_NL_in_importset3732 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000010000040L,0x0000000000000008L});
public static final BitSet FOLLOW_importsetclause_in_importset3735 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_importset3739 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_CURLY_BRACKET_CLOSE_in_importset3742 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_import_in_st_import3760 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000840L});
public static final BitSet FOLLOW_NL_in_st_import3762 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000840L});
public static final BitSet FOLLOW_importprefix_in_st_import3765 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020830000000000L});
public static final BitSet FOLLOW_NL_in_st_import3768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020830000000000L});
public static final BitSet FOLLOW_PERIOD_in_st_import3772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000010000040L,0x0000000000000008L});
public static final BitSet FOLLOW_NL_in_st_import3774 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000010000040L,0x0000000000000008L});
public static final BitSet FOLLOW_importall_in_st_import3777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PERIOD_in_st_import3781 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_NL_in_st_import3783 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_importset_in_st_import3786 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_st_import3790 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_st_import3792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_st_import3795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_expr_or_assign3838 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_NL_in_expr_or_assign3840 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_left_modify_in_expr_or_assign3843 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign3845 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign3848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_expr_or_assign3877 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_expr_or_assign3879 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_right_modify_in_expr_or_assign3882 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign3884 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign3887 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_expr_or_assign3918 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_expr_or_assign3920 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_expr_or_assign3923 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign3925 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign3928 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_expr_or_assign3955 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_expr_or_assign3957 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_expr_or_assign3960 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign3962 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign3965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_expr_or_assign3991 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_NL_in_expr_or_assign3993 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_left_modify_in_expr_or_assign3996 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign3998 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign4001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_expr_or_assign4030 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_expr_or_assign4032 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_right_modify_in_expr_or_assign4035 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign4037 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign4040 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_expr_or_assign4070 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_expr_or_assign4072 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_expr_or_assign4075 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_expr_or_assign4077 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_expr_in_expr_or_assign4080 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_expr_or_assign4095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_plus_in_left_modify4105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_plusplus_in_left_modify4109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_minus_in_left_modify4113 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_minusminus_in_left_modify4117 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_times_in_left_modify4121 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_timestimes_in_left_modify4125 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_slash_in_left_modify4129 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_slashslash_in_left_modify4133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ML_pow_in_left_modify4137 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_left_modify_op_in_left_modify4141 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_left_modify4144 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_plus_in_right_modify4154 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_plusplus_in_right_modify4158 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_minus_in_right_modify4162 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_minusminus_in_right_modify4166 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_times_in_right_modify4170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_timestimes_in_right_modify4174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_slash_in_right_modify4178 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_slashslash_in_right_modify4182 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MR_pow_in_right_modify4186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGN_in_right_modify4190 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000000000681L});
public static final BitSet FOLLOW_right_modify_op_in_right_modify4193 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_AND_in_right_modify_op4203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_OR_in_right_modify_op4207 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_XOR_in_right_modify_op4211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_div_in_right_modify_op4215 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_mod_in_right_modify_op4219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_right_modify_op_in_left_modify_op4228 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_min_in_left_modify_op4232 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_max_in_left_modify_op4236 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lop_expr_in_expr4248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_if_expr_in_control_expr4260 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_while_do_expr_in_control_expr4265 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_match_expr_in_control_expr4270 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_for_expr_in_control_expr4275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_try_expr_in_control_expr4281 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_begin_end_in_control_expr4286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_control_expr_in_with_control_expr4296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_with_in_with_control_expr4301 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_with_control_expr4303 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_with_control_expr4306 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_with_control_expr4308 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_L_do_in_with_control_expr4311 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_with_control_expr4313 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_with_control_expr4315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_lop_expr_in_protected_expr4340 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_expr_in_protected_expr_nc4353 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_begin_in_begin_end4363 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_begin_end4365 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_begin_end4367 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_parents4385 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_primitive_expr_in_parents4387 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TIMES_in_parents4400 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_primitive_expr_in_parents4402 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_obj_in_obj_expr4430 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000028000000L});
public static final BitSet FOLLOW_NL_in_obj_expr4432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000028000000L});
public static final BitSet FOLLOW_parents_in_obj_expr4435 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_obj_expr4437 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_obj_expr4439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_obj_in_obj_expr4467 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_obj_expr4469 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_obj_expr4471 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_expr_nobrackets_in_lop_expr4501 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_op_expr_in_lop_expr4506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_expr_nobrackets_in_p_lop_expr4524 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_op_expr_in_p_lop_expr4529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_if_in_if_expr4539 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_if_expr4541 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_if_expr4544 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_if_expr4546 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_L_then_in_if_expr4549 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CDEF80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_if_expr4551 = new BitSet(new long[]{0x0000000000000000L,0x0000006100000000L});
public static final BitSet FOLLOW_L_elseif_in_if_expr4557 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_if_expr4559 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_if_expr4562 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_if_expr4564 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_L_then_in_if_expr4567 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CDEF80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_if_expr4569 = new BitSet(new long[]{0x0000000000000000L,0x0000006100000000L});
public static final BitSet FOLLOW_L_else_in_if_expr4577 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_if_expr4579 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_if_expr4583 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_while_in_while_do_expr4607 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_while_do_expr4609 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_while_do_expr4612 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_while_do_expr4614 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_L_do_in_while_do_expr4617 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_while_do_expr4619 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_while_do_expr4621 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_full_cases_in_cases4651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_cases4656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_cases4658 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_cases4661 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_cases4663 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_case_expr_in_full_cases4686 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
public static final BitSet FOLLOW_L_case_in_case_expr4707 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_case_expr4709 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_casepattern_in_case_expr4712 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_case_expr4714 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_case_expr4717 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_case_expr4719 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_match_in_match_expr4740 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_match_expr4742 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_op_expr_in_match_expr4745 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_match_expr4747 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_full_cases_in_match_expr4750 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_match_expr4752 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_try_in_try_expr4778 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_NL_in_try_expr4780 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_pure_block_in_try_expr4783 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_try_expr4785 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_L_catch_in_try_expr4788 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_try_expr4790 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_full_cases_in_try_expr4793 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_try_expr4795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_lambda_expr4819 = new BitSet(new long[]{0x0000000000000000L,0x4C02100000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lambda_expr4821 = new BitSet(new long[]{0x0000000000000000L,0x4C02100000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_lambda_cases_in_lambda_expr4824 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_lambda_expr4826 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_lambda_expr4829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_cases_nobrackets_in_lambda_expr_nobrackets4848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_lambda_cases_nobrackets4866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_lambda_cases_nobrackets4868 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_lambda_cases_nobrackets4871 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lambda_cases_nobrackets4873 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_lop_expr_in_lambda_cases_nobrackets4876 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_case_in_lambda_case_expr4904 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lambda_case_expr4906 = new BitSet(new long[]{0x0000000000000000L,0x7DD2498E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_casepattern_in_lambda_case_expr4909 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_lambda_case_expr4911 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_lambda_case_expr4914 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_NL_in_lambda_case_expr4916 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_pure_block_in_lambda_case_expr4919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_lambda_cases4940 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_lambda_cases4942 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_lambda_cases4945 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_NL_in_lambda_cases4947 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8E80000000L,0xB6E430001000F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_pure_block_in_lambda_cases4950 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_case_expr_in_lambda_cases4969 = new BitSet(new long[]{0x0000000000000002L,0x4C02100000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lambda_cases4972 = new BitSet(new long[]{0x0000000000000000L,0x4C02100000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_lambda_case_expr_in_lambda_cases4975 = new BitSet(new long[]{0x0000000000000002L,0x4C02100000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_L_for_in_for_expr4993 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4E0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_for_expr4995 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_for_expr4998 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_for_expr5000 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_L_in_in_for_expr5003 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_for_expr5005 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_for_expr5008 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_for_expr5010 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_L_do_in_for_expr5013 = new BitSet(new long[]{0x0000000000000000L,0x7FD2CD8F80000000L,0xB6E430001400F93EL,0x00000000000003EAL});
public static final BitSet FOLLOW_block_in_for_expr5015 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_L_end_in_for_expr5017 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_builtin_primitive_in_op_expr5046 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_op_expr_in_op_expr5049 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lens_expr_in_op_expr5054 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_expr_in_op_expr5059 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_builtin_primitive_in_p_op_expr5069 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_op_expr5072 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_op_expr_in_p_op_expr5076 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_lens_expr_in_p_op_expr5081 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_bool_expr_in_p_op_expr5086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_builtin_primitive0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_lens_in_lens_expr5117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_lens_expr5119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_lens_expr5122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_lens_expr5124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_lens_expr5127 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lens_expr5129 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_op_expr_in_lens_expr5132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_lens_in_lens_expr5147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2020000000000000L});
public static final BitSet FOLLOW_NL_in_lens_expr5149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_lens_expr5152 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lens_expr5154 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_lens_expr5157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_lens_expr5159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_lens_expr5162 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_lens_expr5164 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_lens_expr5167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_lens_expr5169 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_lens_expr5172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_lens_in_p_lens_expr5192 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_p_lens_expr5194 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_Id_in_p_lens_expr5197 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_NL_in_p_lens_expr5199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020030000000000L});
public static final BitSet FOLLOW_token_DOUBLE_ARROW_in_p_lens_expr5202 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_lens_expr5204 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_op_expr_in_p_lens_expr5207 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_lens_in_p_lens_expr5224 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2020000000000000L});
public static final BitSet FOLLOW_NL_in_p_lens_expr5226 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_p_lens_expr5229 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_lens_expr5231 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_p_lens_expr5234 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L});
public static final BitSet FOLLOW_NL_in_p_lens_expr5236 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_p_lens_expr5239 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_lens_expr5241 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_in_p_lens_expr5244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_p_lens_expr5246 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_p_lens_expr5249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_or_expr_in_bool_expr5269 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_bool_or_expr_in_p_bool_expr5279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_and_expr_in_bool_or_expr5288 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000200L});
public static final BitSet FOLLOW_NL_in_bool_or_expr5291 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_token_OR_in_bool_or_expr5295 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bool_or_expr5298 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bool_and_expr_in_bool_or_expr5302 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000200L});
public static final BitSet FOLLOW_p_bool_and_expr_in_p_bool_or_expr5314 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000200L});
public static final BitSet FOLLOW_NL_in_p_bool_or_expr5317 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_token_OR_in_p_bool_or_expr5321 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_bool_or_expr5324 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_bool_and_expr_in_p_bool_or_expr5328 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000200L});
public static final BitSet FOLLOW_bool_xor_expr_in_bool_and_expr5340 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000080L});
public static final BitSet FOLLOW_NL_in_bool_and_expr5343 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_token_AND_in_bool_and_expr5347 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bool_and_expr5350 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bool_xor_expr_in_bool_and_expr5354 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000080L});
public static final BitSet FOLLOW_p_bool_xor_expr_in_p_bool_and_expr5366 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000080L});
public static final BitSet FOLLOW_NL_in_p_bool_and_expr5369 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_token_AND_in_p_bool_and_expr5373 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_bool_and_expr5376 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_bool_xor_expr_in_p_bool_and_expr5380 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000080L});
public static final BitSet FOLLOW_bool_not_expr_in_bool_xor_expr5391 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000400L});
public static final BitSet FOLLOW_NL_in_bool_xor_expr5394 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_token_XOR_in_bool_xor_expr5398 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bool_xor_expr5401 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bool_not_expr_in_bool_xor_expr5405 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000400L});
public static final BitSet FOLLOW_p_bool_not_expr_in_p_bool_xor_expr5417 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000400L});
public static final BitSet FOLLOW_NL_in_p_bool_xor_expr5420 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_token_XOR_in_p_bool_xor_expr5424 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_bool_xor_expr5427 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_bool_not_expr_in_p_bool_xor_expr5431 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000000000400L});
public static final BitSet FOLLOW_token_NOT_in_bool_not_expr5442 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_bool_not_expr5445 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_bool_not_expr_in_bool_not_expr5449 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rel_expr_in_bool_not_expr5454 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_NOT_in_p_bool_not_expr5465 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_bool_not_expr5468 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_bool_not_expr_in_p_bool_not_expr5472 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_rel_expr_in_p_bool_not_expr5477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relate_expr_in_rel_expr5487 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000003FF0000L});
public static final BitSet FOLLOW_NL_in_rel_expr5490 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000003FF0000L});
public static final BitSet FOLLOW_rel_op_in_rel_expr5493 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_rel_expr5495 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_relate_expr_in_rel_expr5498 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000003FF0000L});
public static final BitSet FOLLOW_p_relate_expr_in_p_rel_expr5525 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000003FF0000L});
public static final BitSet FOLLOW_NL_in_p_rel_expr5528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000003FF0000L});
public static final BitSet FOLLOW_rel_op_in_p_rel_expr5531 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_rel_expr5533 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_relate_expr_in_p_rel_expr5536 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000003FF0000L});
public static final BitSet FOLLOW_token_EQUAL_in_rel_op5562 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_NOT_EQUAL_in_rel_op5566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATER_in_rel_op5570 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_GREATER_EQ_in_rel_op5574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESS_in_rel_op5578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_token_LESS_EQ_in_rel_op5582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_convert_expr_in_relate_expr5591 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000100000000L});
public static final BitSet FOLLOW_NL_in_relate_expr5594 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_TOK_RELATE_in_relate_expr5597 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_relate_expr5599 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_convert_expr_in_relate_expr5602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_convert_expr_in_p_relate_expr5621 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000100000000L});
public static final BitSet FOLLOW_NL_in_p_relate_expr5624 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_TOK_RELATE_in_p_relate_expr5627 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_relate_expr5629 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_convert_expr_in_p_relate_expr5632 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_convert_expr5653 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000200000000L});
public static final BitSet FOLLOW_NL_in_convert_expr5656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_TOK_CONVERT_in_convert_expr5659 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_NL_in_convert_expr5661 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_typeannotation_in_convert_expr5664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_term_expr_in_p_convert_expr5686 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000200000000L});
public static final BitSet FOLLOW_NL_in_p_convert_expr5689 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_TOK_CONVERT_in_p_convert_expr5692 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_NL_in_p_convert_expr5694 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_typeannotation_in_p_convert_expr5697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_builtin_fun_in_term_expr5720 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_term_expr_in_term_expr5723 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arith_expr_in_term_expr5728 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_builtin_fun_in_p_term_expr5738 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_term_expr5741 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_term_expr_in_p_term_expr5745 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_arith_expr_in_p_term_expr5750 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_builtin_fun0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_plusplus_expr_in_arith_expr5788 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_plusplus_expr_in_p_arith_expr5797 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_timestimes_expr_in_plusplus_expr5807 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x002000C000000000L});
public static final BitSet FOLLOW_NL_in_plusplus_expr5810 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000C000000000L});
public static final BitSet FOLLOW_PLUSPLUS_in_plusplus_expr5815 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_MINUSMINUS_in_plusplus_expr5818 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_plusplus_expr5822 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_timestimes_expr_in_plusplus_expr5826 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x002000C000000000L});
public static final BitSet FOLLOW_p_timestimes_expr_in_p_plusplus_expr5838 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x002000C000000000L});
public static final BitSet FOLLOW_NL_in_p_plusplus_expr5841 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000C000000000L});
public static final BitSet FOLLOW_PLUSPLUS_in_p_plusplus_expr5846 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_MINUSMINUS_in_p_plusplus_expr5849 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_plusplus_expr5853 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_timestimes_expr_in_p_plusplus_expr5857 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x002000C000000000L});
public static final BitSet FOLLOW_simple_expr_in_timestimes_expr5869 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020003000000000L});
public static final BitSet FOLLOW_NL_in_timestimes_expr5872 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000003000000000L});
public static final BitSet FOLLOW_TIMESTIMES_in_timestimes_expr5877 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_QUOTIENTQUOTIENT_in_timestimes_expr5880 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_timestimes_expr5884 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_simple_expr_in_timestimes_expr5888 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020003000000000L});
public static final BitSet FOLLOW_p_simple_expr_in_p_timestimes_expr5901 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020003000000000L});
public static final BitSet FOLLOW_NL_in_p_timestimes_expr5904 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000003000000000L});
public static final BitSet FOLLOW_TIMESTIMES_in_p_timestimes_expr5909 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_QUOTIENTQUOTIENT_in_p_timestimes_expr5912 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_timestimes_expr5916 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_simple_expr_in_p_timestimes_expr5920 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020003000000000L});
public static final BitSet FOLLOW_cons_expr_in_simple_expr5931 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_cons_expr_in_p_simple_expr5940 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_to_expr_in_cons_expr5949 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_NL_in_cons_expr5952 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_token_DOUBLE_COLON_in_cons_expr5955 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_cons_expr5957 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_to_expr_in_cons_expr5960 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_p_to_expr_in_p_cons_expr5980 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_NL_in_p_cons_expr5983 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_token_DOUBLE_COLON_in_p_cons_expr5986 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_cons_expr5988 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_to_expr_in_p_cons_expr5991 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000C00000000L});
public static final BitSet FOLLOW_arith_plus_expr_in_to_expr6011 = new BitSet(new long[]{0x0000000000000002L,0x000C000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_to_expr6014 = new BitSet(new long[]{0x0000000000000000L,0x000C000000000000L});
public static final BitSet FOLLOW_L_to_in_to_expr6019 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_L_downto_in_to_expr6023 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_to_expr6027 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_arith_plus_expr_in_to_expr6031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_arith_plus_expr_in_p_to_expr6044 = new BitSet(new long[]{0x0000000000000002L,0x000C000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_p_to_expr6047 = new BitSet(new long[]{0x0000000000000000L,0x000C000000000000L});
public static final BitSet FOLLOW_L_to_in_p_to_expr6052 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_L_downto_in_p_to_expr6056 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_to_expr6060 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_arith_plus_expr_in_p_to_expr6064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arith_uminus_expr_in_arith_plus_expr6076 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000018000000L});
public static final BitSet FOLLOW_NL_in_arith_plus_expr6080 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_PLUS_in_arith_plus_expr6084 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_MINUS_in_arith_plus_expr6089 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_arith_plus_expr6093 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_arith_uminus_expr_in_arith_plus_expr6097 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000018000000L});
public static final BitSet FOLLOW_p_arith_uminus_expr_in_p_arith_plus_expr6108 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000018000000L});
public static final BitSet FOLLOW_NL_in_p_arith_plus_expr6111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000018000000L});
public static final BitSet FOLLOW_set_in_p_arith_plus_expr6115 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_arith_plus_expr6124 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_arith_uminus_expr_in_p_arith_plus_expr6128 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000018000000L});
public static final BitSet FOLLOW_MINUS_in_arith_uminus_expr6141 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_arith_uminus_expr6143 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_arith_mult_expr_in_arith_uminus_expr6146 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arith_mult_expr_in_arith_uminus_expr6159 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_p_arith_uminus_expr6170 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_arith_uminus_expr6172 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_arith_mult_expr_in_p_arith_uminus_expr6175 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p_arith_mult_expr_in_p_arith_uminus_expr6188 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arith_pow_expr_in_arith_mult_expr6197 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x0020000060000001L});
public static final BitSet FOLLOW_NL_in_arith_mult_expr6200 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000060000001L});
public static final BitSet FOLLOW_set_in_arith_mult_expr6204 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_arith_mult_expr6221 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_arith_pow_expr_in_arith_mult_expr6225 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x0020000060000001L});
public static final BitSet FOLLOW_p_arith_pow_expr_in_p_arith_mult_expr6237 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x0020000060000001L});
public static final BitSet FOLLOW_NL_in_p_arith_mult_expr6240 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000060000001L});
public static final BitSet FOLLOW_set_in_p_arith_mult_expr6244 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_arith_mult_expr6261 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_arith_pow_expr_in_p_arith_mult_expr6265 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x0020000060000001L});
public static final BitSet FOLLOW_apply_expr_in_arith_pow_expr6276 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000080000000L});
public static final BitSet FOLLOW_NL_in_arith_pow_expr6279 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_POW_tok_in_arith_pow_expr6282 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_arith_pow_expr6284 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_apply_expr_in_arith_pow_expr6287 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000080000000L});
public static final BitSet FOLLOW_p_apply_expr_in_p_arith_pow_expr6308 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000080000000L});
public static final BitSet FOLLOW_NL_in_p_arith_pow_expr6311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
public static final BitSet FOLLOW_POW_tok_in_p_arith_pow_expr6314 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_arith_pow_expr6316 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_apply_expr_in_p_arith_pow_expr6319 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020000080000000L});
public static final BitSet FOLLOW_basic_expr_in_apply_expr6340 = new BitSet(new long[]{0x0000000000000002L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_basic_expr_in_p_apply_expr6358 = new BitSet(new long[]{0x0000000000000002L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_p_apply_expr6361 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_basic_expr_in_p_apply_expr6364 = new BitSet(new long[]{0x0000000000000002L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_message_send_expr_in_basic_expr6384 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_message_send_expr_in_p_basic_expr6393 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitive_expr_in_message_send_expr6402 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_NL_in_message_send_expr6405 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_PERIOD_in_message_send_expr6408 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_NL_in_message_send_expr6410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x20A0000000000000L});
public static final BitSet FOLLOW_message_expr_in_message_send_expr6413 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0020800000000000L});
public static final BitSet FOLLOW_Id_in_message_expr6436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_message_expr6449 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_message_expr6451 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6C430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_p_op_expr_in_message_expr6454 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_message_expr6456 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_message_expr6459 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SQUARE_BRACKET_OPEN_in_list_expr6494 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_list_expr6496 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_list_expr6499 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_NL_in_list_expr6501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_SC_in_list_expr6504 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_list_expr6506 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_list_expr6509 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_NL_in_list_expr6511 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_SQUARE_BRACKET_CLOSE_in_list_expr6514 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SQUARE_BRACKET_OPEN_in_list_expr6528 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000BL});
public static final BitSet FOLLOW_NL_in_list_expr6530 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000BL});
public static final BitSet FOLLOW_protected_expr_nc_in_list_expr6534 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_NL_in_list_expr6537 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_list_expr6540 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_list_expr6542 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_list_expr6545 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_NL_in_list_expr6549 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_SQUARE_BRACKET_CLOSE_in_list_expr6554 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_list_expr6568 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xF6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_list_expr6570 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xF6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_list_expr6574 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020400000000000L});
public static final BitSet FOLLOW_NL_in_list_expr6577 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_COMMA_in_list_expr6580 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_list_expr6582 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_list_expr6585 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020400000000000L});
public static final BitSet FOLLOW_NL_in_list_expr6589 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000400000000000L});
public static final BitSet FOLLOW_COMMA_in_list_expr6593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_list_expr6595 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_list_expr6602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CURLY_BRACKET_OPEN_in_map_or_set_expr6631 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000EL});
public static final BitSet FOLLOW_NL_in_map_or_set_expr6633 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000EL});
public static final BitSet FOLLOW_map_or_set_elem_expr_in_map_or_set_expr6637 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_map_or_set_expr6639 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_COMMA_in_map_or_set_expr6643 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_map_or_set_expr6645 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_map_or_set_elem_expr_in_map_or_set_expr6648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_map_or_set_expr6650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_CURLY_BRACKET_CLOSE_in_map_or_set_expr6657 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CURLY_BRACKET_OPEN_in_map_or_set_expr6677 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00200C0000000000L});
public static final BitSet FOLLOW_NL_in_map_or_set_expr6679 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00000C0000000000L});
public static final BitSet FOLLOW_token_ARROW_in_map_or_set_expr6682 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_NL_in_map_or_set_expr6684 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_CURLY_BRACKET_CLOSE_in_map_or_set_expr6687 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_expr_nc_in_map_or_set_elem_expr6704 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000000L,0x00200C0000000000L});
public static final BitSet FOLLOW_NL_in_map_or_set_elem_expr6707 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x00200C0000000000L});
public static final BitSet FOLLOW_arrow_or_assign_in_map_or_set_elem_expr6710 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_map_or_set_elem_expr6712 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_map_or_set_elem_expr6715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ROUND_BRACKET_OPEN_in_type_expr6742 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_type_expr6744 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_type_expr6747 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00A0000000000000L});
public static final BitSet FOLLOW_NL_in_type_expr6749 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_typeid_in_type_expr6752 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4020000000000000L});
public static final BitSet FOLLOW_NL_in_type_expr6754 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L});
public static final BitSet FOLLOW_ROUND_BRACKET_CLOSE_in_type_expr6757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Num_in_primitive_expr6775 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Float_in_primitive_expr6780 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_String_in_primitive_expr6785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_primitive_expr6790 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Constr_in_primitive_expr6795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_true_in_primitive_expr6800 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_false_in_primitive_expr6805 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_this_in_primitive_expr6810 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_nil_in_primitive_expr6816 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_root_in_primitive_expr6821 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_expr_in_primitive_expr6832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_expr_in_primitive_expr6843 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_obj_expr_in_primitive_expr6848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_list_expr_in_primitive_expr6854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_with_control_expr_in_primitive_expr6859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_map_or_set_expr_in_primitive_expr6864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_synpred1_babel172140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_synpred1_babel172142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_synpred1_babel172145 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_synpred2_babel172201 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred2_babel172203 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_L_as_in_synpred2_babel172206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_expr_in_synpred3_babel172237 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0021000000000000L});
public static final BitSet FOLLOW_NL_in_synpred3_babel172239 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_QUESTION_MARK_in_synpred3_babel172242 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_protected_expr_in_synpred4_babel172280 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0022000000000000L});
public static final BitSet FOLLOW_NL_in_synpred4_babel172282 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_EXCLAMATION_MARK_in_synpred4_babel172285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_synpred5_babel172323 = new BitSet(new long[]{0x0000000000000000L,0x4C02000000000000L,0xB4C0300010000000L,0x000000000000000AL});
public static final BitSet FOLLOW_pattern_in_synpred5_babel172325 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_synpred6_babel172414 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred6_babel172416 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_L_if_in_synpred6_babel172419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_synpred7_babel172450 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_NL_in_synpred7_babel172452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_COLON_in_synpred7_babel172455 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defpattern_in_synpred8_babel173300 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred8_babel173302 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred8_babel173305 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_synpred9_babel173828 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_NL_in_synpred9_babel173830 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_left_modify_in_synpred9_babel173833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_synpred10_babel173867 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred10_babel173869 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_right_modify_in_synpred10_babel173872 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Id_in_synpred11_babel173907 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred11_babel173909 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred11_babel173912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pattern_in_synpred12_babel173944 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred12_babel173946 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred12_babel173949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_synpred13_babel173981 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_NL_in_synpred13_babel173983 = new BitSet(new long[]{0x0000000000000000L,0x800000002AAAA000L,0x0020000000006681L});
public static final BitSet FOLLOW_left_modify_in_synpred13_babel173986 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_synpred14_babel174020 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred14_babel174022 = new BitSet(new long[]{0x0000000100000000L,0x0000000055554000L,0x0020000000000000L});
public static final BitSet FOLLOW_right_modify_in_synpred14_babel174025 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_expr_in_synpred15_babel174059 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0020000000000000L});
public static final BitSet FOLLOW_NL_in_synpred15_babel174061 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred15_babel174064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_L_obj_in_synpred16_babel174420 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000028000000L});
public static final BitSet FOLLOW_NL_in_synpred16_babel174422 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000028000000L});
public static final BitSet FOLLOW_parents_in_synpred16_babel174425 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_expr_nobrackets_in_synpred17_babel174496 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_expr_nobrackets_in_synpred18_babel174519 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SQUARE_BRACKET_OPEN_in_synpred19_babel176479 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_NL_in_synpred19_babel176481 = new BitSet(new long[]{0x0000000000000000L,0x7DD2098E80000000L,0xB6E430001000F908L,0x000000000000000AL});
public static final BitSet FOLLOW_protected_expr_nc_in_synpred19_babel176484 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000004000000L});
public static final BitSet FOLLOW_NL_in_synpred19_babel176486 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_SC_in_synpred19_babel176489 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_expr_in_synpred20_babel176827 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_expr_in_synpred21_babel176838 = new BitSet(new long[]{0x0000000000000002L});
}