// $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}); }