// $ANTLR 3.4 Haxe.g 2012-08-22 16:34:46
package imp.parser.antlr;
import tree.HaxeTree;
import tree.expression.Array;
import tree.expression.Assignment;
import tree.expression.Binary;
import tree.expression.Constant;
import tree.expression.Declaration;
import tree.expression.MethodCall;
import tree.expression.NewNode;
import tree.expression.Slice;
import tree.expression.Unary;
import tree.expression.Usage;
import tree.statement.BlockScope;
import tree.statement.DoWhile;
import tree.statement.For;
import tree.statement.IfNode;
import tree.statement.Return;
import tree.statement.SwitchNode;
import tree.statement.TryNode;
import tree.statement.While;
import tree.ErrorNode;
import tree.Function;
import tree.Module;
import tree.TypeTag;
import tree.type.Class;
import tree.type.Enum;
import tree.type.Interface;
import tree.type.TypeDef;
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.*;
@SuppressWarnings({"all", "warnings", "unchecked"})
public class HaxeParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ABSTRACT", "AMP", "AMPAMP", "AMPEQ", "BANG", "BANGEQ", "BANGEQQ", "BAR", "BARBAR", "BAREQ", "BLOCK_SCOPE", "BREAK", "BYTE", "CALL_OR_SLICE", "CARET", "CARETEQ", "CASE", "CAST", "CATCH", "CHAR", "CHARLITERAL", "CLASS", "COLON", "COMMA", "COMMENT", "CONST", "CONTINUE", "DECL_ATTR_LIST", "DEFAULT", "DIGIT", "DO", "DOT", "DOUBLE", "DYNAMIC", "ELLIPSIS", "ELSE", "ELSE_TOKEN", "ENDIF_TOKEN", "ENUM", "EQ", "EQEQ", "ESC_SEQ", "EXPONENT", "EXTENDS", "EXTERN", "EscapeSequence", "FALSE", "FINAL", "FINALLY", "FLOATNUM", "FOR", "FUNCTION", "GOTO", "GT", "GTEQ", "GTGT", "GTGTEQ", "GTGTGT", "GTGTGTEQ", "HEX_DIGIT", "HexDigit", "HexPrefix", "IDENTIFIER", "IF", "IF_TOKEN", "IMPLEMENTS", "IMPLEMENT_LIST", "IMPORT", "IN", "INLINE", "INSTANCEOF", "INTERFACE", "INTLITERAL", "IntegerNumber", "LBRACE", "LBRACKET", "LONG", "LONGLITERAL", "LPAREN", "LT", "LTEQ", "LTLT", "LTLTEQ", "LongSuffix", "MINUS_BIGGER", "MODULE", "MONKEYS_AT", "NATIVE", "NEVER", "NEW", "NULL", "OCTAL_ESC", "OVERRIDE", "PACKAGE", "PARAM_LIST", "PERCENT", "PERCENTEQ", "PLUS", "PLUSEQ", "PLUSPLUS", "PP_AND_EXPRESSION", "PP_CONDITIONAL", "PP_ELSE", "PP_ELSEIF", "PP_END", "PP_ERROR", "PP_EXPRESSION", "PP_IF", "PP_OR_EXPRESSION", "PP_PRIMARY_EXPRESSION", "PP_UNARY_EXPRESSION", "PREPROCESSOR_DIRECTIVE", "PRIVATE", "PROPERTY_DECL", "PROTECTED", "PUBLIC", "QUES", "RBRACE", "RBRACKET", "RETURN", "RPAREN", "SEMI", "SHORT", "SLASH", "SLASHEQ", "STAR", "STAREQ", "STATIC", "STRICTFP", "STRINGLITERAL", "SUB", "SUBEQ", "SUBSUB", "SUFFIX_EXPR", "SUPER", "SWITCH", "THIS", "THROW", "THROWS", "TILDE", "TRANSIENT", "TRUE", "TRY", "TS", "TYPEDEF", "TYPE_CONSTRAIN", "TYPE_PARAM", "TYPE_TAG", "UNICODE_ESC", "UNTYPED", "USING", "VAR", "VOLATILE", "WHILE", "WS"
};
public static final int EOF=-1;
public static final int ABSTRACT=4;
public static final int AMP=5;
public static final int AMPAMP=6;
public static final int AMPEQ=7;
public static final int BANG=8;
public static final int BANGEQ=9;
public static final int BANGEQQ=10;
public static final int BAR=11;
public static final int BARBAR=12;
public static final int BAREQ=13;
public static final int BLOCK_SCOPE=14;
public static final int BREAK=15;
public static final int BYTE=16;
public static final int CALL_OR_SLICE=17;
public static final int CARET=18;
public static final int CARETEQ=19;
public static final int CASE=20;
public static final int CAST=21;
public static final int CATCH=22;
public static final int CHAR=23;
public static final int CHARLITERAL=24;
public static final int CLASS=25;
public static final int COLON=26;
public static final int COMMA=27;
public static final int COMMENT=28;
public static final int CONST=29;
public static final int CONTINUE=30;
public static final int DECL_ATTR_LIST=31;
public static final int DEFAULT=32;
public static final int DIGIT=33;
public static final int DO=34;
public static final int DOT=35;
public static final int DOUBLE=36;
public static final int DYNAMIC=37;
public static final int ELLIPSIS=38;
public static final int ELSE=39;
public static final int ELSE_TOKEN=40;
public static final int ENDIF_TOKEN=41;
public static final int ENUM=42;
public static final int EQ=43;
public static final int EQEQ=44;
public static final int ESC_SEQ=45;
public static final int EXPONENT=46;
public static final int EXTENDS=47;
public static final int EXTERN=48;
public static final int EscapeSequence=49;
public static final int FALSE=50;
public static final int FINAL=51;
public static final int FINALLY=52;
public static final int FLOATNUM=53;
public static final int FOR=54;
public static final int FUNCTION=55;
public static final int GOTO=56;
public static final int GT=57;
public static final int GTEQ=58;
public static final int GTGT=59;
public static final int GTGTEQ=60;
public static final int GTGTGT=61;
public static final int GTGTGTEQ=62;
public static final int HEX_DIGIT=63;
public static final int HexDigit=64;
public static final int HexPrefix=65;
public static final int IDENTIFIER=66;
public static final int IF=67;
public static final int IF_TOKEN=68;
public static final int IMPLEMENTS=69;
public static final int IMPLEMENT_LIST=70;
public static final int IMPORT=71;
public static final int IN=72;
public static final int INLINE=73;
public static final int INSTANCEOF=74;
public static final int INTERFACE=75;
public static final int INTLITERAL=76;
public static final int IntegerNumber=77;
public static final int LBRACE=78;
public static final int LBRACKET=79;
public static final int LONG=80;
public static final int LONGLITERAL=81;
public static final int LPAREN=82;
public static final int LT=83;
public static final int LTEQ=84;
public static final int LTLT=85;
public static final int LTLTEQ=86;
public static final int LongSuffix=87;
public static final int MINUS_BIGGER=88;
public static final int MODULE=89;
public static final int MONKEYS_AT=90;
public static final int NATIVE=91;
public static final int NEVER=92;
public static final int NEW=93;
public static final int NULL=94;
public static final int OCTAL_ESC=95;
public static final int OVERRIDE=96;
public static final int PACKAGE=97;
public static final int PARAM_LIST=98;
public static final int PERCENT=99;
public static final int PERCENTEQ=100;
public static final int PLUS=101;
public static final int PLUSEQ=102;
public static final int PLUSPLUS=103;
public static final int PP_AND_EXPRESSION=104;
public static final int PP_CONDITIONAL=105;
public static final int PP_ELSE=106;
public static final int PP_ELSEIF=107;
public static final int PP_END=108;
public static final int PP_ERROR=109;
public static final int PP_EXPRESSION=110;
public static final int PP_IF=111;
public static final int PP_OR_EXPRESSION=112;
public static final int PP_PRIMARY_EXPRESSION=113;
public static final int PP_UNARY_EXPRESSION=114;
public static final int PREPROCESSOR_DIRECTIVE=115;
public static final int PRIVATE=116;
public static final int PROPERTY_DECL=117;
public static final int PROTECTED=118;
public static final int PUBLIC=119;
public static final int QUES=120;
public static final int RBRACE=121;
public static final int RBRACKET=122;
public static final int RETURN=123;
public static final int RPAREN=124;
public static final int SEMI=125;
public static final int SHORT=126;
public static final int SLASH=127;
public static final int SLASHEQ=128;
public static final int STAR=129;
public static final int STAREQ=130;
public static final int STATIC=131;
public static final int STRICTFP=132;
public static final int STRINGLITERAL=133;
public static final int SUB=134;
public static final int SUBEQ=135;
public static final int SUBSUB=136;
public static final int SUFFIX_EXPR=137;
public static final int SUPER=138;
public static final int SWITCH=139;
public static final int THIS=140;
public static final int THROW=141;
public static final int THROWS=142;
public static final int TILDE=143;
public static final int TRANSIENT=144;
public static final int TRUE=145;
public static final int TRY=146;
public static final int TS=147;
public static final int TYPEDEF=148;
public static final int TYPE_CONSTRAIN=149;
public static final int TYPE_PARAM=150;
public static final int TYPE_TAG=151;
public static final int UNICODE_ESC=152;
public static final int UNTYPED=153;
public static final int USING=154;
public static final int VAR=155;
public static final int VOLATILE=156;
public static final int WHILE=157;
public static final int WS=158;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public HaxeParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public HaxeParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
this.state.ruleMemo = new HashMap[269+1];
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
public String[] getTokenNames() { return HaxeParser.tokenNames; }
public String getGrammarFileName() { return "Haxe.g"; }
public static class module_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "module"
// Haxe.g:90:1: module : ( myPackage )? ( imports )* ( topLevelDecl )* -> ^( MODULE ( myPackage )? ( imports )* ( topLevelDecl )* ) ;
public final HaxeParser.module_return module() throws RecognitionException {
HaxeParser.module_return retval = new HaxeParser.module_return();
retval.start = input.LT(1);
int module_StartIndex = input.index();
Object root_0 = null;
HaxeParser.myPackage_return myPackage1 =null;
HaxeParser.imports_return imports2 =null;
HaxeParser.topLevelDecl_return topLevelDecl3 =null;
RewriteRuleSubtreeStream stream_topLevelDecl=new RewriteRuleSubtreeStream(adaptor,"rule topLevelDecl");
RewriteRuleSubtreeStream stream_myPackage=new RewriteRuleSubtreeStream(adaptor,"rule myPackage");
RewriteRuleSubtreeStream stream_imports=new RewriteRuleSubtreeStream(adaptor,"rule imports");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return retval; }
// Haxe.g:90:17: ( ( myPackage )? ( imports )* ( topLevelDecl )* -> ^( MODULE ( myPackage )? ( imports )* ( topLevelDecl )* ) )
// Haxe.g:90:19: ( myPackage )? ( imports )* ( topLevelDecl )*
{
// Haxe.g:90:19: ( myPackage )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==PACKAGE) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// Haxe.g:90:19: myPackage
{
pushFollow(FOLLOW_myPackage_in_module163);
myPackage1=myPackage();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_myPackage.add(myPackage1.getTree());
}
break;
}
// Haxe.g:90:30: ( imports )*
loop2:
do {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==IMPORT||LA2_0==USING) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// Haxe.g:90:30: imports
{
pushFollow(FOLLOW_imports_in_module166);
imports2=imports();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_imports.add(imports2.getTree());
}
break;
default :
break loop2;
}
} while (true);
// Haxe.g:90:39: ( topLevelDecl )*
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==CLASS||LA3_0==ENUM||LA3_0==EXTERN||LA3_0==INTERFACE||LA3_0==PRIVATE||LA3_0==TYPEDEF) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// Haxe.g:90:39: topLevelDecl
{
pushFollow(FOLLOW_topLevelDecl_in_module169);
topLevelDecl3=topLevelDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_topLevelDecl.add(topLevelDecl3.getTree());
}
break;
default :
break loop3;
}
} while (true);
// AST REWRITE
// elements: topLevelDecl, imports, myPackage
// 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 = (Object)adaptor.nil();
// 90:53: -> ^( MODULE ( myPackage )? ( imports )* ( topLevelDecl )* )
{
// Haxe.g:90:56: ^( MODULE ( myPackage )? ( imports )* ( topLevelDecl )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Module(MODULE)
, root_1);
// Haxe.g:90:73: ( myPackage )?
if ( stream_myPackage.hasNext() ) {
adaptor.addChild(root_1, stream_myPackage.nextTree());
}
stream_myPackage.reset();
// Haxe.g:90:84: ( imports )*
while ( stream_imports.hasNext() ) {
adaptor.addChild(root_1, stream_imports.nextTree());
}
stream_imports.reset();
// Haxe.g:90:93: ( topLevelDecl )*
while ( stream_topLevelDecl.hasNext() ) {
adaptor.addChild(root_1, stream_topLevelDecl.nextTree());
}
stream_topLevelDecl.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 1, module_StartIndex); }
}
return retval;
}
// $ANTLR end "module"
public static class imports_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "imports"
// Haxe.g:93:1: imports : ( IMPORT ^ filepath SEMI !| USING ^ filepath SEMI !);
public final HaxeParser.imports_return imports() throws RecognitionException {
HaxeParser.imports_return retval = new HaxeParser.imports_return();
retval.start = input.LT(1);
int imports_StartIndex = input.index();
Object root_0 = null;
Token IMPORT4=null;
Token SEMI6=null;
Token USING7=null;
Token SEMI9=null;
HaxeParser.filepath_return filepath5 =null;
HaxeParser.filepath_return filepath8 =null;
Object IMPORT4_tree=null;
Object SEMI6_tree=null;
Object USING7_tree=null;
Object SEMI9_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return retval; }
// Haxe.g:93:17: ( IMPORT ^ filepath SEMI !| USING ^ filepath SEMI !)
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==IMPORT) ) {
alt4=1;
}
else if ( (LA4_0==USING) ) {
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 :
// Haxe.g:93:19: IMPORT ^ filepath SEMI !
{
root_0 = (Object)adaptor.nil();
IMPORT4=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_imports221); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IMPORT4_tree =
(Object)adaptor.create(IMPORT4)
;
root_0 = (Object)adaptor.becomeRoot(IMPORT4_tree, root_0);
}
pushFollow(FOLLOW_filepath_in_imports224);
filepath5=filepath();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, filepath5.getTree());
SEMI6=(Token)match(input,SEMI,FOLLOW_SEMI_in_imports226); if (state.failed) return retval;
}
break;
case 2 :
// Haxe.g:94:19: USING ^ filepath SEMI !
{
root_0 = (Object)adaptor.nil();
USING7=(Token)match(input,USING,FOLLOW_USING_in_imports247); if (state.failed) return retval;
if ( state.backtracking==0 ) {
USING7_tree =
(Object)adaptor.create(USING7)
;
root_0 = (Object)adaptor.becomeRoot(USING7_tree, root_0);
}
pushFollow(FOLLOW_filepath_in_imports250);
filepath8=filepath();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, filepath8.getTree());
SEMI9=(Token)match(input,SEMI,FOLLOW_SEMI_in_imports252); if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 2, imports_StartIndex); }
}
return retval;
}
// $ANTLR end "imports"
public static class myPackage_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "myPackage"
// Haxe.g:97:1: myPackage : PACKAGE ^ ( filepath |)? SEMI !;
public final HaxeParser.myPackage_return myPackage() throws RecognitionException {
HaxeParser.myPackage_return retval = new HaxeParser.myPackage_return();
retval.start = input.LT(1);
int myPackage_StartIndex = input.index();
Object root_0 = null;
Token PACKAGE10=null;
Token SEMI12=null;
HaxeParser.filepath_return filepath11 =null;
Object PACKAGE10_tree=null;
Object SEMI12_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return retval; }
// Haxe.g:97:17: ( PACKAGE ^ ( filepath |)? SEMI !)
// Haxe.g:97:19: PACKAGE ^ ( filepath |)? SEMI !
{
root_0 = (Object)adaptor.nil();
PACKAGE10=(Token)match(input,PACKAGE,FOLLOW_PACKAGE_in_myPackage284); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PACKAGE10_tree =
(Object)adaptor.create(PACKAGE10)
;
root_0 = (Object)adaptor.becomeRoot(PACKAGE10_tree, root_0);
}
// Haxe.g:97:28: ( filepath |)?
int alt5=3;
int LA5_0 = input.LA(1);
if ( (LA5_0==IDENTIFIER) ) {
alt5=1;
}
else if ( (LA5_0==SEMI) ) {
int LA5_2 = input.LA(2);
if ( (synpred6_Haxe()) ) {
alt5=2;
}
}
switch (alt5) {
case 1 :
// Haxe.g:97:29: filepath
{
pushFollow(FOLLOW_filepath_in_myPackage288);
filepath11=filepath();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, filepath11.getTree());
}
break;
case 2 :
// Haxe.g:97:40:
{
}
break;
}
SEMI12=(Token)match(input,SEMI,FOLLOW_SEMI_in_myPackage295); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 3, myPackage_StartIndex); }
}
return retval;
}
// $ANTLR end "myPackage"
public static class filepath_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "filepath"
// Haxe.g:100:1: filepath : a= IDENTIFIER (b= DOT d= IDENTIFIER )* -> $a;
public final HaxeParser.filepath_return filepath() throws RecognitionException {
HaxeParser.filepath_return retval = new HaxeParser.filepath_return();
retval.start = input.LT(1);
int filepath_StartIndex = input.index();
Object root_0 = null;
Token a=null;
Token b=null;
Token d=null;
Object a_tree=null;
Object b_tree=null;
Object d_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return retval; }
// Haxe.g:100:17: (a= IDENTIFIER (b= DOT d= IDENTIFIER )* -> $a)
// Haxe.g:100:19: a= IDENTIFIER (b= DOT d= IDENTIFIER )*
{
a=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_filepath350); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(a);
// Haxe.g:100:32: (b= DOT d= IDENTIFIER )*
loop6:
do {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==DOT) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// Haxe.g:100:33: b= DOT d= IDENTIFIER
{
b=(Token)match(input,DOT,FOLLOW_DOT_in_filepath355); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(b);
d=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_filepath359); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(d);
if ( state.backtracking==0 ) {a.setText((a!=null?a.getText():null)+(b!=null?b.getText():null) + (d!=null?d.getText():null));}
}
break;
default :
break loop6;
}
} while (true);
// AST REWRITE
// elements: a
// token labels: a
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
// 100:94: -> $a
{
adaptor.addChild(root_0, stream_a.nextNode());
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 4, filepath_StartIndex); }
}
return retval;
}
// $ANTLR end "filepath"
public static class meta_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "meta"
// Haxe.g:103:1: meta : MONKEYS_AT metaName ( LPAREN ( paramList )? RPAREN )? ;
public final HaxeParser.meta_return meta() throws RecognitionException {
HaxeParser.meta_return retval = new HaxeParser.meta_return();
retval.start = input.LT(1);
int meta_StartIndex = input.index();
Object root_0 = null;
Token MONKEYS_AT13=null;
Token LPAREN15=null;
Token RPAREN17=null;
HaxeParser.metaName_return metaName14 =null;
HaxeParser.paramList_return paramList16 =null;
Object MONKEYS_AT13_tree=null;
Object LPAREN15_tree=null;
Object RPAREN17_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return retval; }
// Haxe.g:103:9: ( MONKEYS_AT metaName ( LPAREN ( paramList )? RPAREN )? )
// Haxe.g:103:11: MONKEYS_AT metaName ( LPAREN ( paramList )? RPAREN )?
{
root_0 = (Object)adaptor.nil();
MONKEYS_AT13=(Token)match(input,MONKEYS_AT,FOLLOW_MONKEYS_AT_in_meta395); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MONKEYS_AT13_tree =
(Object)adaptor.create(MONKEYS_AT13)
;
adaptor.addChild(root_0, MONKEYS_AT13_tree);
}
pushFollow(FOLLOW_metaName_in_meta397);
metaName14=metaName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, metaName14.getTree());
// Haxe.g:103:31: ( LPAREN ( paramList )? RPAREN )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==LPAREN) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// Haxe.g:103:32: LPAREN ( paramList )? RPAREN
{
LPAREN15=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_meta400); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN15_tree =
(Object)adaptor.create(LPAREN15)
;
adaptor.addChild(root_0, LPAREN15_tree);
}
// Haxe.g:103:39: ( paramList )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==IDENTIFIER||LA7_0==QUES) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// Haxe.g:103:39: paramList
{
pushFollow(FOLLOW_paramList_in_meta402);
paramList16=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, paramList16.getTree());
}
break;
}
RPAREN17=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_meta405); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN17_tree =
(Object)adaptor.create(RPAREN17)
;
adaptor.addChild(root_0, RPAREN17_tree);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 5, meta_StartIndex); }
}
return retval;
}
// $ANTLR end "meta"
public static class metaName_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "metaName"
// Haxe.g:106:1: metaName : ( IDENTIFIER | COLON metaName );
public final HaxeParser.metaName_return metaName() throws RecognitionException {
HaxeParser.metaName_return retval = new HaxeParser.metaName_return();
retval.start = input.LT(1);
int metaName_StartIndex = input.index();
Object root_0 = null;
Token IDENTIFIER18=null;
Token COLON19=null;
HaxeParser.metaName_return metaName20 =null;
Object IDENTIFIER18_tree=null;
Object COLON19_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return retval; }
// Haxe.g:107:5: ( IDENTIFIER | COLON metaName )
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==IDENTIFIER) ) {
alt9=1;
}
else if ( (LA9_0==COLON) ) {
alt9=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// Haxe.g:107:7: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER18=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_metaName424); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER18_tree =
(Object)adaptor.create(IDENTIFIER18)
;
adaptor.addChild(root_0, IDENTIFIER18_tree);
}
}
break;
case 2 :
// Haxe.g:109:7: COLON metaName
{
root_0 = (Object)adaptor.nil();
COLON19=(Token)match(input,COLON,FOLLOW_COLON_in_metaName433); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON19_tree =
(Object)adaptor.create(COLON19)
;
adaptor.addChild(root_0, COLON19_tree);
}
pushFollow(FOLLOW_metaName_in_metaName435);
metaName20=metaName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, metaName20.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 6, metaName_StartIndex); }
}
return retval;
}
// $ANTLR end "metaName"
public static class typeDeclFlags_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeDeclFlags"
// Haxe.g:112:1: typeDeclFlags : ( meta )* ( EXTERN | PRIVATE )* ;
public final HaxeParser.typeDeclFlags_return typeDeclFlags() throws RecognitionException {
HaxeParser.typeDeclFlags_return retval = new HaxeParser.typeDeclFlags_return();
retval.start = input.LT(1);
int typeDeclFlags_StartIndex = input.index();
Object root_0 = null;
Token set22=null;
HaxeParser.meta_return meta21 =null;
Object set22_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return retval; }
// Haxe.g:113:5: ( ( meta )* ( EXTERN | PRIVATE )* )
// Haxe.g:113:7: ( meta )* ( EXTERN | PRIVATE )*
{
root_0 = (Object)adaptor.nil();
// Haxe.g:113:7: ( meta )*
loop10:
do {
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==MONKEYS_AT) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// Haxe.g:113:8: meta
{
pushFollow(FOLLOW_meta_in_typeDeclFlags453);
meta21=meta();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, meta21.getTree());
}
break;
default :
break loop10;
}
} while (true);
// Haxe.g:113:15: ( EXTERN | PRIVATE )*
loop11:
do {
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==EXTERN||LA11_0==PRIVATE) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// Haxe.g:
{
set22=(Token)input.LT(1);
if ( input.LA(1)==EXTERN||input.LA(1)==PRIVATE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0,
(Object)adaptor.create(set22)
);
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 :
break loop11;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 7, typeDeclFlags_StartIndex); }
}
return retval;
}
// $ANTLR end "typeDeclFlags"
public static class topLevelAccess_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "topLevelAccess"
// Haxe.g:119:1: topLevelAccess : ( PRIVATE | EXTERN );
public final HaxeParser.topLevelAccess_return topLevelAccess() throws RecognitionException {
HaxeParser.topLevelAccess_return retval = new HaxeParser.topLevelAccess_return();
retval.start = input.LT(1);
int topLevelAccess_StartIndex = input.index();
Object root_0 = null;
Token set23=null;
Object set23_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return retval; }
// Haxe.g:119:17: ( PRIVATE | EXTERN )
// Haxe.g:
{
root_0 = (Object)adaptor.nil();
set23=(Token)input.LT(1);
if ( input.LA(1)==EXTERN||input.LA(1)==PRIVATE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0,
(Object)adaptor.create(set23)
);
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 = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 8, topLevelAccess_StartIndex); }
}
return retval;
}
// $ANTLR end "topLevelAccess"
public static class declAttr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "declAttr"
// Haxe.g:123:1: declAttr : ( STATIC | INLINE | DYNAMIC | OVERRIDE | PUBLIC | PRIVATE );
public final HaxeParser.declAttr_return declAttr() throws RecognitionException {
HaxeParser.declAttr_return retval = new HaxeParser.declAttr_return();
retval.start = input.LT(1);
int declAttr_StartIndex = input.index();
Object root_0 = null;
Token set24=null;
Object set24_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return retval; }
// Haxe.g:123:17: ( STATIC | INLINE | DYNAMIC | OVERRIDE | PUBLIC | PRIVATE )
// Haxe.g:
{
root_0 = (Object)adaptor.nil();
set24=(Token)input.LT(1);
if ( input.LA(1)==DYNAMIC||input.LA(1)==INLINE||input.LA(1)==OVERRIDE||input.LA(1)==PRIVATE||input.LA(1)==PUBLIC||input.LA(1)==STATIC ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0,
(Object)adaptor.create(set24)
);
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 = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 9, declAttr_StartIndex); }
}
return retval;
}
// $ANTLR end "declAttr"
public static class topLevelAccessAttr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "topLevelAccessAttr"
// Haxe.g:131:1: topLevelAccessAttr : topLevelAccess -> ^( DECL_ATTR_LIST[\"Top_Level_Access\"] topLevelAccess ) ;
public final HaxeParser.topLevelAccessAttr_return topLevelAccessAttr() throws RecognitionException {
HaxeParser.topLevelAccessAttr_return retval = new HaxeParser.topLevelAccessAttr_return();
retval.start = input.LT(1);
int topLevelAccessAttr_StartIndex = input.index();
Object root_0 = null;
HaxeParser.topLevelAccess_return topLevelAccess25 =null;
RewriteRuleSubtreeStream stream_topLevelAccess=new RewriteRuleSubtreeStream(adaptor,"rule topLevelAccess");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return retval; }
// Haxe.g:132:17: ( topLevelAccess -> ^( DECL_ATTR_LIST[\"Top_Level_Access\"] topLevelAccess ) )
// Haxe.g:132:19: topLevelAccess
{
pushFollow(FOLLOW_topLevelAccess_in_topLevelAccessAttr711);
topLevelAccess25=topLevelAccess();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_topLevelAccess.add(topLevelAccess25.getTree());
// AST REWRITE
// elements: topLevelAccess
// 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 = (Object)adaptor.nil();
// 132:34: -> ^( DECL_ATTR_LIST[\"Top_Level_Access\"] topLevelAccess )
{
// Haxe.g:132:37: ^( DECL_ATTR_LIST[\"Top_Level_Access\"] topLevelAccess )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(DECL_ATTR_LIST, "Top_Level_Access")
, root_1);
adaptor.addChild(root_1, stream_topLevelAccess.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 10, topLevelAccessAttr_StartIndex); }
}
return retval;
}
// $ANTLR end "topLevelAccessAttr"
public static class declAttrList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "declAttrList"
// Haxe.g:135:1: declAttrList : ( declAttr )+ -> ^( DECL_ATTR_LIST[\"DECL_ATTR_LIST\"] ( declAttr )+ ) ;
public final HaxeParser.declAttrList_return declAttrList() throws RecognitionException {
HaxeParser.declAttrList_return retval = new HaxeParser.declAttrList_return();
retval.start = input.LT(1);
int declAttrList_StartIndex = input.index();
Object root_0 = null;
HaxeParser.declAttr_return declAttr26 =null;
RewriteRuleSubtreeStream stream_declAttr=new RewriteRuleSubtreeStream(adaptor,"rule declAttr");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return retval; }
// Haxe.g:135:17: ( ( declAttr )+ -> ^( DECL_ATTR_LIST[\"DECL_ATTR_LIST\"] ( declAttr )+ ) )
// Haxe.g:135:19: ( declAttr )+
{
// Haxe.g:135:19: ( declAttr )+
int cnt12=0;
loop12:
do {
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==DYNAMIC||LA12_0==INLINE||LA12_0==OVERRIDE||LA12_0==PRIVATE||LA12_0==PUBLIC||LA12_0==STATIC) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// Haxe.g:135:19: declAttr
{
pushFollow(FOLLOW_declAttr_in_declAttrList751);
declAttr26=declAttr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declAttr.add(declAttr26.getTree());
}
break;
default :
if ( cnt12 >= 1 ) break loop12;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(12, input);
throw eee;
}
cnt12++;
} while (true);
// AST REWRITE
// elements: declAttr
// 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 = (Object)adaptor.nil();
// 135:29: -> ^( DECL_ATTR_LIST[\"DECL_ATTR_LIST\"] ( declAttr )+ )
{
// Haxe.g:135:32: ^( DECL_ATTR_LIST[\"DECL_ATTR_LIST\"] ( declAttr )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(DECL_ATTR_LIST, "DECL_ATTR_LIST")
, root_1);
if ( !(stream_declAttr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_declAttr.hasNext() ) {
adaptor.addChild(root_1, stream_declAttr.nextTree());
}
stream_declAttr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 11, declAttrList_StartIndex); }
}
return retval;
}
// $ANTLR end "declAttrList"
public static class paramList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "paramList"
// Haxe.g:138:1: paramList : param ( COMMA param )* -> ^( PARAM_LIST[\"PARAM_LIST\"] ( param )+ ) ;
public final HaxeParser.paramList_return paramList() throws RecognitionException {
HaxeParser.paramList_return retval = new HaxeParser.paramList_return();
retval.start = input.LT(1);
int paramList_StartIndex = input.index();
Object root_0 = null;
Token COMMA28=null;
HaxeParser.param_return param27 =null;
HaxeParser.param_return param29 =null;
Object COMMA28_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_param=new RewriteRuleSubtreeStream(adaptor,"rule param");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return retval; }
// Haxe.g:138:17: ( param ( COMMA param )* -> ^( PARAM_LIST[\"PARAM_LIST\"] ( param )+ ) )
// Haxe.g:138:19: param ( COMMA param )*
{
pushFollow(FOLLOW_param_in_paramList796);
param27=param();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_param.add(param27.getTree());
// Haxe.g:138:25: ( COMMA param )*
loop13:
do {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==COMMA) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// Haxe.g:138:26: COMMA param
{
COMMA28=(Token)match(input,COMMA,FOLLOW_COMMA_in_paramList799); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA28);
pushFollow(FOLLOW_param_in_paramList801);
param29=param();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_param.add(param29.getTree());
}
break;
default :
break loop13;
}
} while (true);
// AST REWRITE
// elements: param
// 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 = (Object)adaptor.nil();
// 138:40: -> ^( PARAM_LIST[\"PARAM_LIST\"] ( param )+ )
{
// Haxe.g:138:43: ^( PARAM_LIST[\"PARAM_LIST\"] ( param )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(PARAM_LIST, "PARAM_LIST")
, root_1);
if ( !(stream_param.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_param.hasNext() ) {
adaptor.addChild(root_1, stream_param.nextTree());
}
stream_param.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 12, paramList_StartIndex); }
}
return retval;
}
// $ANTLR end "paramList"
public static class param_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "param"
// Haxe.g:141:1: param : ( QUES )? IDENTIFIER ( typeTag )? ( varInit )? -> ^( IDENTIFIER ( typeTag )? ( varInit )? ( QUES )? ) ;
public final HaxeParser.param_return param() throws RecognitionException {
HaxeParser.param_return retval = new HaxeParser.param_return();
retval.start = input.LT(1);
int param_StartIndex = input.index();
Object root_0 = null;
Token QUES30=null;
Token IDENTIFIER31=null;
HaxeParser.typeTag_return typeTag32 =null;
HaxeParser.varInit_return varInit33 =null;
Object QUES30_tree=null;
Object IDENTIFIER31_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_QUES=new RewriteRuleTokenStream(adaptor,"token QUES");
RewriteRuleSubtreeStream stream_typeTag=new RewriteRuleSubtreeStream(adaptor,"rule typeTag");
RewriteRuleSubtreeStream stream_varInit=new RewriteRuleSubtreeStream(adaptor,"rule varInit");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return retval; }
// Haxe.g:141:17: ( ( QUES )? IDENTIFIER ( typeTag )? ( varInit )? -> ^( IDENTIFIER ( typeTag )? ( varInit )? ( QUES )? ) )
// Haxe.g:141:19: ( QUES )? IDENTIFIER ( typeTag )? ( varInit )?
{
// Haxe.g:141:19: ( QUES )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==QUES) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// Haxe.g:141:19: QUES
{
QUES30=(Token)match(input,QUES,FOLLOW_QUES_in_param851); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QUES.add(QUES30);
}
break;
}
IDENTIFIER31=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_param854); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER31);
// Haxe.g:141:36: ( typeTag )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==COLON) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// Haxe.g:141:36: typeTag
{
pushFollow(FOLLOW_typeTag_in_param856);
typeTag32=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeTag.add(typeTag32.getTree());
}
break;
}
// Haxe.g:141:45: ( varInit )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==EQ) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// Haxe.g:141:45: varInit
{
pushFollow(FOLLOW_varInit_in_param859);
varInit33=varInit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varInit.add(varInit33.getTree());
}
break;
}
// AST REWRITE
// elements: QUES, IDENTIFIER, typeTag, varInit
// 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 = (Object)adaptor.nil();
// 141:54: -> ^( IDENTIFIER ( typeTag )? ( varInit )? ( QUES )? )
{
// Haxe.g:141:57: ^( IDENTIFIER ( typeTag )? ( varInit )? ( QUES )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Declaration(stream_IDENTIFIER.nextToken())
, root_1);
// Haxe.g:141:83: ( typeTag )?
if ( stream_typeTag.hasNext() ) {
adaptor.addChild(root_1, stream_typeTag.nextTree());
}
stream_typeTag.reset();
// Haxe.g:141:92: ( varInit )?
if ( stream_varInit.hasNext() ) {
adaptor.addChild(root_1, stream_varInit.nextTree());
}
stream_varInit.reset();
// Haxe.g:141:101: ( QUES )?
if ( stream_QUES.hasNext() ) {
adaptor.addChild(root_1,
stream_QUES.nextNode()
);
}
stream_QUES.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 13, param_StartIndex); }
}
return retval;
}
// $ANTLR end "param"
public static class identifier_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "identifier"
// Haxe.g:144:1: identifier : IDENTIFIER ;
public final HaxeParser.identifier_return identifier() throws RecognitionException {
HaxeParser.identifier_return retval = new HaxeParser.identifier_return();
retval.start = input.LT(1);
int identifier_StartIndex = input.index();
Object root_0 = null;
Token IDENTIFIER34=null;
Object IDENTIFIER34_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return retval; }
// Haxe.g:144:17: ( IDENTIFIER )
// Haxe.g:144:19: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER34=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_identifier908); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER34_tree =
new Usage(IDENTIFIER34)
;
adaptor.addChild(root_0, IDENTIFIER34_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 14, identifier_StartIndex); }
}
return retval;
}
// $ANTLR end "identifier"
public static class id_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "id"
// Haxe.g:147:1: id : ( identifier | THIS | SUPER );
public final HaxeParser.id_return id() throws RecognitionException {
HaxeParser.id_return retval = new HaxeParser.id_return();
retval.start = input.LT(1);
int id_StartIndex = input.index();
Object root_0 = null;
Token THIS36=null;
Token SUPER37=null;
HaxeParser.identifier_return identifier35 =null;
Object THIS36_tree=null;
Object SUPER37_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return retval; }
// Haxe.g:147:17: ( identifier | THIS | SUPER )
int alt17=3;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
alt17=1;
}
break;
case THIS:
{
alt17=2;
}
break;
case SUPER:
{
alt17=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// Haxe.g:147:19: identifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_identifier_in_id965);
identifier35=identifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, identifier35.getTree());
}
break;
case 2 :
// Haxe.g:148:19: THIS
{
root_0 = (Object)adaptor.nil();
THIS36=(Token)match(input,THIS,FOLLOW_THIS_in_id985); if (state.failed) return retval;
if ( state.backtracking==0 ) {
THIS36_tree =
new Usage(THIS36)
;
adaptor.addChild(root_0, THIS36_tree);
}
}
break;
case 3 :
// Haxe.g:149:19: SUPER
{
root_0 = (Object)adaptor.nil();
SUPER37=(Token)match(input,SUPER,FOLLOW_SUPER_in_id1008); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SUPER37_tree =
new Usage(SUPER37)
;
adaptor.addChild(root_0, SUPER37_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 15, id_StartIndex); }
}
return retval;
}
// $ANTLR end "id"
public static class assignOp_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "assignOp"
// Haxe.g:152:1: assignOp : ( EQ -> EQ | PLUSEQ -> PLUSEQ | SUBEQ -> SUBEQ | STAREQ -> STAREQ | SLASHEQ -> SLASHEQ | PERCENTEQ -> PERCENTEQ | AMPEQ -> AMPEQ | BAREQ -> BAREQ | CARETEQ -> CARETEQ | LTLTEQ -> LTLTEQ | GTGTEQ -> GTGTEQ | GTGTGTEQ -> GTGTGTEQ );
public final HaxeParser.assignOp_return assignOp() throws RecognitionException {
HaxeParser.assignOp_return retval = new HaxeParser.assignOp_return();
retval.start = input.LT(1);
int assignOp_StartIndex = input.index();
Object root_0 = null;
Token EQ38=null;
Token PLUSEQ39=null;
Token SUBEQ40=null;
Token STAREQ41=null;
Token SLASHEQ42=null;
Token PERCENTEQ43=null;
Token AMPEQ44=null;
Token BAREQ45=null;
Token CARETEQ46=null;
Token LTLTEQ47=null;
Token GTGTEQ48=null;
Token GTGTGTEQ49=null;
Object EQ38_tree=null;
Object PLUSEQ39_tree=null;
Object SUBEQ40_tree=null;
Object STAREQ41_tree=null;
Object SLASHEQ42_tree=null;
Object PERCENTEQ43_tree=null;
Object AMPEQ44_tree=null;
Object BAREQ45_tree=null;
Object CARETEQ46_tree=null;
Object LTLTEQ47_tree=null;
Object GTGTEQ48_tree=null;
Object GTGTGTEQ49_tree=null;
RewriteRuleTokenStream stream_SUBEQ=new RewriteRuleTokenStream(adaptor,"token SUBEQ");
RewriteRuleTokenStream stream_CARETEQ=new RewriteRuleTokenStream(adaptor,"token CARETEQ");
RewriteRuleTokenStream stream_GTGTGTEQ=new RewriteRuleTokenStream(adaptor,"token GTGTGTEQ");
RewriteRuleTokenStream stream_SLASHEQ=new RewriteRuleTokenStream(adaptor,"token SLASHEQ");
RewriteRuleTokenStream stream_BAREQ=new RewriteRuleTokenStream(adaptor,"token BAREQ");
RewriteRuleTokenStream stream_PERCENTEQ=new RewriteRuleTokenStream(adaptor,"token PERCENTEQ");
RewriteRuleTokenStream stream_EQ=new RewriteRuleTokenStream(adaptor,"token EQ");
RewriteRuleTokenStream stream_AMPEQ=new RewriteRuleTokenStream(adaptor,"token AMPEQ");
RewriteRuleTokenStream stream_STAREQ=new RewriteRuleTokenStream(adaptor,"token STAREQ");
RewriteRuleTokenStream stream_PLUSEQ=new RewriteRuleTokenStream(adaptor,"token PLUSEQ");
RewriteRuleTokenStream stream_LTLTEQ=new RewriteRuleTokenStream(adaptor,"token LTLTEQ");
RewriteRuleTokenStream stream_GTGTEQ=new RewriteRuleTokenStream(adaptor,"token GTGTEQ");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return retval; }
// Haxe.g:152:17: ( EQ -> EQ | PLUSEQ -> PLUSEQ | SUBEQ -> SUBEQ | STAREQ -> STAREQ | SLASHEQ -> SLASHEQ | PERCENTEQ -> PERCENTEQ | AMPEQ -> AMPEQ | BAREQ -> BAREQ | CARETEQ -> CARETEQ | LTLTEQ -> LTLTEQ | GTGTEQ -> GTGTEQ | GTGTGTEQ -> GTGTGTEQ )
int alt18=12;
switch ( input.LA(1) ) {
case EQ:
{
alt18=1;
}
break;
case PLUSEQ:
{
alt18=2;
}
break;
case SUBEQ:
{
alt18=3;
}
break;
case STAREQ:
{
alt18=4;
}
break;
case SLASHEQ:
{
alt18=5;
}
break;
case PERCENTEQ:
{
alt18=6;
}
break;
case AMPEQ:
{
alt18=7;
}
break;
case BAREQ:
{
alt18=8;
}
break;
case CARETEQ:
{
alt18=9;
}
break;
case LTLTEQ:
{
alt18=10;
}
break;
case GTGTEQ:
{
alt18=11;
}
break;
case GTGTGTEQ:
{
alt18=12;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// Haxe.g:152:19: EQ
{
EQ38=(Token)match(input,EQ,FOLLOW_EQ_in_assignOp1043); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQ.add(EQ38);
// AST REWRITE
// elements: EQ
// 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 = (Object)adaptor.nil();
// 152:28: -> EQ
{
adaptor.addChild(root_0,
new Assignment(stream_EQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:153:19: PLUSEQ
{
PLUSEQ39=(Token)match(input,PLUSEQ,FOLLOW_PLUSEQ_in_assignOp1076); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUSEQ.add(PLUSEQ39);
// AST REWRITE
// elements: PLUSEQ
// 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 = (Object)adaptor.nil();
// 153:28: -> PLUSEQ
{
adaptor.addChild(root_0,
new Assignment(stream_PLUSEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 3 :
// Haxe.g:154:19: SUBEQ
{
SUBEQ40=(Token)match(input,SUBEQ,FOLLOW_SUBEQ_in_assignOp1105); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUBEQ.add(SUBEQ40);
// AST REWRITE
// elements: SUBEQ
// 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 = (Object)adaptor.nil();
// 154:28: -> SUBEQ
{
adaptor.addChild(root_0,
new Assignment(stream_SUBEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 4 :
// Haxe.g:155:19: STAREQ
{
STAREQ41=(Token)match(input,STAREQ,FOLLOW_STAREQ_in_assignOp1135); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAREQ.add(STAREQ41);
// AST REWRITE
// elements: STAREQ
// 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 = (Object)adaptor.nil();
// 155:28: -> STAREQ
{
adaptor.addChild(root_0,
new Assignment(stream_STAREQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 5 :
// Haxe.g:156:19: SLASHEQ
{
SLASHEQ42=(Token)match(input,SLASHEQ,FOLLOW_SLASHEQ_in_assignOp1164); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SLASHEQ.add(SLASHEQ42);
// AST REWRITE
// elements: SLASHEQ
// 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 = (Object)adaptor.nil();
// 156:28: -> SLASHEQ
{
adaptor.addChild(root_0,
new Assignment(stream_SLASHEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 6 :
// Haxe.g:157:19: PERCENTEQ
{
PERCENTEQ43=(Token)match(input,PERCENTEQ,FOLLOW_PERCENTEQ_in_assignOp1192); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PERCENTEQ.add(PERCENTEQ43);
// AST REWRITE
// elements: PERCENTEQ
// 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 = (Object)adaptor.nil();
// 157:29: -> PERCENTEQ
{
adaptor.addChild(root_0,
new Assignment(stream_PERCENTEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 7 :
// Haxe.g:158:19: AMPEQ
{
AMPEQ44=(Token)match(input,AMPEQ,FOLLOW_AMPEQ_in_assignOp1219); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPEQ.add(AMPEQ44);
// AST REWRITE
// elements: AMPEQ
// 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 = (Object)adaptor.nil();
// 158:28: -> AMPEQ
{
adaptor.addChild(root_0,
new Assignment(stream_AMPEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 8 :
// Haxe.g:159:19: BAREQ
{
BAREQ45=(Token)match(input,BAREQ,FOLLOW_BAREQ_in_assignOp1249); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BAREQ.add(BAREQ45);
// AST REWRITE
// elements: BAREQ
// 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 = (Object)adaptor.nil();
// 159:28: -> BAREQ
{
adaptor.addChild(root_0,
new Assignment(stream_BAREQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 9 :
// Haxe.g:160:19: CARETEQ
{
CARETEQ46=(Token)match(input,CARETEQ,FOLLOW_CARETEQ_in_assignOp1279); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CARETEQ.add(CARETEQ46);
// AST REWRITE
// elements: CARETEQ
// 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 = (Object)adaptor.nil();
// 160:28: -> CARETEQ
{
adaptor.addChild(root_0,
new Assignment(stream_CARETEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 10 :
// Haxe.g:161:19: LTLTEQ
{
LTLTEQ47=(Token)match(input,LTLTEQ,FOLLOW_LTLTEQ_in_assignOp1307); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LTLTEQ.add(LTLTEQ47);
// AST REWRITE
// elements: LTLTEQ
// 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 = (Object)adaptor.nil();
// 161:28: -> LTLTEQ
{
adaptor.addChild(root_0,
new Assignment(stream_LTLTEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 11 :
// Haxe.g:162:19: GTGTEQ
{
GTGTEQ48=(Token)match(input,GTGTEQ,FOLLOW_GTGTEQ_in_assignOp1336); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GTGTEQ.add(GTGTEQ48);
// AST REWRITE
// elements: GTGTEQ
// 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 = (Object)adaptor.nil();
// 162:28: -> GTGTEQ
{
adaptor.addChild(root_0,
new Assignment(stream_GTGTEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
case 12 :
// Haxe.g:163:19: GTGTGTEQ
{
GTGTGTEQ49=(Token)match(input,GTGTGTEQ,FOLLOW_GTGTGTEQ_in_assignOp1365); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GTGTGTEQ.add(GTGTGTEQ49);
// AST REWRITE
// elements: GTGTGTEQ
// 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 = (Object)adaptor.nil();
// 163:28: -> GTGTGTEQ
{
adaptor.addChild(root_0,
new Assignment(stream_GTGTGTEQ.nextToken())
);
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 16, assignOp_StartIndex); }
}
return retval;
}
// $ANTLR end "assignOp"
public static class funcLit_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "funcLit"
// Haxe.g:166:1: funcLit : FUNCTION ^ LPAREN ! ( paramList )? RPAREN ! ( typeTag )? block ;
public final HaxeParser.funcLit_return funcLit() throws RecognitionException {
HaxeParser.funcLit_return retval = new HaxeParser.funcLit_return();
retval.start = input.LT(1);
int funcLit_StartIndex = input.index();
Object root_0 = null;
Token FUNCTION50=null;
Token LPAREN51=null;
Token RPAREN53=null;
HaxeParser.paramList_return paramList52 =null;
HaxeParser.typeTag_return typeTag54 =null;
HaxeParser.block_return block55 =null;
Object FUNCTION50_tree=null;
Object LPAREN51_tree=null;
Object RPAREN53_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return retval; }
// Haxe.g:166:17: ( FUNCTION ^ LPAREN ! ( paramList )? RPAREN ! ( typeTag )? block )
// Haxe.g:166:19: FUNCTION ^ LPAREN ! ( paramList )? RPAREN ! ( typeTag )? block
{
root_0 = (Object)adaptor.nil();
FUNCTION50=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcLit1421); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FUNCTION50_tree =
new Function(FUNCTION50)
;
root_0 = (Object)adaptor.becomeRoot(FUNCTION50_tree, root_0);
}
LPAREN51=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_funcLit1427); if (state.failed) return retval;
// Haxe.g:166:47: ( paramList )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==IDENTIFIER||LA19_0==QUES) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// Haxe.g:166:47: paramList
{
pushFollow(FOLLOW_paramList_in_funcLit1430);
paramList52=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, paramList52.getTree());
}
break;
}
RPAREN53=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_funcLit1433); if (state.failed) return retval;
// Haxe.g:166:66: ( typeTag )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==COLON) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// Haxe.g:166:66: typeTag
{
pushFollow(FOLLOW_typeTag_in_funcLit1436);
typeTag54=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeTag54.getTree());
}
break;
}
pushFollow(FOLLOW_block_in_funcLit1439);
block55=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, block55.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 17, funcLit_StartIndex); }
}
return retval;
}
// $ANTLR end "funcLit"
public static class typeTag_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeTag"
// Haxe.g:194:1: typeTag : COLON funcType -> ^( TYPE_TAG funcType ) ;
public final HaxeParser.typeTag_return typeTag() throws RecognitionException {
HaxeParser.typeTag_return retval = new HaxeParser.typeTag_return();
retval.start = input.LT(1);
int typeTag_StartIndex = input.index();
Object root_0 = null;
Token COLON56=null;
HaxeParser.funcType_return funcType57 =null;
Object COLON56_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_funcType=new RewriteRuleSubtreeStream(adaptor,"rule funcType");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return retval; }
// Haxe.g:194:17: ( COLON funcType -> ^( TYPE_TAG funcType ) )
// Haxe.g:194:19: COLON funcType
{
COLON56=(Token)match(input,COLON,FOLLOW_COLON_in_typeTag1483); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON56);
pushFollow(FOLLOW_funcType_in_typeTag1485);
funcType57=funcType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_funcType.add(funcType57.getTree());
// AST REWRITE
// elements: funcType
// 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 = (Object)adaptor.nil();
// 194:34: -> ^( TYPE_TAG funcType )
{
// Haxe.g:194:37: ^( TYPE_TAG funcType )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new TypeTag(TYPE_TAG)
, root_1);
adaptor.addChild(root_1, stream_funcType.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 18, typeTag_StartIndex); }
}
return retval;
}
// $ANTLR end "typeTag"
public static class typeList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeList"
// Haxe.g:197:1: typeList : ( funcType ( COMMA ! typeList )? | typeConstraint ( COMMA ! typeList )? );
public final HaxeParser.typeList_return typeList() throws RecognitionException {
HaxeParser.typeList_return retval = new HaxeParser.typeList_return();
retval.start = input.LT(1);
int typeList_StartIndex = input.index();
Object root_0 = null;
Token COMMA59=null;
Token COMMA62=null;
HaxeParser.funcType_return funcType58 =null;
HaxeParser.typeList_return typeList60 =null;
HaxeParser.typeConstraint_return typeConstraint61 =null;
HaxeParser.typeList_return typeList63 =null;
Object COMMA59_tree=null;
Object COMMA62_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return retval; }
// Haxe.g:197:17: ( funcType ( COMMA ! typeList )? | typeConstraint ( COMMA ! typeList )? )
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==IDENTIFIER) ) {
int LA23_1 = input.LA(2);
if ( (LA23_1==EOF||LA23_1==COMMA||LA23_1==DOT||LA23_1==GT||LA23_1==GTGT||LA23_1==GTGTGT||LA23_1==LT||LA23_1==MINUS_BIGGER||LA23_1==RPAREN) ) {
alt23=1;
}
else if ( (LA23_1==COLON) ) {
alt23=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 23, 1, input);
throw nvae;
}
}
else if ( (LA23_0==LBRACE) ) {
alt23=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// Haxe.g:197:19: funcType ( COMMA ! typeList )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_funcType_in_typeList1528);
funcType58=funcType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcType58.getTree());
// Haxe.g:197:28: ( COMMA ! typeList )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==COMMA) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// Haxe.g:197:29: COMMA ! typeList
{
COMMA59=(Token)match(input,COMMA,FOLLOW_COMMA_in_typeList1531); if (state.failed) return retval;
pushFollow(FOLLOW_typeList_in_typeList1534);
typeList60=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeList60.getTree());
}
break;
}
}
break;
case 2 :
// Haxe.g:198:19: typeConstraint ( COMMA ! typeList )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeConstraint_in_typeList1556);
typeConstraint61=typeConstraint();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeConstraint61.getTree());
// Haxe.g:198:34: ( COMMA ! typeList )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==COMMA) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// Haxe.g:198:35: COMMA ! typeList
{
COMMA62=(Token)match(input,COMMA,FOLLOW_COMMA_in_typeList1559); if (state.failed) return retval;
pushFollow(FOLLOW_typeList_in_typeList1562);
typeList63=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeList63.getTree());
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 19, typeList_StartIndex); }
}
return retval;
}
// $ANTLR end "typeList"
public static class funcType_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "funcType"
// Haxe.g:201:1: funcType : type ( MINUS_BIGGER ! type )* ;
public final HaxeParser.funcType_return funcType() throws RecognitionException {
HaxeParser.funcType_return retval = new HaxeParser.funcType_return();
retval.start = input.LT(1);
int funcType_StartIndex = input.index();
Object root_0 = null;
Token MINUS_BIGGER65=null;
HaxeParser.type_return type64 =null;
HaxeParser.type_return type66 =null;
Object MINUS_BIGGER65_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return retval; }
// Haxe.g:201:17: ( type ( MINUS_BIGGER ! type )* )
// Haxe.g:201:19: type ( MINUS_BIGGER ! type )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_type_in_funcType1597);
type64=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type64.getTree());
// Haxe.g:201:24: ( MINUS_BIGGER ! type )*
loop24:
do {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==MINUS_BIGGER) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// Haxe.g:201:25: MINUS_BIGGER ! type
{
MINUS_BIGGER65=(Token)match(input,MINUS_BIGGER,FOLLOW_MINUS_BIGGER_in_funcType1600); if (state.failed) return retval;
pushFollow(FOLLOW_type_in_funcType1603);
type66=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type66.getTree());
}
break;
default :
break loop24;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 20, funcType_StartIndex); }
}
return retval;
}
// $ANTLR end "funcType"
public static class anonType_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "anonType"
// Haxe.g:204:1: anonType : LBRACE ( anonTypePart )? RBRACE -> ^( TYPE_TAG[\"AnonType\", LBRACE, RBRACE] ( anonTypePart )? ) ;
public final HaxeParser.anonType_return anonType() throws RecognitionException {
HaxeParser.anonType_return retval = new HaxeParser.anonType_return();
retval.start = input.LT(1);
int anonType_StartIndex = input.index();
Object root_0 = null;
Token LBRACE67=null;
Token RBRACE69=null;
HaxeParser.anonTypePart_return anonTypePart68 =null;
Object LBRACE67_tree=null;
Object RBRACE69_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_anonTypePart=new RewriteRuleSubtreeStream(adaptor,"rule anonTypePart");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return retval; }
// Haxe.g:204:17: ( LBRACE ( anonTypePart )? RBRACE -> ^( TYPE_TAG[\"AnonType\", LBRACE, RBRACE] ( anonTypePart )? ) )
// Haxe.g:204:19: LBRACE ( anonTypePart )? RBRACE
{
LBRACE67=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_anonType1641); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACE.add(LBRACE67);
// Haxe.g:204:26: ( anonTypePart )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==GT||LA25_0==IDENTIFIER||LA25_0==VAR) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// Haxe.g:204:26: anonTypePart
{
pushFollow(FOLLOW_anonTypePart_in_anonType1643);
anonTypePart68=anonTypePart();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_anonTypePart.add(anonTypePart68.getTree());
}
break;
}
RBRACE69=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_anonType1646); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE69);
// AST REWRITE
// elements: anonTypePart
// 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 = (Object)adaptor.nil();
// 204:47: -> ^( TYPE_TAG[\"AnonType\", LBRACE, RBRACE] ( anonTypePart )? )
{
// Haxe.g:204:50: ^( TYPE_TAG[\"AnonType\", LBRACE, RBRACE] ( anonTypePart )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new TypeTag(TYPE_TAG, "AnonType", LBRACE, RBRACE)
, root_1);
// Haxe.g:204:98: ( anonTypePart )?
if ( stream_anonTypePart.hasNext() ) {
adaptor.addChild(root_1, stream_anonTypePart.nextTree());
}
stream_anonTypePart.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 21, anonType_StartIndex); }
}
return retval;
}
// $ANTLR end "anonType"
public static class anonTypePart_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "anonTypePart"
// Haxe.g:207:1: anonTypePart : ( anonTypeFieldList | ( varDecl )+ | typeExtend COMMA ! ( anonTypeFieldList | ( varDecl )+ )? );
public final HaxeParser.anonTypePart_return anonTypePart() throws RecognitionException {
HaxeParser.anonTypePart_return retval = new HaxeParser.anonTypePart_return();
retval.start = input.LT(1);
int anonTypePart_StartIndex = input.index();
Object root_0 = null;
Token COMMA73=null;
HaxeParser.anonTypeFieldList_return anonTypeFieldList70 =null;
HaxeParser.varDecl_return varDecl71 =null;
HaxeParser.typeExtend_return typeExtend72 =null;
HaxeParser.anonTypeFieldList_return anonTypeFieldList74 =null;
HaxeParser.varDecl_return varDecl75 =null;
Object COMMA73_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return retval; }
// Haxe.g:207:17: ( anonTypeFieldList | ( varDecl )+ | typeExtend COMMA ! ( anonTypeFieldList | ( varDecl )+ )? )
int alt29=3;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
alt29=1;
}
break;
case VAR:
{
alt29=2;
}
break;
case GT:
{
alt29=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 29, 0, input);
throw nvae;
}
switch (alt29) {
case 1 :
// Haxe.g:207:19: anonTypeFieldList
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_anonTypeFieldList_in_anonTypePart1687);
anonTypeFieldList70=anonTypeFieldList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, anonTypeFieldList70.getTree());
}
break;
case 2 :
// Haxe.g:208:19: ( varDecl )+
{
root_0 = (Object)adaptor.nil();
// Haxe.g:208:19: ( varDecl )+
int cnt26=0;
loop26:
do {
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==VAR) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// Haxe.g:208:19: varDecl
{
pushFollow(FOLLOW_varDecl_in_anonTypePart1707);
varDecl71=varDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDecl71.getTree());
}
break;
default :
if ( cnt26 >= 1 ) break loop26;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(26, input);
throw eee;
}
cnt26++;
} while (true);
}
break;
case 3 :
// Haxe.g:209:19: typeExtend COMMA ! ( anonTypeFieldList | ( varDecl )+ )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeExtend_in_anonTypePart1728);
typeExtend72=typeExtend();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeExtend72.getTree());
COMMA73=(Token)match(input,COMMA,FOLLOW_COMMA_in_anonTypePart1730); if (state.failed) return retval;
// Haxe.g:209:37: ( anonTypeFieldList | ( varDecl )+ )?
int alt28=3;
int LA28_0 = input.LA(1);
if ( (LA28_0==IDENTIFIER) ) {
alt28=1;
}
else if ( (LA28_0==VAR) ) {
alt28=2;
}
switch (alt28) {
case 1 :
// Haxe.g:209:39: anonTypeFieldList
{
pushFollow(FOLLOW_anonTypeFieldList_in_anonTypePart1735);
anonTypeFieldList74=anonTypeFieldList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, anonTypeFieldList74.getTree());
}
break;
case 2 :
// Haxe.g:209:59: ( varDecl )+
{
// Haxe.g:209:59: ( varDecl )+
int cnt27=0;
loop27:
do {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==VAR) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// Haxe.g:209:59: varDecl
{
pushFollow(FOLLOW_varDecl_in_anonTypePart1739);
varDecl75=varDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDecl75.getTree());
}
break;
default :
if ( cnt27 >= 1 ) break loop27;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(27, input);
throw eee;
}
cnt27++;
} while (true);
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 22, anonTypePart_StartIndex); }
}
return retval;
}
// $ANTLR end "anonTypePart"
public static class anonTypeFieldList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "anonTypeFieldList"
// Haxe.g:212:1: anonTypeFieldList : anonTypeField ( COMMA anonTypeField )* -> ( anonTypeField )+ ;
public final HaxeParser.anonTypeFieldList_return anonTypeFieldList() throws RecognitionException {
HaxeParser.anonTypeFieldList_return retval = new HaxeParser.anonTypeFieldList_return();
retval.start = input.LT(1);
int anonTypeFieldList_StartIndex = input.index();
Object root_0 = null;
Token COMMA77=null;
HaxeParser.anonTypeField_return anonTypeField76 =null;
HaxeParser.anonTypeField_return anonTypeField78 =null;
Object COMMA77_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_anonTypeField=new RewriteRuleSubtreeStream(adaptor,"rule anonTypeField");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return retval; }
// Haxe.g:213:17: ( anonTypeField ( COMMA anonTypeField )* -> ( anonTypeField )+ )
// Haxe.g:213:19: anonTypeField ( COMMA anonTypeField )*
{
pushFollow(FOLLOW_anonTypeField_in_anonTypeFieldList1789);
anonTypeField76=anonTypeField();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_anonTypeField.add(anonTypeField76.getTree());
// Haxe.g:213:33: ( COMMA anonTypeField )*
loop30:
do {
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==COMMA) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// Haxe.g:213:34: COMMA anonTypeField
{
COMMA77=(Token)match(input,COMMA,FOLLOW_COMMA_in_anonTypeFieldList1792); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA77);
pushFollow(FOLLOW_anonTypeField_in_anonTypeFieldList1794);
anonTypeField78=anonTypeField();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_anonTypeField.add(anonTypeField78.getTree());
}
break;
default :
break loop30;
}
} while (true);
// AST REWRITE
// elements: anonTypeField
// 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 = (Object)adaptor.nil();
// 213:56: -> ( anonTypeField )+
{
if ( !(stream_anonTypeField.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_anonTypeField.hasNext() ) {
adaptor.addChild(root_0, stream_anonTypeField.nextTree());
}
stream_anonTypeField.reset();
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 23, anonTypeFieldList_StartIndex); }
}
return retval;
}
// $ANTLR end "anonTypeFieldList"
public static class type_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "type"
// Haxe.g:216:1: type : ( filepath ^| anonType ^) ( typeParam )? ;
public final HaxeParser.type_return type() throws RecognitionException {
HaxeParser.type_return retval = new HaxeParser.type_return();
retval.start = input.LT(1);
int type_StartIndex = input.index();
Object root_0 = null;
HaxeParser.filepath_return filepath79 =null;
HaxeParser.anonType_return anonType80 =null;
HaxeParser.typeParam_return typeParam81 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return retval; }
// Haxe.g:216:17: ( ( filepath ^| anonType ^) ( typeParam )? )
// Haxe.g:216:19: ( filepath ^| anonType ^) ( typeParam )?
{
root_0 = (Object)adaptor.nil();
// Haxe.g:216:19: ( filepath ^| anonType ^)
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==IDENTIFIER) ) {
alt31=1;
}
else if ( (LA31_0==LBRACE) ) {
alt31=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1 :
// Haxe.g:216:21: filepath ^
{
pushFollow(FOLLOW_filepath_in_type1839);
filepath79=filepath();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(filepath79.getTree(), root_0);
}
break;
case 2 :
// Haxe.g:216:33: anonType ^
{
pushFollow(FOLLOW_anonType_in_type1844);
anonType80=anonType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(anonType80.getTree(), root_0);
}
break;
}
// Haxe.g:216:45: ( typeParam )?
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==LT) ) {
int LA32_1 = input.LA(2);
if ( (synpred53_Haxe()) ) {
alt32=1;
}
}
switch (alt32) {
case 1 :
// Haxe.g:216:45: typeParam
{
pushFollow(FOLLOW_typeParam_in_type1849);
typeParam81=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeParam81.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 24, type_StartIndex); }
}
return retval;
}
// $ANTLR end "type"
public static class typeParam_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeParam"
// Haxe.g:219:1: typeParam : ( LT typeList typeParamPart -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList typeParamPart ) | LT typeList GT -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ) );
public final HaxeParser.typeParam_return typeParam() throws RecognitionException {
HaxeParser.typeParam_return retval = new HaxeParser.typeParam_return();
retval.start = input.LT(1);
int typeParam_StartIndex = input.index();
Object root_0 = null;
Token LT82=null;
Token LT85=null;
Token GT87=null;
HaxeParser.typeList_return typeList83 =null;
HaxeParser.typeParamPart_return typeParamPart84 =null;
HaxeParser.typeList_return typeList86 =null;
Object LT82_tree=null;
Object LT85_tree=null;
Object GT87_tree=null;
RewriteRuleTokenStream stream_GT=new RewriteRuleTokenStream(adaptor,"token GT");
RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT");
RewriteRuleSubtreeStream stream_typeParamPart=new RewriteRuleSubtreeStream(adaptor,"rule typeParamPart");
RewriteRuleSubtreeStream stream_typeList=new RewriteRuleSubtreeStream(adaptor,"rule typeList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return retval; }
// Haxe.g:219:17: ( LT typeList typeParamPart -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList typeParamPart ) | LT typeList GT -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ) )
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==LT) ) {
int LA33_1 = input.LA(2);
if ( (synpred54_Haxe()) ) {
alt33=1;
}
else if ( (true) ) {
alt33=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// Haxe.g:219:19: LT typeList typeParamPart
{
LT82=(Token)match(input,LT,FOLLOW_LT_in_typeParam1885); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LT.add(LT82);
pushFollow(FOLLOW_typeList_in_typeParam1887);
typeList83=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeList.add(typeList83.getTree());
pushFollow(FOLLOW_typeParamPart_in_typeParam1889);
typeParamPart84=typeParamPart();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParamPart.add(typeParamPart84.getTree());
// AST REWRITE
// elements: typeList, typeParamPart
// 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 = (Object)adaptor.nil();
// 219:45: -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList typeParamPart )
{
// Haxe.g:219:48: ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList typeParamPart )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(TYPE_PARAM, "TYPE_PARAM")
, root_1);
adaptor.addChild(root_1, stream_typeList.nextTree());
adaptor.addChild(root_1, stream_typeParamPart.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:220:19: LT typeList GT
{
LT85=(Token)match(input,LT,FOLLOW_LT_in_typeParam1923); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LT.add(LT85);
pushFollow(FOLLOW_typeList_in_typeParam1925);
typeList86=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeList.add(typeList86.getTree());
GT87=(Token)match(input,GT,FOLLOW_GT_in_typeParam1927); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GT.add(GT87);
// AST REWRITE
// elements: typeList
// 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 = (Object)adaptor.nil();
// 220:34: -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList )
{
// Haxe.g:220:37: ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(TYPE_PARAM, "TYPE_PARAM")
, root_1);
adaptor.addChild(root_1, stream_typeList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 25, typeParam_StartIndex); }
}
return retval;
}
// $ANTLR end "typeParam"
public static class typeParamPart_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeParamPart"
// Haxe.g:223:1: typeParamPart : ( LT typeList GTGT -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ) | LT typeList ( typeParam )? GTGTGT -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ( typeParam )? ) );
public final HaxeParser.typeParamPart_return typeParamPart() throws RecognitionException {
HaxeParser.typeParamPart_return retval = new HaxeParser.typeParamPart_return();
retval.start = input.LT(1);
int typeParamPart_StartIndex = input.index();
Object root_0 = null;
Token LT88=null;
Token GTGT90=null;
Token LT91=null;
Token GTGTGT94=null;
HaxeParser.typeList_return typeList89 =null;
HaxeParser.typeList_return typeList92 =null;
HaxeParser.typeParam_return typeParam93 =null;
Object LT88_tree=null;
Object GTGT90_tree=null;
Object LT91_tree=null;
Object GTGTGT94_tree=null;
RewriteRuleTokenStream stream_GTGTGT=new RewriteRuleTokenStream(adaptor,"token GTGTGT");
RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT");
RewriteRuleTokenStream stream_GTGT=new RewriteRuleTokenStream(adaptor,"token GTGT");
RewriteRuleSubtreeStream stream_typeParam=new RewriteRuleSubtreeStream(adaptor,"rule typeParam");
RewriteRuleSubtreeStream stream_typeList=new RewriteRuleSubtreeStream(adaptor,"rule typeList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return retval; }
// Haxe.g:223:17: ( LT typeList GTGT -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ) | LT typeList ( typeParam )? GTGTGT -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ( typeParam )? ) )
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==LT) ) {
int LA35_1 = input.LA(2);
if ( (synpred55_Haxe()) ) {
alt35=1;
}
else if ( (true) ) {
alt35=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 35, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// Haxe.g:223:19: LT typeList GTGT
{
LT88=(Token)match(input,LT,FOLLOW_LT_in_typeParamPart1983); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LT.add(LT88);
pushFollow(FOLLOW_typeList_in_typeParamPart1985);
typeList89=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeList.add(typeList89.getTree());
GTGT90=(Token)match(input,GTGT,FOLLOW_GTGT_in_typeParamPart1987); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GTGT.add(GTGT90);
// AST REWRITE
// elements: typeList
// 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 = (Object)adaptor.nil();
// 223:36: -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList )
{
// Haxe.g:223:39: ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(TYPE_PARAM, "TYPE_PARAM")
, root_1);
adaptor.addChild(root_1, stream_typeList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:224:19: LT typeList ( typeParam )? GTGTGT
{
LT91=(Token)match(input,LT,FOLLOW_LT_in_typeParamPart2019); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LT.add(LT91);
pushFollow(FOLLOW_typeList_in_typeParamPart2021);
typeList92=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeList.add(typeList92.getTree());
// Haxe.g:224:31: ( typeParam )?
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==LT) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// Haxe.g:224:31: typeParam
{
pushFollow(FOLLOW_typeParam_in_typeParamPart2023);
typeParam93=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParam.add(typeParam93.getTree());
}
break;
}
GTGTGT94=(Token)match(input,GTGTGT,FOLLOW_GTGTGT_in_typeParamPart2026); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GTGTGT.add(GTGTGT94);
// AST REWRITE
// elements: typeList, typeParam
// 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 = (Object)adaptor.nil();
// 224:49: -> ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ( typeParam )? )
{
// Haxe.g:224:52: ^( TYPE_PARAM[\"TYPE_PARAM\"] typeList ( typeParam )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(TYPE_PARAM, "TYPE_PARAM")
, root_1);
adaptor.addChild(root_1, stream_typeList.nextTree());
// Haxe.g:224:98: ( typeParam )?
if ( stream_typeParam.hasNext() ) {
adaptor.addChild(root_1, stream_typeParam.nextTree());
}
stream_typeParam.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 26, typeParamPart_StartIndex); }
}
return retval;
}
// $ANTLR end "typeParamPart"
public static class typeConstraint_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeConstraint"
// Haxe.g:227:1: typeConstraint : identifier COLON LPAREN typeList RPAREN -> ^( TYPE_CONSTRAIN[\"TYPE_CONSTRAIN\"] identifier ( typeList )? ) ;
public final HaxeParser.typeConstraint_return typeConstraint() throws RecognitionException {
HaxeParser.typeConstraint_return retval = new HaxeParser.typeConstraint_return();
retval.start = input.LT(1);
int typeConstraint_StartIndex = input.index();
Object root_0 = null;
Token COLON96=null;
Token LPAREN97=null;
Token RPAREN99=null;
HaxeParser.identifier_return identifier95 =null;
HaxeParser.typeList_return typeList98 =null;
Object COLON96_tree=null;
Object LPAREN97_tree=null;
Object RPAREN99_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_typeList=new RewriteRuleSubtreeStream(adaptor,"rule typeList");
RewriteRuleSubtreeStream stream_identifier=new RewriteRuleSubtreeStream(adaptor,"rule identifier");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return retval; }
// Haxe.g:228:5: ( identifier COLON LPAREN typeList RPAREN -> ^( TYPE_CONSTRAIN[\"TYPE_CONSTRAIN\"] identifier ( typeList )? ) )
// Haxe.g:228:7: identifier COLON LPAREN typeList RPAREN
{
pushFollow(FOLLOW_identifier_in_typeConstraint2077);
identifier95=identifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_identifier.add(identifier95.getTree());
COLON96=(Token)match(input,COLON,FOLLOW_COLON_in_typeConstraint2079); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON96);
LPAREN97=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_typeConstraint2081); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN97);
pushFollow(FOLLOW_typeList_in_typeConstraint2083);
typeList98=typeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeList.add(typeList98.getTree());
RPAREN99=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_typeConstraint2085); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN99);
// AST REWRITE
// elements: typeList, identifier
// 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 = (Object)adaptor.nil();
// 228:47: -> ^( TYPE_CONSTRAIN[\"TYPE_CONSTRAIN\"] identifier ( typeList )? )
{
// Haxe.g:228:50: ^( TYPE_CONSTRAIN[\"TYPE_CONSTRAIN\"] identifier ( typeList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(TYPE_CONSTRAIN, "TYPE_CONSTRAIN")
, root_1);
adaptor.addChild(root_1, stream_identifier.nextTree());
// Haxe.g:228:106: ( typeList )?
if ( stream_typeList.hasNext() ) {
adaptor.addChild(root_1, stream_typeList.nextTree());
}
stream_typeList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 27, typeConstraint_StartIndex); }
}
return retval;
}
// $ANTLR end "typeConstraint"
public static class statement_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "statement"
// Haxe.g:232:1: statement : ( statementLast | expr SEMI !);
public final HaxeParser.statement_return statement() throws RecognitionException {
HaxeParser.statement_return retval = new HaxeParser.statement_return();
retval.start = input.LT(1);
int statement_StartIndex = input.index();
Object root_0 = null;
Token SEMI102=null;
HaxeParser.statementLast_return statementLast100 =null;
HaxeParser.expr_return expr101 =null;
Object SEMI102_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return retval; }
// Haxe.g:232:17: ( statementLast | expr SEMI !)
int alt36=2;
switch ( input.LA(1) ) {
case LBRACE:
{
int LA36_1 = input.LA(2);
if ( (LA36_1==BANG||LA36_1==BREAK||LA36_1==CAST||(LA36_1 >= CHARLITERAL && LA36_1 <= CLASS)||LA36_1==CONTINUE||LA36_1==DO||LA36_1==EXTERN||LA36_1==FALSE||(LA36_1 >= FLOATNUM && LA36_1 <= FUNCTION)||LA36_1==IF||LA36_1==INTLITERAL||(LA36_1 >= LBRACE && LA36_1 <= LBRACKET)||(LA36_1 >= LONGLITERAL && LA36_1 <= LPAREN)||(LA36_1 >= NEW && LA36_1 <= NULL)||LA36_1==PLUSPLUS||LA36_1==PRIVATE||LA36_1==RBRACE||LA36_1==RETURN||(LA36_1 >= STRINGLITERAL && LA36_1 <= SUB)||LA36_1==SUBSUB||(LA36_1 >= SUPER && LA36_1 <= THROW)||LA36_1==TILDE||(LA36_1 >= TRUE && LA36_1 <= TRY)||LA36_1==UNTYPED||LA36_1==VAR||LA36_1==WHILE) ) {
alt36=1;
}
else if ( (LA36_1==IDENTIFIER) ) {
int LA36_4 = input.LA(3);
if ( (LA36_4==COLON) ) {
alt36=2;
}
else if ( ((LA36_4 >= AMP && LA36_4 <= AMPEQ)||LA36_4==BANGEQ||(LA36_4 >= BAR && LA36_4 <= BAREQ)||(LA36_4 >= CARET && LA36_4 <= CARETEQ)||LA36_4==DOT||LA36_4==ELLIPSIS||(LA36_4 >= EQ && LA36_4 <= EQEQ)||(LA36_4 >= GT && LA36_4 <= GTGTGTEQ)||LA36_4==LBRACKET||(LA36_4 >= LPAREN && LA36_4 <= LTLTEQ)||(LA36_4 >= PERCENT && LA36_4 <= PLUSPLUS)||LA36_4==QUES||LA36_4==SEMI||(LA36_4 >= SLASH && LA36_4 <= STAREQ)||(LA36_4 >= SUB && LA36_4 <= SUBSUB)) ) {
alt36=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 4, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 1, input);
throw nvae;
}
}
break;
case BREAK:
case CONTINUE:
case DO:
case FOR:
case IF:
case RETURN:
case SWITCH:
case THROW:
case TRY:
case WHILE:
{
alt36=1;
}
break;
case BANG:
case CAST:
case CHARLITERAL:
case FALSE:
case FLOATNUM:
case FUNCTION:
case IDENTIFIER:
case INTLITERAL:
case LBRACKET:
case LONGLITERAL:
case LPAREN:
case NEW:
case NULL:
case PLUSPLUS:
case STRINGLITERAL:
case SUB:
case SUBSUB:
case SUPER:
case THIS:
case TILDE:
case TRUE:
case UNTYPED:
{
alt36=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
// Haxe.g:232:19: statementLast
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statementLast_in_statement2125);
statementLast100=statementLast();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementLast100.getTree());
}
break;
case 2 :
// Haxe.g:233:19: expr SEMI !
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expr_in_statement2145);
expr101=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr101.getTree());
SEMI102=(Token)match(input,SEMI,FOLLOW_SEMI_in_statement2147); if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 28, statement_StartIndex); }
}
return retval;
}
// $ANTLR end "statement"
public static class statementLast_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "statementLast"
// Haxe.g:236:1: statementLast : ( block | IF ^ parExpression ( statementOrLast ELSE !)? statement | FOR ^ LPAREN ! expr IN ! iterExpr RPAREN ! statement | WHILE ^ parExpression statement | DO ^ statement WHILE ! parExpression SEMI !| TRY ^ block ( catchStmt )+ | SWITCH ^ LPAREN ! expr RPAREN ! LBRACE ! ( caseStmt )+ RBRACE !| RETURN ^ ( expr )? SEMI !| THROW ^ expr SEMI !| ( BREAK | CONTINUE ) SEMI !);
public final HaxeParser.statementLast_return statementLast() throws RecognitionException {
HaxeParser.statementLast_return retval = new HaxeParser.statementLast_return();
retval.start = input.LT(1);
int statementLast_StartIndex = input.index();
Object root_0 = null;
Token IF104=null;
Token ELSE107=null;
Token FOR109=null;
Token LPAREN110=null;
Token IN112=null;
Token RPAREN114=null;
Token WHILE116=null;
Token DO119=null;
Token WHILE121=null;
Token SEMI123=null;
Token TRY124=null;
Token SWITCH127=null;
Token LPAREN128=null;
Token RPAREN130=null;
Token LBRACE131=null;
Token RBRACE133=null;
Token RETURN134=null;
Token SEMI136=null;
Token THROW137=null;
Token SEMI139=null;
Token set140=null;
Token SEMI141=null;
HaxeParser.block_return block103 =null;
HaxeParser.parExpression_return parExpression105 =null;
HaxeParser.statementOrLast_return statementOrLast106 =null;
HaxeParser.statement_return statement108 =null;
HaxeParser.expr_return expr111 =null;
HaxeParser.iterExpr_return iterExpr113 =null;
HaxeParser.statement_return statement115 =null;
HaxeParser.parExpression_return parExpression117 =null;
HaxeParser.statement_return statement118 =null;
HaxeParser.statement_return statement120 =null;
HaxeParser.parExpression_return parExpression122 =null;
HaxeParser.block_return block125 =null;
HaxeParser.catchStmt_return catchStmt126 =null;
HaxeParser.expr_return expr129 =null;
HaxeParser.caseStmt_return caseStmt132 =null;
HaxeParser.expr_return expr135 =null;
HaxeParser.expr_return expr138 =null;
Object IF104_tree=null;
Object ELSE107_tree=null;
Object FOR109_tree=null;
Object LPAREN110_tree=null;
Object IN112_tree=null;
Object RPAREN114_tree=null;
Object WHILE116_tree=null;
Object DO119_tree=null;
Object WHILE121_tree=null;
Object SEMI123_tree=null;
Object TRY124_tree=null;
Object SWITCH127_tree=null;
Object LPAREN128_tree=null;
Object RPAREN130_tree=null;
Object LBRACE131_tree=null;
Object RBRACE133_tree=null;
Object RETURN134_tree=null;
Object SEMI136_tree=null;
Object THROW137_tree=null;
Object SEMI139_tree=null;
Object set140_tree=null;
Object SEMI141_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return retval; }
// Haxe.g:236:17: ( block | IF ^ parExpression ( statementOrLast ELSE !)? statement | FOR ^ LPAREN ! expr IN ! iterExpr RPAREN ! statement | WHILE ^ parExpression statement | DO ^ statement WHILE ! parExpression SEMI !| TRY ^ block ( catchStmt )+ | SWITCH ^ LPAREN ! expr RPAREN ! LBRACE ! ( caseStmt )+ RBRACE !| RETURN ^ ( expr )? SEMI !| THROW ^ expr SEMI !| ( BREAK | CONTINUE ) SEMI !)
int alt41=10;
switch ( input.LA(1) ) {
case LBRACE:
{
alt41=1;
}
break;
case IF:
{
alt41=2;
}
break;
case FOR:
{
alt41=3;
}
break;
case WHILE:
{
alt41=4;
}
break;
case DO:
{
alt41=5;
}
break;
case TRY:
{
alt41=6;
}
break;
case SWITCH:
{
alt41=7;
}
break;
case RETURN:
{
alt41=8;
}
break;
case THROW:
{
alt41=9;
}
break;
case BREAK:
case CONTINUE:
{
alt41=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// Haxe.g:236:19: block
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_block_in_statementLast2179);
block103=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, block103.getTree());
}
break;
case 2 :
// Haxe.g:237:19: IF ^ parExpression ( statementOrLast ELSE !)? statement
{
root_0 = (Object)adaptor.nil();
IF104=(Token)match(input,IF,FOLLOW_IF_in_statementLast2199); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IF104_tree =
new IfNode(IF104)
;
root_0 = (Object)adaptor.becomeRoot(IF104_tree, root_0);
}
pushFollow(FOLLOW_parExpression_in_statementLast2205);
parExpression105=parExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parExpression105.getTree());
// Haxe.g:237:45: ( statementOrLast ELSE !)?
int alt37=2;
switch ( input.LA(1) ) {
case LBRACE:
{
int LA37_1 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case IF:
{
int LA37_2 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case FOR:
{
int LA37_3 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case WHILE:
{
int LA37_4 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case DO:
{
int LA37_5 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case TRY:
{
int LA37_6 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case SWITCH:
{
int LA37_7 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case RETURN:
{
int LA37_8 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case THROW:
{
int LA37_9 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case BREAK:
case CONTINUE:
{
int LA37_10 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case UNTYPED:
{
int LA37_11 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case SUB:
{
int LA37_12 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case SUBSUB:
{
int LA37_13 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case PLUSPLUS:
{
int LA37_14 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case BANG:
{
int LA37_15 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case TILDE:
{
int LA37_16 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case NEW:
{
int LA37_17 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case CAST:
{
int LA37_18 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case FUNCTION:
{
int LA37_19 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case LBRACKET:
{
int LA37_20 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case LONGLITERAL:
{
int LA37_21 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case NULL:
{
int LA37_22 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case INTLITERAL:
{
int LA37_23 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case STRINGLITERAL:
{
int LA37_24 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case CHARLITERAL:
{
int LA37_25 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case FLOATNUM:
{
int LA37_26 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case TRUE:
{
int LA37_27 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case FALSE:
{
int LA37_28 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case LPAREN:
{
int LA37_29 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case IDENTIFIER:
{
int LA37_30 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case THIS:
{
int LA37_31 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
case SUPER:
{
int LA37_32 = input.LA(2);
if ( (synpred59_Haxe()) ) {
alt37=1;
}
}
break;
}
switch (alt37) {
case 1 :
// Haxe.g:237:46: statementOrLast ELSE !
{
pushFollow(FOLLOW_statementOrLast_in_statementLast2208);
statementOrLast106=statementOrLast();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementOrLast106.getTree());
ELSE107=(Token)match(input,ELSE,FOLLOW_ELSE_in_statementLast2210); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_statement_in_statementLast2215);
statement108=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement108.getTree());
}
break;
case 3 :
// Haxe.g:238:19: FOR ^ LPAREN ! expr IN ! iterExpr RPAREN ! statement
{
root_0 = (Object)adaptor.nil();
FOR109=(Token)match(input,FOR,FOLLOW_FOR_in_statementLast2235); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR109_tree =
new For(FOR109)
;
root_0 = (Object)adaptor.becomeRoot(FOR109_tree, root_0);
}
LPAREN110=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_statementLast2241); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_statementLast2244);
expr111=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr111.getTree());
IN112=(Token)match(input,IN,FOLLOW_IN_in_statementLast2246); if (state.failed) return retval;
pushFollow(FOLLOW_iterExpr_in_statementLast2249);
iterExpr113=iterExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, iterExpr113.getTree());
RPAREN114=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_statementLast2251); if (state.failed) return retval;
pushFollow(FOLLOW_statement_in_statementLast2254);
statement115=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement115.getTree());
}
break;
case 4 :
// Haxe.g:239:19: WHILE ^ parExpression statement
{
root_0 = (Object)adaptor.nil();
WHILE116=(Token)match(input,WHILE,FOLLOW_WHILE_in_statementLast2274); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WHILE116_tree =
new While(WHILE116)
;
root_0 = (Object)adaptor.becomeRoot(WHILE116_tree, root_0);
}
pushFollow(FOLLOW_parExpression_in_statementLast2280);
parExpression117=parExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parExpression117.getTree());
pushFollow(FOLLOW_statement_in_statementLast2282);
statement118=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement118.getTree());
}
break;
case 5 :
// Haxe.g:240:19: DO ^ statement WHILE ! parExpression SEMI !
{
root_0 = (Object)adaptor.nil();
DO119=(Token)match(input,DO,FOLLOW_DO_in_statementLast2302); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO119_tree =
new DoWhile(DO119)
;
root_0 = (Object)adaptor.becomeRoot(DO119_tree, root_0);
}
pushFollow(FOLLOW_statement_in_statementLast2308);
statement120=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement120.getTree());
WHILE121=(Token)match(input,WHILE,FOLLOW_WHILE_in_statementLast2310); if (state.failed) return retval;
pushFollow(FOLLOW_parExpression_in_statementLast2313);
parExpression122=parExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parExpression122.getTree());
SEMI123=(Token)match(input,SEMI,FOLLOW_SEMI_in_statementLast2315); if (state.failed) return retval;
}
break;
case 6 :
// Haxe.g:241:19: TRY ^ block ( catchStmt )+
{
root_0 = (Object)adaptor.nil();
TRY124=(Token)match(input,TRY,FOLLOW_TRY_in_statementLast2336); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TRY124_tree =
new TryNode(TRY124)
;
root_0 = (Object)adaptor.becomeRoot(TRY124_tree, root_0);
}
pushFollow(FOLLOW_block_in_statementLast2342);
block125=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, block125.getTree());
// Haxe.g:241:39: ( catchStmt )+
int cnt38=0;
loop38:
do {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==CATCH) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// Haxe.g:241:39: catchStmt
{
pushFollow(FOLLOW_catchStmt_in_statementLast2344);
catchStmt126=catchStmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, catchStmt126.getTree());
}
break;
default :
if ( cnt38 >= 1 ) break loop38;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(38, input);
throw eee;
}
cnt38++;
} while (true);
}
break;
case 7 :
// Haxe.g:242:19: SWITCH ^ LPAREN ! expr RPAREN ! LBRACE ! ( caseStmt )+ RBRACE !
{
root_0 = (Object)adaptor.nil();
SWITCH127=(Token)match(input,SWITCH,FOLLOW_SWITCH_in_statementLast2365); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SWITCH127_tree =
new SwitchNode(SWITCH127)
;
root_0 = (Object)adaptor.becomeRoot(SWITCH127_tree, root_0);
}
LPAREN128=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_statementLast2371); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_statementLast2374);
expr129=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr129.getTree());
RPAREN130=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_statementLast2376); if (state.failed) return retval;
LBRACE131=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_statementLast2379); if (state.failed) return retval;
// Haxe.g:242:68: ( caseStmt )+
int cnt39=0;
loop39:
do {
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==CASE||LA39_0==DEFAULT) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// Haxe.g:242:68: caseStmt
{
pushFollow(FOLLOW_caseStmt_in_statementLast2382);
caseStmt132=caseStmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, caseStmt132.getTree());
}
break;
default :
if ( cnt39 >= 1 ) break loop39;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(39, input);
throw eee;
}
cnt39++;
} while (true);
RBRACE133=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_statementLast2385); if (state.failed) return retval;
}
break;
case 8 :
// Haxe.g:243:19: RETURN ^ ( expr )? SEMI !
{
root_0 = (Object)adaptor.nil();
RETURN134=(Token)match(input,RETURN,FOLLOW_RETURN_in_statementLast2406); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RETURN134_tree =
new Return(RETURN134)
;
root_0 = (Object)adaptor.becomeRoot(RETURN134_tree, root_0);
}
// Haxe.g:243:35: ( expr )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==BANG||LA40_0==CAST||LA40_0==CHARLITERAL||LA40_0==FALSE||LA40_0==FLOATNUM||LA40_0==FUNCTION||LA40_0==IDENTIFIER||LA40_0==INTLITERAL||(LA40_0 >= LBRACE && LA40_0 <= LBRACKET)||(LA40_0 >= LONGLITERAL && LA40_0 <= LPAREN)||(LA40_0 >= NEW && LA40_0 <= NULL)||LA40_0==PLUSPLUS||(LA40_0 >= STRINGLITERAL && LA40_0 <= SUB)||LA40_0==SUBSUB||LA40_0==SUPER||LA40_0==THIS||LA40_0==TILDE||LA40_0==TRUE||LA40_0==UNTYPED) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// Haxe.g:243:35: expr
{
pushFollow(FOLLOW_expr_in_statementLast2412);
expr135=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr135.getTree());
}
break;
}
SEMI136=(Token)match(input,SEMI,FOLLOW_SEMI_in_statementLast2415); if (state.failed) return retval;
}
break;
case 9 :
// Haxe.g:244:19: THROW ^ expr SEMI !
{
root_0 = (Object)adaptor.nil();
THROW137=(Token)match(input,THROW,FOLLOW_THROW_in_statementLast2436); if (state.failed) return retval;
if ( state.backtracking==0 ) {
THROW137_tree =
(Object)adaptor.create(THROW137)
;
root_0 = (Object)adaptor.becomeRoot(THROW137_tree, root_0);
}
pushFollow(FOLLOW_expr_in_statementLast2439);
expr138=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr138.getTree());
SEMI139=(Token)match(input,SEMI,FOLLOW_SEMI_in_statementLast2441); if (state.failed) return retval;
}
break;
case 10 :
// Haxe.g:245:19: ( BREAK | CONTINUE ) SEMI !
{
root_0 = (Object)adaptor.nil();
set140=(Token)input.LT(1);
if ( input.LA(1)==BREAK||input.LA(1)==CONTINUE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0,
(Object)adaptor.create(set140)
);
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
SEMI141=(Token)match(input,SEMI,FOLLOW_SEMI_in_statementLast2470); if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 29, statementLast_StartIndex); }
}
return retval;
}
// $ANTLR end "statementLast"
public static class statementOrLast_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "statementOrLast"
// Haxe.g:249:1: statementOrLast : ( statementLast | expr );
public final HaxeParser.statementOrLast_return statementOrLast() throws RecognitionException {
HaxeParser.statementOrLast_return retval = new HaxeParser.statementOrLast_return();
retval.start = input.LT(1);
int statementOrLast_StartIndex = input.index();
Object root_0 = null;
HaxeParser.statementLast_return statementLast142 =null;
HaxeParser.expr_return expr143 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return retval; }
// Haxe.g:249:17: ( statementLast | expr )
int alt42=2;
switch ( input.LA(1) ) {
case LBRACE:
{
int LA42_1 = input.LA(2);
if ( (LA42_1==BANG||LA42_1==BREAK||LA42_1==CAST||(LA42_1 >= CHARLITERAL && LA42_1 <= CLASS)||LA42_1==CONTINUE||LA42_1==DO||LA42_1==EXTERN||LA42_1==FALSE||(LA42_1 >= FLOATNUM && LA42_1 <= FUNCTION)||LA42_1==IF||LA42_1==INTLITERAL||(LA42_1 >= LBRACE && LA42_1 <= LBRACKET)||(LA42_1 >= LONGLITERAL && LA42_1 <= LPAREN)||(LA42_1 >= NEW && LA42_1 <= NULL)||LA42_1==PLUSPLUS||LA42_1==PRIVATE||LA42_1==RBRACE||LA42_1==RETURN||(LA42_1 >= STRINGLITERAL && LA42_1 <= SUB)||LA42_1==SUBSUB||(LA42_1 >= SUPER && LA42_1 <= THROW)||LA42_1==TILDE||(LA42_1 >= TRUE && LA42_1 <= TRY)||LA42_1==UNTYPED||LA42_1==VAR||LA42_1==WHILE) ) {
alt42=1;
}
else if ( (LA42_1==IDENTIFIER) ) {
int LA42_4 = input.LA(3);
if ( (LA42_4==COLON) ) {
alt42=2;
}
else if ( ((LA42_4 >= AMP && LA42_4 <= AMPEQ)||LA42_4==BANGEQ||(LA42_4 >= BAR && LA42_4 <= BAREQ)||(LA42_4 >= CARET && LA42_4 <= CARETEQ)||LA42_4==DOT||LA42_4==ELLIPSIS||(LA42_4 >= EQ && LA42_4 <= EQEQ)||(LA42_4 >= GT && LA42_4 <= GTGTGTEQ)||LA42_4==LBRACKET||(LA42_4 >= LPAREN && LA42_4 <= LTLTEQ)||(LA42_4 >= PERCENT && LA42_4 <= PLUSPLUS)||LA42_4==QUES||LA42_4==SEMI||(LA42_4 >= SLASH && LA42_4 <= STAREQ)||(LA42_4 >= SUB && LA42_4 <= SUBSUB)) ) {
alt42=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 42, 4, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 42, 1, input);
throw nvae;
}
}
break;
case BREAK:
case CONTINUE:
case DO:
case FOR:
case IF:
case RETURN:
case SWITCH:
case THROW:
case TRY:
case WHILE:
{
alt42=1;
}
break;
case BANG:
case CAST:
case CHARLITERAL:
case FALSE:
case FLOATNUM:
case FUNCTION:
case IDENTIFIER:
case INTLITERAL:
case LBRACKET:
case LONGLITERAL:
case LPAREN:
case NEW:
case NULL:
case PLUSPLUS:
case STRINGLITERAL:
case SUB:
case SUBSUB:
case SUPER:
case THIS:
case TILDE:
case TRUE:
case UNTYPED:
{
alt42=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 42, 0, input);
throw nvae;
}
switch (alt42) {
case 1 :
// Haxe.g:249:19: statementLast
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statementLast_in_statementOrLast2493);
statementLast142=statementLast();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementLast142.getTree());
}
break;
case 2 :
// Haxe.g:250:19: expr
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expr_in_statementOrLast2513);
expr143=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr143.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 30, statementOrLast_StartIndex); }
}
return retval;
}
// $ANTLR end "statementOrLast"
public static class parExpression_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "parExpression"
// Haxe.g:253:1: parExpression : LPAREN ! expr RPAREN !;
public final HaxeParser.parExpression_return parExpression() throws RecognitionException {
HaxeParser.parExpression_return retval = new HaxeParser.parExpression_return();
retval.start = input.LT(1);
int parExpression_StartIndex = input.index();
Object root_0 = null;
Token LPAREN144=null;
Token RPAREN146=null;
HaxeParser.expr_return expr145 =null;
Object LPAREN144_tree=null;
Object RPAREN146_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return retval; }
// Haxe.g:253:17: ( LPAREN ! expr RPAREN !)
// Haxe.g:253:19: LPAREN ! expr RPAREN !
{
root_0 = (Object)adaptor.nil();
LPAREN144=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_parExpression2543); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_parExpression2546);
expr145=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr145.getTree());
RPAREN146=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_parExpression2548); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 31, parExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "parExpression"
public static class block_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "block"
// Haxe.g:256:1: block : LBRACE ( blockStmt )* RBRACE -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( blockStmt )* ) ;
public final HaxeParser.block_return block() throws RecognitionException {
HaxeParser.block_return retval = new HaxeParser.block_return();
retval.start = input.LT(1);
int block_StartIndex = input.index();
Object root_0 = null;
Token LBRACE147=null;
Token RBRACE149=null;
HaxeParser.blockStmt_return blockStmt148 =null;
Object LBRACE147_tree=null;
Object RBRACE149_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_blockStmt=new RewriteRuleSubtreeStream(adaptor,"rule blockStmt");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return retval; }
// Haxe.g:256:17: ( LBRACE ( blockStmt )* RBRACE -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( blockStmt )* ) )
// Haxe.g:256:19: LBRACE ( blockStmt )* RBRACE
{
LBRACE147=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_block2584); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACE.add(LBRACE147);
// Haxe.g:256:26: ( blockStmt )*
loop43:
do {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==BANG||LA43_0==BREAK||LA43_0==CAST||(LA43_0 >= CHARLITERAL && LA43_0 <= CLASS)||LA43_0==CONTINUE||LA43_0==DO||LA43_0==EXTERN||LA43_0==FALSE||(LA43_0 >= FLOATNUM && LA43_0 <= FUNCTION)||(LA43_0 >= IDENTIFIER && LA43_0 <= IF)||LA43_0==INTLITERAL||(LA43_0 >= LBRACE && LA43_0 <= LBRACKET)||(LA43_0 >= LONGLITERAL && LA43_0 <= LPAREN)||(LA43_0 >= NEW && LA43_0 <= NULL)||LA43_0==PLUSPLUS||LA43_0==PRIVATE||LA43_0==RETURN||(LA43_0 >= STRINGLITERAL && LA43_0 <= SUB)||LA43_0==SUBSUB||(LA43_0 >= SUPER && LA43_0 <= THROW)||LA43_0==TILDE||(LA43_0 >= TRUE && LA43_0 <= TRY)||LA43_0==UNTYPED||LA43_0==VAR||LA43_0==WHILE) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// Haxe.g:256:27: blockStmt
{
pushFollow(FOLLOW_blockStmt_in_block2587);
blockStmt148=blockStmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockStmt.add(blockStmt148.getTree());
}
break;
default :
break loop43;
}
} while (true);
RBRACE149=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_block2591); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE149);
// AST REWRITE
// elements: blockStmt
// 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 = (Object)adaptor.nil();
// 256:46: -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( blockStmt )* )
{
// Haxe.g:256:49: ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( blockStmt )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new BlockScope(BLOCK_SCOPE, LBRACE147, RBRACE149)
, root_1);
// Haxe.g:256:93: ( blockStmt )*
while ( stream_blockStmt.hasNext() ) {
adaptor.addChild(root_1, stream_blockStmt.nextTree());
}
stream_blockStmt.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 32, block_StartIndex); }
}
return retval;
}
// $ANTLR end "block"
public static class blockStmt_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "blockStmt"
// Haxe.g:259:1: blockStmt : ( varDecl | classDecl | statement );
public final HaxeParser.blockStmt_return blockStmt() throws RecognitionException {
HaxeParser.blockStmt_return retval = new HaxeParser.blockStmt_return();
retval.start = input.LT(1);
int blockStmt_StartIndex = input.index();
Object root_0 = null;
HaxeParser.varDecl_return varDecl150 =null;
HaxeParser.classDecl_return classDecl151 =null;
HaxeParser.statement_return statement152 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return retval; }
// Haxe.g:259:17: ( varDecl | classDecl | statement )
int alt44=3;
switch ( input.LA(1) ) {
case VAR:
{
alt44=1;
}
break;
case CLASS:
case EXTERN:
case PRIVATE:
{
alt44=2;
}
break;
case BANG:
case BREAK:
case CAST:
case CHARLITERAL:
case CONTINUE:
case DO:
case FALSE:
case FLOATNUM:
case FOR:
case FUNCTION:
case IDENTIFIER:
case IF:
case INTLITERAL:
case LBRACE:
case LBRACKET:
case LONGLITERAL:
case LPAREN:
case NEW:
case NULL:
case PLUSPLUS:
case RETURN:
case STRINGLITERAL:
case SUB:
case SUBSUB:
case SUPER:
case SWITCH:
case THIS:
case THROW:
case TILDE:
case TRUE:
case TRY:
case UNTYPED:
case WHILE:
{
alt44=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// Haxe.g:259:19: varDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varDecl_in_blockStmt2635);
varDecl150=varDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDecl150.getTree());
}
break;
case 2 :
// Haxe.g:260:10: classDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_classDecl_in_blockStmt2646);
classDecl151=classDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classDecl151.getTree());
}
break;
case 3 :
// Haxe.g:261:10: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_blockStmt2657);
statement152=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement152.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 33, blockStmt_StartIndex); }
}
return retval;
}
// $ANTLR end "blockStmt"
public static class caseStmt_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "caseStmt"
// Haxe.g:264:1: caseStmt : ( CASE ^ exprList COLON ! statement | DEFAULT ^ COLON ! statement );
public final HaxeParser.caseStmt_return caseStmt() throws RecognitionException {
HaxeParser.caseStmt_return retval = new HaxeParser.caseStmt_return();
retval.start = input.LT(1);
int caseStmt_StartIndex = input.index();
Object root_0 = null;
Token CASE153=null;
Token COLON155=null;
Token DEFAULT157=null;
Token COLON158=null;
HaxeParser.exprList_return exprList154 =null;
HaxeParser.statement_return statement156 =null;
HaxeParser.statement_return statement159 =null;
Object CASE153_tree=null;
Object COLON155_tree=null;
Object DEFAULT157_tree=null;
Object COLON158_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return retval; }
// Haxe.g:264:17: ( CASE ^ exprList COLON ! statement | DEFAULT ^ COLON ! statement )
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==CASE) ) {
alt45=1;
}
else if ( (LA45_0==DEFAULT) ) {
alt45=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// Haxe.g:264:19: CASE ^ exprList COLON ! statement
{
root_0 = (Object)adaptor.nil();
CASE153=(Token)match(input,CASE,FOLLOW_CASE_in_caseStmt2681); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CASE153_tree =
(Object)adaptor.create(CASE153)
;
root_0 = (Object)adaptor.becomeRoot(CASE153_tree, root_0);
}
pushFollow(FOLLOW_exprList_in_caseStmt2684);
exprList154=exprList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exprList154.getTree());
COLON155=(Token)match(input,COLON,FOLLOW_COLON_in_caseStmt2686); if (state.failed) return retval;
pushFollow(FOLLOW_statement_in_caseStmt2689);
statement156=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement156.getTree());
}
break;
case 2 :
// Haxe.g:265:19: DEFAULT ^ COLON ! statement
{
root_0 = (Object)adaptor.nil();
DEFAULT157=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_caseStmt2709); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEFAULT157_tree =
(Object)adaptor.create(DEFAULT157)
;
root_0 = (Object)adaptor.becomeRoot(DEFAULT157_tree, root_0);
}
COLON158=(Token)match(input,COLON,FOLLOW_COLON_in_caseStmt2712); if (state.failed) return retval;
pushFollow(FOLLOW_statement_in_caseStmt2715);
statement159=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement159.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 34, caseStmt_StartIndex); }
}
return retval;
}
// $ANTLR end "caseStmt"
public static class catchStmt_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "catchStmt"
// Haxe.g:268:1: catchStmt : CATCH ^ LPAREN ! param RPAREN ! block ;
public final HaxeParser.catchStmt_return catchStmt() throws RecognitionException {
HaxeParser.catchStmt_return retval = new HaxeParser.catchStmt_return();
retval.start = input.LT(1);
int catchStmt_StartIndex = input.index();
Object root_0 = null;
Token CATCH160=null;
Token LPAREN161=null;
Token RPAREN163=null;
HaxeParser.param_return param162 =null;
HaxeParser.block_return block164 =null;
Object CATCH160_tree=null;
Object LPAREN161_tree=null;
Object RPAREN163_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return retval; }
// Haxe.g:268:17: ( CATCH ^ LPAREN ! param RPAREN ! block )
// Haxe.g:268:19: CATCH ^ LPAREN ! param RPAREN ! block
{
root_0 = (Object)adaptor.nil();
CATCH160=(Token)match(input,CATCH,FOLLOW_CATCH_in_catchStmt2750); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CATCH160_tree =
new HaxeTree(CATCH160)
;
root_0 = (Object)adaptor.becomeRoot(CATCH160_tree, root_0);
}
LPAREN161=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_catchStmt2756); if (state.failed) return retval;
pushFollow(FOLLOW_param_in_catchStmt2759);
param162=param();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, param162.getTree());
RPAREN163=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_catchStmt2761); if (state.failed) return retval;
pushFollow(FOLLOW_block_in_catchStmt2764);
block164=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, block164.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 35, catchStmt_StartIndex); }
}
return retval;
}
// $ANTLR end "catchStmt"
public static class exprList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "exprList"
// Haxe.g:272:1: exprList : expr ( COMMA ! expr )* ;
public final HaxeParser.exprList_return exprList() throws RecognitionException {
HaxeParser.exprList_return retval = new HaxeParser.exprList_return();
retval.start = input.LT(1);
int exprList_StartIndex = input.index();
Object root_0 = null;
Token COMMA166=null;
HaxeParser.expr_return expr165 =null;
HaxeParser.expr_return expr167 =null;
Object COMMA166_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return retval; }
// Haxe.g:272:17: ( expr ( COMMA ! expr )* )
// Haxe.g:272:19: expr ( COMMA ! expr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expr_in_exprList2802);
expr165=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr165.getTree());
// Haxe.g:272:24: ( COMMA ! expr )*
loop46:
do {
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==COMMA) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// Haxe.g:272:25: COMMA ! expr
{
COMMA166=(Token)match(input,COMMA,FOLLOW_COMMA_in_exprList2805); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_exprList2808);
expr167=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr167.getTree());
}
break;
default :
break loop46;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 36, exprList_StartIndex); }
}
return retval;
}
// $ANTLR end "exprList"
public static class expr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "expr"
// Haxe.g:275:1: expr : ( UNTYPED ^ assignExpr | assignExpr );
public final HaxeParser.expr_return expr() throws RecognitionException {
HaxeParser.expr_return retval = new HaxeParser.expr_return();
retval.start = input.LT(1);
int expr_StartIndex = input.index();
Object root_0 = null;
Token UNTYPED168=null;
HaxeParser.assignExpr_return assignExpr169 =null;
HaxeParser.assignExpr_return assignExpr170 =null;
Object UNTYPED168_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return retval; }
// Haxe.g:275:17: ( UNTYPED ^ assignExpr | assignExpr )
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==UNTYPED) ) {
alt47=1;
}
else if ( (LA47_0==BANG||LA47_0==CAST||LA47_0==CHARLITERAL||LA47_0==FALSE||LA47_0==FLOATNUM||LA47_0==FUNCTION||LA47_0==IDENTIFIER||LA47_0==INTLITERAL||(LA47_0 >= LBRACE && LA47_0 <= LBRACKET)||(LA47_0 >= LONGLITERAL && LA47_0 <= LPAREN)||(LA47_0 >= NEW && LA47_0 <= NULL)||LA47_0==PLUSPLUS||(LA47_0 >= STRINGLITERAL && LA47_0 <= SUB)||LA47_0==SUBSUB||LA47_0==SUPER||LA47_0==THIS||LA47_0==TILDE||LA47_0==TRUE) ) {
alt47=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// Haxe.g:275:19: UNTYPED ^ assignExpr
{
root_0 = (Object)adaptor.nil();
UNTYPED168=(Token)match(input,UNTYPED,FOLLOW_UNTYPED_in_expr2850); if (state.failed) return retval;
if ( state.backtracking==0 ) {
UNTYPED168_tree =
(Object)adaptor.create(UNTYPED168)
;
root_0 = (Object)adaptor.becomeRoot(UNTYPED168_tree, root_0);
}
pushFollow(FOLLOW_assignExpr_in_expr2853);
assignExpr169=assignExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignExpr169.getTree());
}
break;
case 2 :
// Haxe.g:276:19: assignExpr
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignExpr_in_expr2873);
assignExpr170=assignExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignExpr170.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 37, expr_StartIndex); }
}
return retval;
}
// $ANTLR end "expr"
public static class assignExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "assignExpr"
// Haxe.g:279:1: assignExpr : ternaryExpr ( assignOp ^ ternaryExpr )? ;
public final HaxeParser.assignExpr_return assignExpr() throws RecognitionException {
HaxeParser.assignExpr_return retval = new HaxeParser.assignExpr_return();
retval.start = input.LT(1);
int assignExpr_StartIndex = input.index();
Object root_0 = null;
HaxeParser.ternaryExpr_return ternaryExpr171 =null;
HaxeParser.assignOp_return assignOp172 =null;
HaxeParser.ternaryExpr_return ternaryExpr173 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return retval; }
// Haxe.g:279:17: ( ternaryExpr ( assignOp ^ ternaryExpr )? )
// Haxe.g:279:19: ternaryExpr ( assignOp ^ ternaryExpr )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ternaryExpr_in_assignExpr2903);
ternaryExpr171=ternaryExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ternaryExpr171.getTree());
// Haxe.g:279:31: ( assignOp ^ ternaryExpr )?
int alt48=2;
switch ( input.LA(1) ) {
case EQ:
{
int LA48_1 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case PLUSEQ:
{
int LA48_2 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case SUBEQ:
{
int LA48_3 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case STAREQ:
{
int LA48_4 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case SLASHEQ:
{
int LA48_5 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case PERCENTEQ:
{
int LA48_6 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case AMPEQ:
{
int LA48_7 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case BAREQ:
{
int LA48_8 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case CARETEQ:
{
int LA48_9 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case LTLTEQ:
{
int LA48_10 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case GTGTEQ:
{
int LA48_11 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
case GTGTGTEQ:
{
int LA48_12 = input.LA(2);
if ( (synpred79_Haxe()) ) {
alt48=1;
}
}
break;
}
switch (alt48) {
case 1 :
// Haxe.g:279:32: assignOp ^ ternaryExpr
{
pushFollow(FOLLOW_assignOp_in_assignExpr2906);
assignOp172=assignOp();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(assignOp172.getTree(), root_0);
pushFollow(FOLLOW_ternaryExpr_in_assignExpr2909);
ternaryExpr173=ternaryExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ternaryExpr173.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 38, assignExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "assignExpr"
public static class ternaryExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "ternaryExpr"
// Haxe.g:282:1: ternaryExpr : logicOrExpr ( QUES ^ expr COLON ! ternaryExpr )? ;
public final HaxeParser.ternaryExpr_return ternaryExpr() throws RecognitionException {
HaxeParser.ternaryExpr_return retval = new HaxeParser.ternaryExpr_return();
retval.start = input.LT(1);
int ternaryExpr_StartIndex = input.index();
Object root_0 = null;
Token QUES175=null;
Token COLON177=null;
HaxeParser.logicOrExpr_return logicOrExpr174 =null;
HaxeParser.expr_return expr176 =null;
HaxeParser.ternaryExpr_return ternaryExpr178 =null;
Object QUES175_tree=null;
Object COLON177_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return retval; }
// Haxe.g:282:17: ( logicOrExpr ( QUES ^ expr COLON ! ternaryExpr )? )
// Haxe.g:282:19: logicOrExpr ( QUES ^ expr COLON ! ternaryExpr )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicOrExpr_in_ternaryExpr2940);
logicOrExpr174=logicOrExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, logicOrExpr174.getTree());
// Haxe.g:282:31: ( QUES ^ expr COLON ! ternaryExpr )?
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==QUES) ) {
int LA49_1 = input.LA(2);
if ( (synpred80_Haxe()) ) {
alt49=1;
}
}
switch (alt49) {
case 1 :
// Haxe.g:282:32: QUES ^ expr COLON ! ternaryExpr
{
QUES175=(Token)match(input,QUES,FOLLOW_QUES_in_ternaryExpr2943); if (state.failed) return retval;
if ( state.backtracking==0 ) {
QUES175_tree =
(Object)adaptor.create(QUES175)
;
root_0 = (Object)adaptor.becomeRoot(QUES175_tree, root_0);
}
pushFollow(FOLLOW_expr_in_ternaryExpr2946);
expr176=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr176.getTree());
COLON177=(Token)match(input,COLON,FOLLOW_COLON_in_ternaryExpr2948); if (state.failed) return retval;
pushFollow(FOLLOW_ternaryExpr_in_ternaryExpr2951);
ternaryExpr178=ternaryExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ternaryExpr178.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 39, ternaryExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "ternaryExpr"
public static class logicOrExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "logicOrExpr"
// Haxe.g:285:1: logicOrExpr : logicAndExpr ( BARBAR ^ logicAndExpr )* ;
public final HaxeParser.logicOrExpr_return logicOrExpr() throws RecognitionException {
HaxeParser.logicOrExpr_return retval = new HaxeParser.logicOrExpr_return();
retval.start = input.LT(1);
int logicOrExpr_StartIndex = input.index();
Object root_0 = null;
Token BARBAR180=null;
HaxeParser.logicAndExpr_return logicAndExpr179 =null;
HaxeParser.logicAndExpr_return logicAndExpr181 =null;
Object BARBAR180_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return retval; }
// Haxe.g:285:17: ( logicAndExpr ( BARBAR ^ logicAndExpr )* )
// Haxe.g:285:19: logicAndExpr ( BARBAR ^ logicAndExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logicAndExpr_in_logicOrExpr2982);
logicAndExpr179=logicAndExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, logicAndExpr179.getTree());
// Haxe.g:285:32: ( BARBAR ^ logicAndExpr )*
loop50:
do {
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==BARBAR) ) {
int LA50_2 = input.LA(2);
if ( (synpred81_Haxe()) ) {
alt50=1;
}
}
switch (alt50) {
case 1 :
// Haxe.g:285:33: BARBAR ^ logicAndExpr
{
BARBAR180=(Token)match(input,BARBAR,FOLLOW_BARBAR_in_logicOrExpr2985); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BARBAR180_tree =
new Binary(BARBAR180)
;
root_0 = (Object)adaptor.becomeRoot(BARBAR180_tree, root_0);
}
pushFollow(FOLLOW_logicAndExpr_in_logicOrExpr2991);
logicAndExpr181=logicAndExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, logicAndExpr181.getTree());
}
break;
default :
break loop50;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 40, logicOrExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "logicOrExpr"
public static class logicAndExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "logicAndExpr"
// Haxe.g:288:1: logicAndExpr : iterExpr ( AMPAMP ^ iterExpr )* ;
public final HaxeParser.logicAndExpr_return logicAndExpr() throws RecognitionException {
HaxeParser.logicAndExpr_return retval = new HaxeParser.logicAndExpr_return();
retval.start = input.LT(1);
int logicAndExpr_StartIndex = input.index();
Object root_0 = null;
Token AMPAMP183=null;
HaxeParser.iterExpr_return iterExpr182 =null;
HaxeParser.iterExpr_return iterExpr184 =null;
Object AMPAMP183_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return retval; }
// Haxe.g:288:17: ( iterExpr ( AMPAMP ^ iterExpr )* )
// Haxe.g:288:19: iterExpr ( AMPAMP ^ iterExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_iterExpr_in_logicAndExpr3025);
iterExpr182=iterExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, iterExpr182.getTree());
// Haxe.g:288:27: ( AMPAMP ^ iterExpr )*
loop51:
do {
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==AMPAMP) ) {
int LA51_2 = input.LA(2);
if ( (synpred82_Haxe()) ) {
alt51=1;
}
}
switch (alt51) {
case 1 :
// Haxe.g:288:28: AMPAMP ^ iterExpr
{
AMPAMP183=(Token)match(input,AMPAMP,FOLLOW_AMPAMP_in_logicAndExpr3027); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AMPAMP183_tree =
new Binary(AMPAMP183)
;
root_0 = (Object)adaptor.becomeRoot(AMPAMP183_tree, root_0);
}
pushFollow(FOLLOW_iterExpr_in_logicAndExpr3033);
iterExpr184=iterExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, iterExpr184.getTree());
}
break;
default :
break loop51;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 41, logicAndExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "logicAndExpr"
public static class iterExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "iterExpr"
// Haxe.g:291:1: iterExpr : cmpExpr ( ELLIPSIS ^ cmpExpr )? ;
public final HaxeParser.iterExpr_return iterExpr() throws RecognitionException {
HaxeParser.iterExpr_return retval = new HaxeParser.iterExpr_return();
retval.start = input.LT(1);
int iterExpr_StartIndex = input.index();
Object root_0 = null;
Token ELLIPSIS186=null;
HaxeParser.cmpExpr_return cmpExpr185 =null;
HaxeParser.cmpExpr_return cmpExpr187 =null;
Object ELLIPSIS186_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return retval; }
// Haxe.g:291:17: ( cmpExpr ( ELLIPSIS ^ cmpExpr )? )
// Haxe.g:291:19: cmpExpr ( ELLIPSIS ^ cmpExpr )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_cmpExpr_in_iterExpr3083);
cmpExpr185=cmpExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, cmpExpr185.getTree());
// Haxe.g:291:27: ( ELLIPSIS ^ cmpExpr )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==ELLIPSIS) ) {
int LA52_1 = input.LA(2);
if ( (synpred83_Haxe()) ) {
alt52=1;
}
}
switch (alt52) {
case 1 :
// Haxe.g:291:28: ELLIPSIS ^ cmpExpr
{
ELLIPSIS186=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_iterExpr3086); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELLIPSIS186_tree =
new Binary(ELLIPSIS186)
;
root_0 = (Object)adaptor.becomeRoot(ELLIPSIS186_tree, root_0);
}
pushFollow(FOLLOW_cmpExpr_in_iterExpr3092);
cmpExpr187=cmpExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, cmpExpr187.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 42, iterExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "iterExpr"
public static class cmpExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "cmpExpr"
// Haxe.g:294:1: cmpExpr : bitExpr ( ( EQEQ ^| BANGEQ ^| GTEQ ^| LTEQ ^| GT ^| LT ^) bitExpr )* ;
public final HaxeParser.cmpExpr_return cmpExpr() throws RecognitionException {
HaxeParser.cmpExpr_return retval = new HaxeParser.cmpExpr_return();
retval.start = input.LT(1);
int cmpExpr_StartIndex = input.index();
Object root_0 = null;
Token EQEQ189=null;
Token BANGEQ190=null;
Token GTEQ191=null;
Token LTEQ192=null;
Token GT193=null;
Token LT194=null;
HaxeParser.bitExpr_return bitExpr188 =null;
HaxeParser.bitExpr_return bitExpr195 =null;
Object EQEQ189_tree=null;
Object BANGEQ190_tree=null;
Object GTEQ191_tree=null;
Object LTEQ192_tree=null;
Object GT193_tree=null;
Object LT194_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return retval; }
// Haxe.g:294:17: ( bitExpr ( ( EQEQ ^| BANGEQ ^| GTEQ ^| LTEQ ^| GT ^| LT ^) bitExpr )* )
// Haxe.g:294:19: bitExpr ( ( EQEQ ^| BANGEQ ^| GTEQ ^| LTEQ ^| GT ^| LT ^) bitExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bitExpr_in_cmpExpr3131);
bitExpr188=bitExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bitExpr188.getTree());
// Haxe.g:294:27: ( ( EQEQ ^| BANGEQ ^| GTEQ ^| LTEQ ^| GT ^| LT ^) bitExpr )*
loop54:
do {
int alt54=2;
switch ( input.LA(1) ) {
case EQEQ:
{
int LA54_2 = input.LA(2);
if ( (synpred89_Haxe()) ) {
alt54=1;
}
}
break;
case BANGEQ:
{
int LA54_3 = input.LA(2);
if ( (synpred89_Haxe()) ) {
alt54=1;
}
}
break;
case GTEQ:
{
int LA54_4 = input.LA(2);
if ( (synpred89_Haxe()) ) {
alt54=1;
}
}
break;
case LTEQ:
{
int LA54_5 = input.LA(2);
if ( (synpred89_Haxe()) ) {
alt54=1;
}
}
break;
case GT:
{
int LA54_6 = input.LA(2);
if ( (synpred89_Haxe()) ) {
alt54=1;
}
}
break;
case LT:
{
int LA54_7 = input.LA(2);
if ( (synpred89_Haxe()) ) {
alt54=1;
}
}
break;
}
switch (alt54) {
case 1 :
// Haxe.g:294:28: ( EQEQ ^| BANGEQ ^| GTEQ ^| LTEQ ^| GT ^| LT ^) bitExpr
{
// Haxe.g:294:28: ( EQEQ ^| BANGEQ ^| GTEQ ^| LTEQ ^| GT ^| LT ^)
int alt53=6;
switch ( input.LA(1) ) {
case EQEQ:
{
alt53=1;
}
break;
case BANGEQ:
{
alt53=2;
}
break;
case GTEQ:
{
alt53=3;
}
break;
case LTEQ:
{
alt53=4;
}
break;
case GT:
{
alt53=5;
}
break;
case LT:
{
alt53=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// Haxe.g:295:23: EQEQ ^
{
EQEQ189=(Token)match(input,EQEQ,FOLLOW_EQEQ_in_cmpExpr3158); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EQEQ189_tree =
new Binary(EQEQ189)
;
root_0 = (Object)adaptor.becomeRoot(EQEQ189_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:296:23: BANGEQ ^
{
BANGEQ190=(Token)match(input,BANGEQ,FOLLOW_BANGEQ_in_cmpExpr3187); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BANGEQ190_tree =
new Binary(BANGEQ190)
;
root_0 = (Object)adaptor.becomeRoot(BANGEQ190_tree, root_0);
}
}
break;
case 3 :
// Haxe.g:297:23: GTEQ ^
{
GTEQ191=(Token)match(input,GTEQ,FOLLOW_GTEQ_in_cmpExpr3216); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GTEQ191_tree =
new Binary(GTEQ191)
;
root_0 = (Object)adaptor.becomeRoot(GTEQ191_tree, root_0);
}
}
break;
case 4 :
// Haxe.g:298:23: LTEQ ^
{
LTEQ192=(Token)match(input,LTEQ,FOLLOW_LTEQ_in_cmpExpr3245); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LTEQ192_tree =
new Binary(LTEQ192)
;
root_0 = (Object)adaptor.becomeRoot(LTEQ192_tree, root_0);
}
}
break;
case 5 :
// Haxe.g:299:23: GT ^
{
GT193=(Token)match(input,GT,FOLLOW_GT_in_cmpExpr3274); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GT193_tree =
new Binary(GT193)
;
root_0 = (Object)adaptor.becomeRoot(GT193_tree, root_0);
}
}
break;
case 6 :
// Haxe.g:300:23: LT ^
{
LT194=(Token)match(input,LT,FOLLOW_LT_in_cmpExpr3303); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LT194_tree =
new Binary(LT194)
;
root_0 = (Object)adaptor.becomeRoot(LT194_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_bitExpr_in_cmpExpr3310);
bitExpr195=bitExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bitExpr195.getTree());
}
break;
default :
break loop54;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 43, cmpExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "cmpExpr"
public static class bitExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "bitExpr"
// Haxe.g:303:1: bitExpr : shiftExpr ( ( BAR ^| AMP ^| CARET ^) shiftExpr )* ;
public final HaxeParser.bitExpr_return bitExpr() throws RecognitionException {
HaxeParser.bitExpr_return retval = new HaxeParser.bitExpr_return();
retval.start = input.LT(1);
int bitExpr_StartIndex = input.index();
Object root_0 = null;
Token BAR197=null;
Token AMP198=null;
Token CARET199=null;
HaxeParser.shiftExpr_return shiftExpr196 =null;
HaxeParser.shiftExpr_return shiftExpr200 =null;
Object BAR197_tree=null;
Object AMP198_tree=null;
Object CARET199_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return retval; }
// Haxe.g:303:17: ( shiftExpr ( ( BAR ^| AMP ^| CARET ^) shiftExpr )* )
// Haxe.g:303:19: shiftExpr ( ( BAR ^| AMP ^| CARET ^) shiftExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_shiftExpr_in_bitExpr3349);
shiftExpr196=shiftExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, shiftExpr196.getTree());
// Haxe.g:303:29: ( ( BAR ^| AMP ^| CARET ^) shiftExpr )*
loop56:
do {
int alt56=2;
switch ( input.LA(1) ) {
case BAR:
{
int LA56_2 = input.LA(2);
if ( (synpred92_Haxe()) ) {
alt56=1;
}
}
break;
case AMP:
{
int LA56_3 = input.LA(2);
if ( (synpred92_Haxe()) ) {
alt56=1;
}
}
break;
case CARET:
{
int LA56_4 = input.LA(2);
if ( (synpred92_Haxe()) ) {
alt56=1;
}
}
break;
}
switch (alt56) {
case 1 :
// Haxe.g:303:30: ( BAR ^| AMP ^| CARET ^) shiftExpr
{
// Haxe.g:303:30: ( BAR ^| AMP ^| CARET ^)
int alt55=3;
switch ( input.LA(1) ) {
case BAR:
{
alt55=1;
}
break;
case AMP:
{
alt55=2;
}
break;
case CARET:
{
alt55=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
// Haxe.g:304:23: BAR ^
{
BAR197=(Token)match(input,BAR,FOLLOW_BAR_in_bitExpr3376); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BAR197_tree =
new Binary(BAR197)
;
root_0 = (Object)adaptor.becomeRoot(BAR197_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:305:23: AMP ^
{
AMP198=(Token)match(input,AMP,FOLLOW_AMP_in_bitExpr3405); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AMP198_tree =
new Binary(AMP198)
;
root_0 = (Object)adaptor.becomeRoot(AMP198_tree, root_0);
}
}
break;
case 3 :
// Haxe.g:306:23: CARET ^
{
CARET199=(Token)match(input,CARET,FOLLOW_CARET_in_bitExpr3434); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CARET199_tree =
new Binary(CARET199)
;
root_0 = (Object)adaptor.becomeRoot(CARET199_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_shiftExpr_in_bitExpr3441);
shiftExpr200=shiftExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, shiftExpr200.getTree());
}
break;
default :
break loop56;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 44, bitExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "bitExpr"
public static class shiftExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "shiftExpr"
// Haxe.g:309:1: shiftExpr : addExpr ( ( LTLT ^| GTGT ^| GTGTGT ^) addExpr )* ;
public final HaxeParser.shiftExpr_return shiftExpr() throws RecognitionException {
HaxeParser.shiftExpr_return retval = new HaxeParser.shiftExpr_return();
retval.start = input.LT(1);
int shiftExpr_StartIndex = input.index();
Object root_0 = null;
Token LTLT202=null;
Token GTGT203=null;
Token GTGTGT204=null;
HaxeParser.addExpr_return addExpr201 =null;
HaxeParser.addExpr_return addExpr205 =null;
Object LTLT202_tree=null;
Object GTGT203_tree=null;
Object GTGTGT204_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return retval; }
// Haxe.g:309:17: ( addExpr ( ( LTLT ^| GTGT ^| GTGTGT ^) addExpr )* )
// Haxe.g:309:19: addExpr ( ( LTLT ^| GTGT ^| GTGTGT ^) addExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_addExpr_in_shiftExpr3474);
addExpr201=addExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, addExpr201.getTree());
// Haxe.g:309:27: ( ( LTLT ^| GTGT ^| GTGTGT ^) addExpr )*
loop58:
do {
int alt58=2;
switch ( input.LA(1) ) {
case LTLT:
{
int LA58_2 = input.LA(2);
if ( (synpred95_Haxe()) ) {
alt58=1;
}
}
break;
case GTGT:
{
int LA58_3 = input.LA(2);
if ( (synpred95_Haxe()) ) {
alt58=1;
}
}
break;
case GTGTGT:
{
int LA58_4 = input.LA(2);
if ( (synpred95_Haxe()) ) {
alt58=1;
}
}
break;
}
switch (alt58) {
case 1 :
// Haxe.g:309:28: ( LTLT ^| GTGT ^| GTGTGT ^) addExpr
{
// Haxe.g:309:28: ( LTLT ^| GTGT ^| GTGTGT ^)
int alt57=3;
switch ( input.LA(1) ) {
case LTLT:
{
alt57=1;
}
break;
case GTGT:
{
alt57=2;
}
break;
case GTGTGT:
{
alt57=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 57, 0, input);
throw nvae;
}
switch (alt57) {
case 1 :
// Haxe.g:310:23: LTLT ^
{
LTLT202=(Token)match(input,LTLT,FOLLOW_LTLT_in_shiftExpr3501); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LTLT202_tree =
new Binary(LTLT202)
;
root_0 = (Object)adaptor.becomeRoot(LTLT202_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:311:23: GTGT ^
{
GTGT203=(Token)match(input,GTGT,FOLLOW_GTGT_in_shiftExpr3530); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GTGT203_tree =
new Binary(GTGT203)
;
root_0 = (Object)adaptor.becomeRoot(GTGT203_tree, root_0);
}
}
break;
case 3 :
// Haxe.g:312:23: GTGTGT ^
{
GTGTGT204=(Token)match(input,GTGTGT,FOLLOW_GTGTGT_in_shiftExpr3559); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GTGTGT204_tree =
new Binary(GTGTGT204)
;
root_0 = (Object)adaptor.becomeRoot(GTGTGT204_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_addExpr_in_shiftExpr3566);
addExpr205=addExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, addExpr205.getTree());
}
break;
default :
break loop58;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 45, shiftExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "shiftExpr"
public static class addExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "addExpr"
// Haxe.g:315:1: addExpr : multExpr ( ( PLUS ^| SUB ^) multExpr )* ;
public final HaxeParser.addExpr_return addExpr() throws RecognitionException {
HaxeParser.addExpr_return retval = new HaxeParser.addExpr_return();
retval.start = input.LT(1);
int addExpr_StartIndex = input.index();
Object root_0 = null;
Token PLUS207=null;
Token SUB208=null;
HaxeParser.multExpr_return multExpr206 =null;
HaxeParser.multExpr_return multExpr209 =null;
Object PLUS207_tree=null;
Object SUB208_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return retval; }
// Haxe.g:315:17: ( multExpr ( ( PLUS ^| SUB ^) multExpr )* )
// Haxe.g:315:19: multExpr ( ( PLUS ^| SUB ^) multExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_multExpr_in_addExpr3601);
multExpr206=multExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, multExpr206.getTree());
// Haxe.g:315:28: ( ( PLUS ^| SUB ^) multExpr )*
loop60:
do {
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==PLUS) ) {
int LA60_2 = input.LA(2);
if ( (synpred97_Haxe()) ) {
alt60=1;
}
}
else if ( (LA60_0==SUB) ) {
int LA60_3 = input.LA(2);
if ( (synpred97_Haxe()) ) {
alt60=1;
}
}
switch (alt60) {
case 1 :
// Haxe.g:315:29: ( PLUS ^| SUB ^) multExpr
{
// Haxe.g:315:29: ( PLUS ^| SUB ^)
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==PLUS) ) {
alt59=1;
}
else if ( (LA59_0==SUB) ) {
alt59=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 59, 0, input);
throw nvae;
}
switch (alt59) {
case 1 :
// Haxe.g:316:23: PLUS ^
{
PLUS207=(Token)match(input,PLUS,FOLLOW_PLUS_in_addExpr3628); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUS207_tree =
new Binary(PLUS207)
;
root_0 = (Object)adaptor.becomeRoot(PLUS207_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:317:23: SUB ^
{
SUB208=(Token)match(input,SUB,FOLLOW_SUB_in_addExpr3657); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SUB208_tree =
new Binary(SUB208)
;
root_0 = (Object)adaptor.becomeRoot(SUB208_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_multExpr_in_addExpr3664);
multExpr209=multExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, multExpr209.getTree());
}
break;
default :
break loop60;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 46, addExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "addExpr"
public static class multExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "multExpr"
// Haxe.g:320:1: multExpr : unarExpr ( ( STAR ^| SLASH ^| PERCENT ^) unarExpr )* ;
public final HaxeParser.multExpr_return multExpr() throws RecognitionException {
HaxeParser.multExpr_return retval = new HaxeParser.multExpr_return();
retval.start = input.LT(1);
int multExpr_StartIndex = input.index();
Object root_0 = null;
Token STAR211=null;
Token SLASH212=null;
Token PERCENT213=null;
HaxeParser.unarExpr_return unarExpr210 =null;
HaxeParser.unarExpr_return unarExpr214 =null;
Object STAR211_tree=null;
Object SLASH212_tree=null;
Object PERCENT213_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return retval; }
// Haxe.g:320:17: ( unarExpr ( ( STAR ^| SLASH ^| PERCENT ^) unarExpr )* )
// Haxe.g:320:19: unarExpr ( ( STAR ^| SLASH ^| PERCENT ^) unarExpr )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unarExpr_in_multExpr3703);
unarExpr210=unarExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unarExpr210.getTree());
// Haxe.g:320:28: ( ( STAR ^| SLASH ^| PERCENT ^) unarExpr )*
loop62:
do {
int alt62=2;
switch ( input.LA(1) ) {
case STAR:
{
int LA62_2 = input.LA(2);
if ( (synpred100_Haxe()) ) {
alt62=1;
}
}
break;
case SLASH:
{
int LA62_3 = input.LA(2);
if ( (synpred100_Haxe()) ) {
alt62=1;
}
}
break;
case PERCENT:
{
int LA62_4 = input.LA(2);
if ( (synpred100_Haxe()) ) {
alt62=1;
}
}
break;
}
switch (alt62) {
case 1 :
// Haxe.g:320:29: ( STAR ^| SLASH ^| PERCENT ^) unarExpr
{
// Haxe.g:320:29: ( STAR ^| SLASH ^| PERCENT ^)
int alt61=3;
switch ( input.LA(1) ) {
case STAR:
{
alt61=1;
}
break;
case SLASH:
{
alt61=2;
}
break;
case PERCENT:
{
alt61=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
// Haxe.g:321:23: STAR ^
{
STAR211=(Token)match(input,STAR,FOLLOW_STAR_in_multExpr3730); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR211_tree =
new Binary(STAR211)
;
root_0 = (Object)adaptor.becomeRoot(STAR211_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:322:23: SLASH ^
{
SLASH212=(Token)match(input,SLASH,FOLLOW_SLASH_in_multExpr3759); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SLASH212_tree =
new Binary(SLASH212)
;
root_0 = (Object)adaptor.becomeRoot(SLASH212_tree, root_0);
}
}
break;
case 3 :
// Haxe.g:323:23: PERCENT ^
{
PERCENT213=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_multExpr3788); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PERCENT213_tree =
new Binary(PERCENT213)
;
root_0 = (Object)adaptor.becomeRoot(PERCENT213_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_unarExpr_in_multExpr3795);
unarExpr214=unarExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unarExpr214.getTree());
}
break;
default :
break loop62;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 47, multExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "multExpr"
public static class unarExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "unarExpr"
// Haxe.g:326:1: unarExpr : ( ( SUB ^| SUBSUB ^| PLUSPLUS ^| BANG ^| TILDE ^) prefixExpr | prefixExpr ( PLUSPLUS ^| SUBSUB ^)? );
public final HaxeParser.unarExpr_return unarExpr() throws RecognitionException {
HaxeParser.unarExpr_return retval = new HaxeParser.unarExpr_return();
retval.start = input.LT(1);
int unarExpr_StartIndex = input.index();
Object root_0 = null;
Token SUB215=null;
Token SUBSUB216=null;
Token PLUSPLUS217=null;
Token BANG218=null;
Token TILDE219=null;
Token PLUSPLUS222=null;
Token SUBSUB223=null;
HaxeParser.prefixExpr_return prefixExpr220 =null;
HaxeParser.prefixExpr_return prefixExpr221 =null;
Object SUB215_tree=null;
Object SUBSUB216_tree=null;
Object PLUSPLUS217_tree=null;
Object BANG218_tree=null;
Object TILDE219_tree=null;
Object PLUSPLUS222_tree=null;
Object SUBSUB223_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return retval; }
// Haxe.g:326:17: ( ( SUB ^| SUBSUB ^| PLUSPLUS ^| BANG ^| TILDE ^) prefixExpr | prefixExpr ( PLUSPLUS ^| SUBSUB ^)? )
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==BANG||LA65_0==PLUSPLUS||LA65_0==SUB||LA65_0==SUBSUB||LA65_0==TILDE) ) {
alt65=1;
}
else if ( (LA65_0==CAST||LA65_0==CHARLITERAL||LA65_0==FALSE||LA65_0==FLOATNUM||LA65_0==FUNCTION||LA65_0==IDENTIFIER||LA65_0==INTLITERAL||(LA65_0 >= LBRACE && LA65_0 <= LBRACKET)||(LA65_0 >= LONGLITERAL && LA65_0 <= LPAREN)||(LA65_0 >= NEW && LA65_0 <= NULL)||LA65_0==STRINGLITERAL||LA65_0==SUPER||LA65_0==THIS||LA65_0==TRUE) ) {
alt65=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// Haxe.g:326:19: ( SUB ^| SUBSUB ^| PLUSPLUS ^| BANG ^| TILDE ^) prefixExpr
{
root_0 = (Object)adaptor.nil();
// Haxe.g:326:19: ( SUB ^| SUBSUB ^| PLUSPLUS ^| BANG ^| TILDE ^)
int alt63=5;
switch ( input.LA(1) ) {
case SUB:
{
alt63=1;
}
break;
case SUBSUB:
{
alt63=2;
}
break;
case PLUSPLUS:
{
alt63=3;
}
break;
case BANG:
{
alt63=4;
}
break;
case TILDE:
{
alt63=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// Haxe.g:327:13: SUB ^
{
SUB215=(Token)match(input,SUB,FOLLOW_SUB_in_unarExpr3843); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SUB215_tree =
new Unary(SUB215)
;
root_0 = (Object)adaptor.becomeRoot(SUB215_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:328:13: SUBSUB ^
{
SUBSUB216=(Token)match(input,SUBSUB,FOLLOW_SUBSUB_in_unarExpr3862); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SUBSUB216_tree =
new Unary(SUBSUB216)
;
root_0 = (Object)adaptor.becomeRoot(SUBSUB216_tree, root_0);
}
}
break;
case 3 :
// Haxe.g:329:13: PLUSPLUS ^
{
PLUSPLUS217=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_unarExpr3881); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUSPLUS217_tree =
new Unary(PLUSPLUS217)
;
root_0 = (Object)adaptor.becomeRoot(PLUSPLUS217_tree, root_0);
}
}
break;
case 4 :
// Haxe.g:330:13: BANG ^
{
BANG218=(Token)match(input,BANG,FOLLOW_BANG_in_unarExpr3900); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BANG218_tree =
new Unary(BANG218)
;
root_0 = (Object)adaptor.becomeRoot(BANG218_tree, root_0);
}
}
break;
case 5 :
// Haxe.g:331:13: TILDE ^
{
TILDE219=(Token)match(input,TILDE,FOLLOW_TILDE_in_unarExpr3919); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TILDE219_tree =
new Unary(TILDE219)
;
root_0 = (Object)adaptor.becomeRoot(TILDE219_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_prefixExpr_in_unarExpr3926);
prefixExpr220=prefixExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, prefixExpr220.getTree());
}
break;
case 2 :
// Haxe.g:332:19: prefixExpr ( PLUSPLUS ^| SUBSUB ^)?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_prefixExpr_in_unarExpr3946);
prefixExpr221=prefixExpr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, prefixExpr221.getTree());
// Haxe.g:332:30: ( PLUSPLUS ^| SUBSUB ^)?
int alt64=3;
int LA64_0 = input.LA(1);
if ( (LA64_0==PLUSPLUS) ) {
int LA64_1 = input.LA(2);
if ( (synpred106_Haxe()) ) {
alt64=1;
}
}
else if ( (LA64_0==SUBSUB) ) {
int LA64_2 = input.LA(2);
if ( (synpred107_Haxe()) ) {
alt64=2;
}
}
switch (alt64) {
case 1 :
// Haxe.g:332:31: PLUSPLUS ^
{
PLUSPLUS222=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_unarExpr3949); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUSPLUS222_tree =
new Unary(PLUSPLUS222)
;
root_0 = (Object)adaptor.becomeRoot(PLUSPLUS222_tree, root_0);
}
}
break;
case 2 :
// Haxe.g:332:48: SUBSUB ^
{
SUBSUB223=(Token)match(input,SUBSUB,FOLLOW_SUBSUB_in_unarExpr3955); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SUBSUB223_tree =
new Unary(SUBSUB223)
;
root_0 = (Object)adaptor.becomeRoot(SUBSUB223_tree, root_0);
}
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 48, unarExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "unarExpr"
public static class prefixExpr_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "prefixExpr"
// Haxe.g:335:1: prefixExpr : ( NEW ^ type LPAREN ! ( exprList )? RPAREN !| CAST ^ LPAREN ! expr ( COMMA ! funcType )? RPAREN !| methodCallOrSlice );
public final HaxeParser.prefixExpr_return prefixExpr() throws RecognitionException {
HaxeParser.prefixExpr_return retval = new HaxeParser.prefixExpr_return();
retval.start = input.LT(1);
int prefixExpr_StartIndex = input.index();
Object root_0 = null;
Token NEW224=null;
Token LPAREN226=null;
Token RPAREN228=null;
Token CAST229=null;
Token LPAREN230=null;
Token COMMA232=null;
Token RPAREN234=null;
HaxeParser.type_return type225 =null;
HaxeParser.exprList_return exprList227 =null;
HaxeParser.expr_return expr231 =null;
HaxeParser.funcType_return funcType233 =null;
HaxeParser.methodCallOrSlice_return methodCallOrSlice235 =null;
Object NEW224_tree=null;
Object LPAREN226_tree=null;
Object RPAREN228_tree=null;
Object CAST229_tree=null;
Object LPAREN230_tree=null;
Object COMMA232_tree=null;
Object RPAREN234_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return retval; }
// Haxe.g:335:17: ( NEW ^ type LPAREN ! ( exprList )? RPAREN !| CAST ^ LPAREN ! expr ( COMMA ! funcType )? RPAREN !| methodCallOrSlice )
int alt68=3;
switch ( input.LA(1) ) {
case NEW:
{
alt68=1;
}
break;
case CAST:
{
alt68=2;
}
break;
case CHARLITERAL:
case FALSE:
case FLOATNUM:
case FUNCTION:
case IDENTIFIER:
case INTLITERAL:
case LBRACE:
case LBRACKET:
case LONGLITERAL:
case LPAREN:
case NULL:
case STRINGLITERAL:
case SUPER:
case THIS:
case TRUE:
{
alt68=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 68, 0, input);
throw nvae;
}
switch (alt68) {
case 1 :
// Haxe.g:335:19: NEW ^ type LPAREN ! ( exprList )? RPAREN !
{
root_0 = (Object)adaptor.nil();
NEW224=(Token)match(input,NEW,FOLLOW_NEW_in_prefixExpr3997); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEW224_tree =
new NewNode(NEW224)
;
root_0 = (Object)adaptor.becomeRoot(NEW224_tree, root_0);
}
pushFollow(FOLLOW_type_in_prefixExpr4003);
type225=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type225.getTree());
LPAREN226=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_prefixExpr4005); if (state.failed) return retval;
// Haxe.g:335:46: ( exprList )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==BANG||LA66_0==CAST||LA66_0==CHARLITERAL||LA66_0==FALSE||LA66_0==FLOATNUM||LA66_0==FUNCTION||LA66_0==IDENTIFIER||LA66_0==INTLITERAL||(LA66_0 >= LBRACE && LA66_0 <= LBRACKET)||(LA66_0 >= LONGLITERAL && LA66_0 <= LPAREN)||(LA66_0 >= NEW && LA66_0 <= NULL)||LA66_0==PLUSPLUS||(LA66_0 >= STRINGLITERAL && LA66_0 <= SUB)||LA66_0==SUBSUB||LA66_0==SUPER||LA66_0==THIS||LA66_0==TILDE||LA66_0==TRUE||LA66_0==UNTYPED) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// Haxe.g:335:46: exprList
{
pushFollow(FOLLOW_exprList_in_prefixExpr4008);
exprList227=exprList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exprList227.getTree());
}
break;
}
RPAREN228=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_prefixExpr4011); if (state.failed) return retval;
}
break;
case 2 :
// Haxe.g:336:19: CAST ^ LPAREN ! expr ( COMMA ! funcType )? RPAREN !
{
root_0 = (Object)adaptor.nil();
CAST229=(Token)match(input,CAST,FOLLOW_CAST_in_prefixExpr4032); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CAST229_tree =
(Object)adaptor.create(CAST229)
;
root_0 = (Object)adaptor.becomeRoot(CAST229_tree, root_0);
}
LPAREN230=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_prefixExpr4035); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_prefixExpr4038);
expr231=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr231.getTree());
// Haxe.g:336:38: ( COMMA ! funcType )?
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==COMMA) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// Haxe.g:336:39: COMMA ! funcType
{
COMMA232=(Token)match(input,COMMA,FOLLOW_COMMA_in_prefixExpr4041); if (state.failed) return retval;
pushFollow(FOLLOW_funcType_in_prefixExpr4044);
funcType233=funcType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcType233.getTree());
}
break;
}
RPAREN234=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_prefixExpr4048); if (state.failed) return retval;
}
break;
case 3 :
// Haxe.g:337:19: methodCallOrSlice
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_methodCallOrSlice_in_prefixExpr4069);
methodCallOrSlice235=methodCallOrSlice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, methodCallOrSlice235.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 49, prefixExpr_StartIndex); }
}
return retval;
}
// $ANTLR end "prefixExpr"
public static class methodCallOrSlice_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "methodCallOrSlice"
// Haxe.g:340:1: methodCallOrSlice : ( value LPAREN ( exprList )? RPAREN ( pureCallOrSlice )? -> ^( CALL_OR_SLICE[$LPAREN, $RPAREN] value ( exprList )? ( pureCallOrSlice )? ) | value LBRACKET expr RBRACKET ( pureCallOrSlice )? -> ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, false] value expr ( pureCallOrSlice )? ) | value ^ pureCallOrSlice | value );
public final HaxeParser.methodCallOrSlice_return methodCallOrSlice() throws RecognitionException {
HaxeParser.methodCallOrSlice_return retval = new HaxeParser.methodCallOrSlice_return();
retval.start = input.LT(1);
int methodCallOrSlice_StartIndex = input.index();
Object root_0 = null;
Token LPAREN237=null;
Token RPAREN239=null;
Token LBRACKET242=null;
Token RBRACKET244=null;
HaxeParser.value_return value236 =null;
HaxeParser.exprList_return exprList238 =null;
HaxeParser.pureCallOrSlice_return pureCallOrSlice240 =null;
HaxeParser.value_return value241 =null;
HaxeParser.expr_return expr243 =null;
HaxeParser.pureCallOrSlice_return pureCallOrSlice245 =null;
HaxeParser.value_return value246 =null;
HaxeParser.pureCallOrSlice_return pureCallOrSlice247 =null;
HaxeParser.value_return value248 =null;
Object LPAREN237_tree=null;
Object RPAREN239_tree=null;
Object LBRACKET242_tree=null;
Object RBRACKET244_tree=null;
RewriteRuleTokenStream stream_LBRACKET=new RewriteRuleTokenStream(adaptor,"token LBRACKET");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_RBRACKET=new RewriteRuleTokenStream(adaptor,"token RBRACKET");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_pureCallOrSlice=new RewriteRuleSubtreeStream(adaptor,"rule pureCallOrSlice");
RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_exprList=new RewriteRuleSubtreeStream(adaptor,"rule exprList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return retval; }
// Haxe.g:341:17: ( value LPAREN ( exprList )? RPAREN ( pureCallOrSlice )? -> ^( CALL_OR_SLICE[$LPAREN, $RPAREN] value ( exprList )? ( pureCallOrSlice )? ) | value LBRACKET expr RBRACKET ( pureCallOrSlice )? -> ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, false] value expr ( pureCallOrSlice )? ) | value ^ pureCallOrSlice | value )
int alt72=4;
switch ( input.LA(1) ) {
case LBRACE:
{
int LA72_1 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 1, input);
throw nvae;
}
}
break;
case FUNCTION:
{
int LA72_2 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 2, input);
throw nvae;
}
}
break;
case LBRACKET:
{
int LA72_3 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 3, input);
throw nvae;
}
}
break;
case LONGLITERAL:
{
int LA72_4 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 4, input);
throw nvae;
}
}
break;
case NULL:
{
int LA72_5 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 5, input);
throw nvae;
}
}
break;
case INTLITERAL:
{
int LA72_6 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 6, input);
throw nvae;
}
}
break;
case STRINGLITERAL:
{
int LA72_7 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 7, input);
throw nvae;
}
}
break;
case CHARLITERAL:
{
int LA72_8 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 8, input);
throw nvae;
}
}
break;
case FLOATNUM:
{
int LA72_9 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 9, input);
throw nvae;
}
}
break;
case TRUE:
{
int LA72_10 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 10, input);
throw nvae;
}
}
break;
case FALSE:
{
int LA72_11 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 11, input);
throw nvae;
}
}
break;
case LPAREN:
{
int LA72_12 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 12, input);
throw nvae;
}
}
break;
case IDENTIFIER:
{
int LA72_13 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 13, input);
throw nvae;
}
}
break;
case THIS:
{
int LA72_14 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 14, input);
throw nvae;
}
}
break;
case SUPER:
{
int LA72_15 = input.LA(2);
if ( (synpred114_Haxe()) ) {
alt72=1;
}
else if ( (synpred116_Haxe()) ) {
alt72=2;
}
else if ( (synpred117_Haxe()) ) {
alt72=3;
}
else if ( (true) ) {
alt72=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 15, input);
throw nvae;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 0, input);
throw nvae;
}
switch (alt72) {
case 1 :
// Haxe.g:341:19: value LPAREN ( exprList )? RPAREN ( pureCallOrSlice )?
{
pushFollow(FOLLOW_value_in_methodCallOrSlice4111);
value236=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_value.add(value236.getTree());
LPAREN237=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_methodCallOrSlice4113); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN237);
// Haxe.g:341:32: ( exprList )?
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==BANG||LA69_0==CAST||LA69_0==CHARLITERAL||LA69_0==FALSE||LA69_0==FLOATNUM||LA69_0==FUNCTION||LA69_0==IDENTIFIER||LA69_0==INTLITERAL||(LA69_0 >= LBRACE && LA69_0 <= LBRACKET)||(LA69_0 >= LONGLITERAL && LA69_0 <= LPAREN)||(LA69_0 >= NEW && LA69_0 <= NULL)||LA69_0==PLUSPLUS||(LA69_0 >= STRINGLITERAL && LA69_0 <= SUB)||LA69_0==SUBSUB||LA69_0==SUPER||LA69_0==THIS||LA69_0==TILDE||LA69_0==TRUE||LA69_0==UNTYPED) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// Haxe.g:341:32: exprList
{
pushFollow(FOLLOW_exprList_in_methodCallOrSlice4115);
exprList238=exprList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exprList.add(exprList238.getTree());
}
break;
}
RPAREN239=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_methodCallOrSlice4118); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN239);
// Haxe.g:341:49: ( pureCallOrSlice )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==LBRACKET) ) {
int LA70_1 = input.LA(2);
if ( (synpred113_Haxe()) ) {
alt70=1;
}
}
else if ( (LA70_0==DOT) ) {
int LA70_2 = input.LA(2);
if ( (synpred113_Haxe()) ) {
alt70=1;
}
}
switch (alt70) {
case 1 :
// Haxe.g:341:49: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_methodCallOrSlice4120);
pureCallOrSlice240=pureCallOrSlice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pureCallOrSlice.add(pureCallOrSlice240.getTree());
}
break;
}
// AST REWRITE
// elements: value, pureCallOrSlice, exprList
// 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 = (Object)adaptor.nil();
// 342:13: -> ^( CALL_OR_SLICE[$LPAREN, $RPAREN] value ( exprList )? ( pureCallOrSlice )? )
{
// Haxe.g:342:16: ^( CALL_OR_SLICE[$LPAREN, $RPAREN] value ( exprList )? ( pureCallOrSlice )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new MethodCall(CALL_OR_SLICE, LPAREN237, RPAREN239)
, root_1);
adaptor.addChild(root_1, stream_value.nextTree());
// Haxe.g:342:68: ( exprList )?
if ( stream_exprList.hasNext() ) {
adaptor.addChild(root_1, stream_exprList.nextTree());
}
stream_exprList.reset();
// Haxe.g:342:78: ( pureCallOrSlice )?
if ( stream_pureCallOrSlice.hasNext() ) {
adaptor.addChild(root_1, stream_pureCallOrSlice.nextTree());
}
stream_pureCallOrSlice.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:343:19: value LBRACKET expr RBRACKET ( pureCallOrSlice )?
{
pushFollow(FOLLOW_value_in_methodCallOrSlice4171);
value241=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_value.add(value241.getTree());
LBRACKET242=(Token)match(input,LBRACKET,FOLLOW_LBRACKET_in_methodCallOrSlice4173); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACKET.add(LBRACKET242);
pushFollow(FOLLOW_expr_in_methodCallOrSlice4175);
expr243=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr243.getTree());
RBRACKET244=(Token)match(input,RBRACKET,FOLLOW_RBRACKET_in_methodCallOrSlice4177); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACKET.add(RBRACKET244);
// Haxe.g:343:48: ( pureCallOrSlice )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==LBRACKET) ) {
int LA71_1 = input.LA(2);
if ( (synpred115_Haxe()) ) {
alt71=1;
}
}
else if ( (LA71_0==DOT) ) {
int LA71_2 = input.LA(2);
if ( (synpred115_Haxe()) ) {
alt71=1;
}
}
switch (alt71) {
case 1 :
// Haxe.g:343:48: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_methodCallOrSlice4179);
pureCallOrSlice245=pureCallOrSlice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pureCallOrSlice.add(pureCallOrSlice245.getTree());
}
break;
}
// AST REWRITE
// elements: pureCallOrSlice, value, 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 = (Object)adaptor.nil();
// 344:13: -> ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, false] value expr ( pureCallOrSlice )? )
{
// Haxe.g:344:16: ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, false] value expr ( pureCallOrSlice )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Slice(CALL_OR_SLICE, LBRACKET242, RBRACKET244, false)
, root_1);
adaptor.addChild(root_1, stream_value.nextTree());
adaptor.addChild(root_1, stream_expr.nextTree());
// Haxe.g:344:79: ( pureCallOrSlice )?
if ( stream_pureCallOrSlice.hasNext() ) {
adaptor.addChild(root_1, stream_pureCallOrSlice.nextTree());
}
stream_pureCallOrSlice.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// Haxe.g:345:19: value ^ pureCallOrSlice
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_value_in_methodCallOrSlice4230);
value246=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(value246.getTree(), root_0);
pushFollow(FOLLOW_pureCallOrSlice_in_methodCallOrSlice4233);
pureCallOrSlice247=pureCallOrSlice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pureCallOrSlice247.getTree());
}
break;
case 4 :
// Haxe.g:346:19: value
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_value_in_methodCallOrSlice4254);
value248=value();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, value248.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 50, methodCallOrSlice_StartIndex); }
}
return retval;
}
// $ANTLR end "methodCallOrSlice"
public static class pureCallOrSlice_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "pureCallOrSlice"
// Haxe.g:349:1: pureCallOrSlice : ( LBRACKET ( expr )? RBRACKET ( pureCallOrSlice )? -> ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, true] ( expr )? ( pureCallOrSlice )? ) | DOT ^ methodCallOrSlice );
public final HaxeParser.pureCallOrSlice_return pureCallOrSlice() throws RecognitionException {
HaxeParser.pureCallOrSlice_return retval = new HaxeParser.pureCallOrSlice_return();
retval.start = input.LT(1);
int pureCallOrSlice_StartIndex = input.index();
Object root_0 = null;
Token LBRACKET249=null;
Token RBRACKET251=null;
Token DOT253=null;
HaxeParser.expr_return expr250 =null;
HaxeParser.pureCallOrSlice_return pureCallOrSlice252 =null;
HaxeParser.methodCallOrSlice_return methodCallOrSlice254 =null;
Object LBRACKET249_tree=null;
Object RBRACKET251_tree=null;
Object DOT253_tree=null;
RewriteRuleTokenStream stream_LBRACKET=new RewriteRuleTokenStream(adaptor,"token LBRACKET");
RewriteRuleTokenStream stream_RBRACKET=new RewriteRuleTokenStream(adaptor,"token RBRACKET");
RewriteRuleSubtreeStream stream_pureCallOrSlice=new RewriteRuleSubtreeStream(adaptor,"rule pureCallOrSlice");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return retval; }
// Haxe.g:349:17: ( LBRACKET ( expr )? RBRACKET ( pureCallOrSlice )? -> ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, true] ( expr )? ( pureCallOrSlice )? ) | DOT ^ methodCallOrSlice )
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==LBRACKET) ) {
alt75=1;
}
else if ( (LA75_0==DOT) ) {
alt75=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 75, 0, input);
throw nvae;
}
switch (alt75) {
case 1 :
// Haxe.g:349:19: LBRACKET ( expr )? RBRACKET ( pureCallOrSlice )?
{
LBRACKET249=(Token)match(input,LBRACKET,FOLLOW_LBRACKET_in_pureCallOrSlice4279); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACKET.add(LBRACKET249);
// Haxe.g:349:28: ( expr )?
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==BANG||LA73_0==CAST||LA73_0==CHARLITERAL||LA73_0==FALSE||LA73_0==FLOATNUM||LA73_0==FUNCTION||LA73_0==IDENTIFIER||LA73_0==INTLITERAL||(LA73_0 >= LBRACE && LA73_0 <= LBRACKET)||(LA73_0 >= LONGLITERAL && LA73_0 <= LPAREN)||(LA73_0 >= NEW && LA73_0 <= NULL)||LA73_0==PLUSPLUS||(LA73_0 >= STRINGLITERAL && LA73_0 <= SUB)||LA73_0==SUBSUB||LA73_0==SUPER||LA73_0==THIS||LA73_0==TILDE||LA73_0==TRUE||LA73_0==UNTYPED) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// Haxe.g:349:28: expr
{
pushFollow(FOLLOW_expr_in_pureCallOrSlice4281);
expr250=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr250.getTree());
}
break;
}
RBRACKET251=(Token)match(input,RBRACKET,FOLLOW_RBRACKET_in_pureCallOrSlice4284); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACKET.add(RBRACKET251);
// Haxe.g:349:43: ( pureCallOrSlice )?
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==LBRACKET) ) {
int LA74_1 = input.LA(2);
if ( (synpred119_Haxe()) ) {
alt74=1;
}
}
else if ( (LA74_0==DOT) ) {
int LA74_2 = input.LA(2);
if ( (synpred119_Haxe()) ) {
alt74=1;
}
}
switch (alt74) {
case 1 :
// Haxe.g:349:43: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_pureCallOrSlice4286);
pureCallOrSlice252=pureCallOrSlice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pureCallOrSlice.add(pureCallOrSlice252.getTree());
}
break;
}
// AST REWRITE
// elements: pureCallOrSlice, 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 = (Object)adaptor.nil();
// 349:60: -> ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, true] ( expr )? ( pureCallOrSlice )? )
{
// Haxe.g:349:63: ^( CALL_OR_SLICE[$LBRACKET, $RBRACKET, true] ( expr )? ( pureCallOrSlice )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Slice(CALL_OR_SLICE, LBRACKET249, RBRACKET251, true)
, root_1);
// Haxe.g:350:66: ( expr )?
if ( stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_expr.reset();
// Haxe.g:350:72: ( pureCallOrSlice )?
if ( stream_pureCallOrSlice.hasNext() ) {
adaptor.addChild(root_1, stream_pureCallOrSlice.nextTree());
}
stream_pureCallOrSlice.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:351:19: DOT ^ methodCallOrSlice
{
root_0 = (Object)adaptor.nil();
DOT253=(Token)match(input,DOT,FOLLOW_DOT_in_pureCallOrSlice4340); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOT253_tree =
(Object)adaptor.create(DOT253)
;
root_0 = (Object)adaptor.becomeRoot(DOT253_tree, root_0);
}
pushFollow(FOLLOW_methodCallOrSlice_in_pureCallOrSlice4343);
methodCallOrSlice254=methodCallOrSlice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, methodCallOrSlice254.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 51, pureCallOrSlice_StartIndex); }
}
return retval;
}
// $ANTLR end "pureCallOrSlice"
public static class arrayObj_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arrayObj"
// Haxe.g:354:1: arrayObj : LBRACKET ( exprList )? RBRACKET -> ^( SUFFIX_EXPR[$LBRACKET, $RBRACKET] ( exprList )? ) ;
public final HaxeParser.arrayObj_return arrayObj() throws RecognitionException {
HaxeParser.arrayObj_return retval = new HaxeParser.arrayObj_return();
retval.start = input.LT(1);
int arrayObj_StartIndex = input.index();
Object root_0 = null;
Token LBRACKET255=null;
Token RBRACKET257=null;
HaxeParser.exprList_return exprList256 =null;
Object LBRACKET255_tree=null;
Object RBRACKET257_tree=null;
RewriteRuleTokenStream stream_LBRACKET=new RewriteRuleTokenStream(adaptor,"token LBRACKET");
RewriteRuleTokenStream stream_RBRACKET=new RewriteRuleTokenStream(adaptor,"token RBRACKET");
RewriteRuleSubtreeStream stream_exprList=new RewriteRuleSubtreeStream(adaptor,"rule exprList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return retval; }
// Haxe.g:354:17: ( LBRACKET ( exprList )? RBRACKET -> ^( SUFFIX_EXPR[$LBRACKET, $RBRACKET] ( exprList )? ) )
// Haxe.g:354:19: LBRACKET ( exprList )? RBRACKET
{
LBRACKET255=(Token)match(input,LBRACKET,FOLLOW_LBRACKET_in_arrayObj4375); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACKET.add(LBRACKET255);
// Haxe.g:354:28: ( exprList )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==BANG||LA76_0==CAST||LA76_0==CHARLITERAL||LA76_0==FALSE||LA76_0==FLOATNUM||LA76_0==FUNCTION||LA76_0==IDENTIFIER||LA76_0==INTLITERAL||(LA76_0 >= LBRACE && LA76_0 <= LBRACKET)||(LA76_0 >= LONGLITERAL && LA76_0 <= LPAREN)||(LA76_0 >= NEW && LA76_0 <= NULL)||LA76_0==PLUSPLUS||(LA76_0 >= STRINGLITERAL && LA76_0 <= SUB)||LA76_0==SUBSUB||LA76_0==SUPER||LA76_0==THIS||LA76_0==TILDE||LA76_0==TRUE||LA76_0==UNTYPED) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// Haxe.g:354:28: exprList
{
pushFollow(FOLLOW_exprList_in_arrayObj4377);
exprList256=exprList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exprList.add(exprList256.getTree());
}
break;
}
RBRACKET257=(Token)match(input,RBRACKET,FOLLOW_RBRACKET_in_arrayObj4380); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACKET.add(RBRACKET257);
// AST REWRITE
// elements: exprList
// 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 = (Object)adaptor.nil();
// 355:13: -> ^( SUFFIX_EXPR[$LBRACKET, $RBRACKET] ( exprList )? )
{
// Haxe.g:355:16: ^( SUFFIX_EXPR[$LBRACKET, $RBRACKET] ( exprList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Array(SUFFIX_EXPR, LBRACKET255, RBRACKET257)
, root_1);
// Haxe.g:355:59: ( exprList )?
if ( stream_exprList.hasNext() ) {
adaptor.addChild(root_1, stream_exprList.nextTree());
}
stream_exprList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 52, arrayObj_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayObj"
public static class value_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "value"
// Haxe.g:358:1: value : ( objLit | funcLit | arrayObj | elementarySymbol | LPAREN expr RPAREN '?' expr COLON expr -> ^( LPAREN ( expr )+ ) | LPAREN ! expr RPAREN !| id ( typeParam )? );
public final HaxeParser.value_return value() throws RecognitionException {
HaxeParser.value_return retval = new HaxeParser.value_return();
retval.start = input.LT(1);
int value_StartIndex = input.index();
Object root_0 = null;
Token LPAREN262=null;
Token RPAREN264=null;
Token char_literal265=null;
Token COLON267=null;
Token LPAREN269=null;
Token RPAREN271=null;
HaxeParser.objLit_return objLit258 =null;
HaxeParser.funcLit_return funcLit259 =null;
HaxeParser.arrayObj_return arrayObj260 =null;
HaxeParser.elementarySymbol_return elementarySymbol261 =null;
HaxeParser.expr_return expr263 =null;
HaxeParser.expr_return expr266 =null;
HaxeParser.expr_return expr268 =null;
HaxeParser.expr_return expr270 =null;
HaxeParser.id_return id272 =null;
HaxeParser.typeParam_return typeParam273 =null;
Object LPAREN262_tree=null;
Object RPAREN264_tree=null;
Object char_literal265_tree=null;
Object COLON267_tree=null;
Object LPAREN269_tree=null;
Object RPAREN271_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_QUES=new RewriteRuleTokenStream(adaptor,"token QUES");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return retval; }
// Haxe.g:360:5: ( objLit | funcLit | arrayObj | elementarySymbol | LPAREN expr RPAREN '?' expr COLON expr -> ^( LPAREN ( expr )+ ) | LPAREN ! expr RPAREN !| id ( typeParam )? )
int alt78=7;
switch ( input.LA(1) ) {
case LBRACE:
{
alt78=1;
}
break;
case FUNCTION:
{
alt78=2;
}
break;
case LBRACKET:
{
alt78=3;
}
break;
case CHARLITERAL:
case FALSE:
case FLOATNUM:
case INTLITERAL:
case LONGLITERAL:
case NULL:
case STRINGLITERAL:
case TRUE:
{
alt78=4;
}
break;
case LPAREN:
{
int LA78_12 = input.LA(2);
if ( (synpred126_Haxe()) ) {
alt78=5;
}
else if ( (synpred127_Haxe()) ) {
alt78=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 78, 12, input);
throw nvae;
}
}
break;
case IDENTIFIER:
case SUPER:
case THIS:
{
alt78=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 78, 0, input);
throw nvae;
}
switch (alt78) {
case 1 :
// Haxe.g:360:9: objLit
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_objLit_in_value4457);
objLit258=objLit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, objLit258.getTree());
}
break;
case 2 :
// Haxe.g:361:7: funcLit
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_funcLit_in_value4465);
funcLit259=funcLit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcLit259.getTree());
}
break;
case 3 :
// Haxe.g:362:7: arrayObj
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayObj_in_value4473);
arrayObj260=arrayObj();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayObj260.getTree());
}
break;
case 4 :
// Haxe.g:363:7: elementarySymbol
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_elementarySymbol_in_value4481);
elementarySymbol261=elementarySymbol();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, elementarySymbol261.getTree());
}
break;
case 5 :
// Haxe.g:364:9: LPAREN expr RPAREN '?' expr COLON expr
{
LPAREN262=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_value4491); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN262);
pushFollow(FOLLOW_expr_in_value4493);
expr263=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr263.getTree());
RPAREN264=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_value4495); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN264);
char_literal265=(Token)match(input,QUES,FOLLOW_QUES_in_value4497); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QUES.add(char_literal265);
pushFollow(FOLLOW_expr_in_value4499);
expr266=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr266.getTree());
COLON267=(Token)match(input,COLON,FOLLOW_COLON_in_value4501); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON267);
pushFollow(FOLLOW_expr_in_value4503);
expr268=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr268.getTree());
// AST REWRITE
// elements: LPAREN, 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 = (Object)adaptor.nil();
// 364:48: -> ^( LPAREN ( expr )+ )
{
// Haxe.g:364:51: ^( LPAREN ( expr )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new IfNode(stream_LPAREN.nextToken())
, root_1);
if ( !(stream_expr.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_expr.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// Haxe.g:365:9: LPAREN ! expr RPAREN !
{
root_0 = (Object)adaptor.nil();
LPAREN269=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_value4525); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_value4528);
expr270=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr270.getTree());
RPAREN271=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_value4530); if (state.failed) return retval;
}
break;
case 7 :
// Haxe.g:367:9: id ( typeParam )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_id_in_value4546);
id272=id();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, id272.getTree());
// Haxe.g:367:12: ( typeParam )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==LT) ) {
int LA77_1 = input.LA(2);
if ( (synpred128_Haxe()) ) {
alt77=1;
}
}
switch (alt77) {
case 1 :
// Haxe.g:367:12: typeParam
{
pushFollow(FOLLOW_typeParam_in_value4548);
typeParam273=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeParam273.getTree());
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 53, value_StartIndex); }
}
return retval;
}
// $ANTLR end "value"
public static class topLevelDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "topLevelDecl"
// Haxe.g:371:1: topLevelDecl : ( classDecl | interfaceDecl | enumDecl | typedefDecl );
public final HaxeParser.topLevelDecl_return topLevelDecl() throws RecognitionException {
HaxeParser.topLevelDecl_return retval = new HaxeParser.topLevelDecl_return();
retval.start = input.LT(1);
int topLevelDecl_StartIndex = input.index();
Object root_0 = null;
HaxeParser.classDecl_return classDecl274 =null;
HaxeParser.interfaceDecl_return interfaceDecl275 =null;
HaxeParser.enumDecl_return enumDecl276 =null;
HaxeParser.typedefDecl_return typedefDecl277 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return retval; }
// Haxe.g:371:17: ( classDecl | interfaceDecl | enumDecl | typedefDecl )
int alt79=4;
switch ( input.LA(1) ) {
case EXTERN:
case PRIVATE:
{
switch ( input.LA(2) ) {
case CLASS:
{
alt79=1;
}
break;
case INTERFACE:
{
alt79=2;
}
break;
case ENUM:
{
alt79=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 79, 1, input);
throw nvae;
}
}
break;
case CLASS:
{
alt79=1;
}
break;
case INTERFACE:
{
alt79=2;
}
break;
case ENUM:
{
alt79=3;
}
break;
case TYPEDEF:
{
alt79=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 79, 0, input);
throw nvae;
}
switch (alt79) {
case 1 :
// Haxe.g:371:19: classDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_classDecl_in_topLevelDecl4568);
classDecl274=classDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classDecl274.getTree());
}
break;
case 2 :
// Haxe.g:372:19: interfaceDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_interfaceDecl_in_topLevelDecl4588);
interfaceDecl275=interfaceDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDecl275.getTree());
}
break;
case 3 :
// Haxe.g:373:19: enumDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumDecl_in_topLevelDecl4608);
enumDecl276=enumDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumDecl276.getTree());
}
break;
case 4 :
// Haxe.g:374:19: typedefDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typedefDecl_in_topLevelDecl4628);
typedefDecl277=typedefDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typedefDecl277.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 54, topLevelDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "topLevelDecl"
public static class enumDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "enumDecl"
// Haxe.g:377:1: enumDecl : ( topLevelAccessAttr )? ENUM IDENTIFIER ( typeParam )? enumBody -> ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? enumBody ) ;
public final HaxeParser.enumDecl_return enumDecl() throws RecognitionException {
HaxeParser.enumDecl_return retval = new HaxeParser.enumDecl_return();
retval.start = input.LT(1);
int enumDecl_StartIndex = input.index();
Object root_0 = null;
Token ENUM279=null;
Token IDENTIFIER280=null;
HaxeParser.topLevelAccessAttr_return topLevelAccessAttr278 =null;
HaxeParser.typeParam_return typeParam281 =null;
HaxeParser.enumBody_return enumBody282 =null;
Object ENUM279_tree=null;
Object IDENTIFIER280_tree=null;
RewriteRuleTokenStream stream_ENUM=new RewriteRuleTokenStream(adaptor,"token ENUM");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_typeParam=new RewriteRuleSubtreeStream(adaptor,"rule typeParam");
RewriteRuleSubtreeStream stream_enumBody=new RewriteRuleSubtreeStream(adaptor,"rule enumBody");
RewriteRuleSubtreeStream stream_topLevelAccessAttr=new RewriteRuleSubtreeStream(adaptor,"rule topLevelAccessAttr");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return retval; }
// Haxe.g:377:17: ( ( topLevelAccessAttr )? ENUM IDENTIFIER ( typeParam )? enumBody -> ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? enumBody ) )
// Haxe.g:377:19: ( topLevelAccessAttr )? ENUM IDENTIFIER ( typeParam )? enumBody
{
// Haxe.g:377:19: ( topLevelAccessAttr )?
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==EXTERN||LA80_0==PRIVATE) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// Haxe.g:377:19: topLevelAccessAttr
{
pushFollow(FOLLOW_topLevelAccessAttr_in_enumDecl4664);
topLevelAccessAttr278=topLevelAccessAttr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_topLevelAccessAttr.add(topLevelAccessAttr278.getTree());
}
break;
}
ENUM279=(Token)match(input,ENUM,FOLLOW_ENUM_in_enumDecl4667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENUM.add(ENUM279);
IDENTIFIER280=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumDecl4669); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER280);
// Haxe.g:377:55: ( typeParam )?
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==LT) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// Haxe.g:377:55: typeParam
{
pushFollow(FOLLOW_typeParam_in_enumDecl4671);
typeParam281=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParam.add(typeParam281.getTree());
}
break;
}
pushFollow(FOLLOW_enumBody_in_enumDecl4674);
enumBody282=enumBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumBody.add(enumBody282.getTree());
// AST REWRITE
// elements: typeParam, topLevelAccessAttr, IDENTIFIER, enumBody
// 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 = (Object)adaptor.nil();
// 377:75: -> ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? enumBody )
{
// Haxe.g:377:78: ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? enumBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Enum(stream_IDENTIFIER.nextToken())
, root_1);
// Haxe.g:377:97: ( topLevelAccessAttr )?
if ( stream_topLevelAccessAttr.hasNext() ) {
adaptor.addChild(root_1, stream_topLevelAccessAttr.nextTree());
}
stream_topLevelAccessAttr.reset();
// Haxe.g:377:117: ( typeParam )?
if ( stream_typeParam.hasNext() ) {
adaptor.addChild(root_1, stream_typeParam.nextTree());
}
stream_typeParam.reset();
adaptor.addChild(root_1, stream_enumBody.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 55, enumDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "enumDecl"
public static class enumBody_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "enumBody"
// Haxe.g:380:1: enumBody : LBRACE ( enumValueDecl )* RBRACE -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( enumValueDecl )* ) ;
public final HaxeParser.enumBody_return enumBody() throws RecognitionException {
HaxeParser.enumBody_return retval = new HaxeParser.enumBody_return();
retval.start = input.LT(1);
int enumBody_StartIndex = input.index();
Object root_0 = null;
Token LBRACE283=null;
Token RBRACE285=null;
HaxeParser.enumValueDecl_return enumValueDecl284 =null;
Object LBRACE283_tree=null;
Object RBRACE285_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_enumValueDecl=new RewriteRuleSubtreeStream(adaptor,"rule enumValueDecl");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return retval; }
// Haxe.g:380:17: ( LBRACE ( enumValueDecl )* RBRACE -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( enumValueDecl )* ) )
// Haxe.g:380:19: LBRACE ( enumValueDecl )* RBRACE
{
LBRACE283=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_enumBody4723); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACE.add(LBRACE283);
// Haxe.g:380:26: ( enumValueDecl )*
loop82:
do {
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==IDENTIFIER) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// Haxe.g:380:27: enumValueDecl
{
pushFollow(FOLLOW_enumValueDecl_in_enumBody4726);
enumValueDecl284=enumValueDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumValueDecl.add(enumValueDecl284.getTree());
}
break;
default :
break loop82;
}
} while (true);
RBRACE285=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_enumBody4730); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE285);
// AST REWRITE
// elements: enumValueDecl
// 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 = (Object)adaptor.nil();
// 380:50: -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( enumValueDecl )* )
{
// Haxe.g:380:53: ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( enumValueDecl )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new BlockScope(BLOCK_SCOPE, LBRACE283, RBRACE285)
, root_1);
// Haxe.g:380:97: ( enumValueDecl )*
while ( stream_enumValueDecl.hasNext() ) {
adaptor.addChild(root_1, stream_enumValueDecl.nextTree());
}
stream_enumValueDecl.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 56, enumBody_StartIndex); }
}
return retval;
}
// $ANTLR end "enumBody"
public static class enumValueDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "enumValueDecl"
// Haxe.g:383:1: enumValueDecl : ( IDENTIFIER ^ LPAREN ! ( paramList )? RPAREN ! SEMI !| IDENTIFIER SEMI !);
public final HaxeParser.enumValueDecl_return enumValueDecl() throws RecognitionException {
HaxeParser.enumValueDecl_return retval = new HaxeParser.enumValueDecl_return();
retval.start = input.LT(1);
int enumValueDecl_StartIndex = input.index();
Object root_0 = null;
Token IDENTIFIER286=null;
Token LPAREN287=null;
Token RPAREN289=null;
Token SEMI290=null;
Token IDENTIFIER291=null;
Token SEMI292=null;
HaxeParser.paramList_return paramList288 =null;
Object IDENTIFIER286_tree=null;
Object LPAREN287_tree=null;
Object RPAREN289_tree=null;
Object SEMI290_tree=null;
Object IDENTIFIER291_tree=null;
Object SEMI292_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return retval; }
// Haxe.g:383:17: ( IDENTIFIER ^ LPAREN ! ( paramList )? RPAREN ! SEMI !| IDENTIFIER SEMI !)
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==IDENTIFIER) ) {
int LA84_1 = input.LA(2);
if ( (LA84_1==LPAREN) ) {
alt84=1;
}
else if ( (LA84_1==SEMI) ) {
alt84=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 84, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 84, 0, input);
throw nvae;
}
switch (alt84) {
case 1 :
// Haxe.g:383:19: IDENTIFIER ^ LPAREN ! ( paramList )? RPAREN ! SEMI !
{
root_0 = (Object)adaptor.nil();
IDENTIFIER286=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumValueDecl4770); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER286_tree =
new Declaration(IDENTIFIER286)
;
root_0 = (Object)adaptor.becomeRoot(IDENTIFIER286_tree, root_0);
}
LPAREN287=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_enumValueDecl4776); if (state.failed) return retval;
// Haxe.g:383:52: ( paramList )?
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==IDENTIFIER||LA83_0==QUES) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// Haxe.g:383:52: paramList
{
pushFollow(FOLLOW_paramList_in_enumValueDecl4779);
paramList288=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, paramList288.getTree());
}
break;
}
RPAREN289=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_enumValueDecl4782); if (state.failed) return retval;
SEMI290=(Token)match(input,SEMI,FOLLOW_SEMI_in_enumValueDecl4785); if (state.failed) return retval;
}
break;
case 2 :
// Haxe.g:384:19: IDENTIFIER SEMI !
{
root_0 = (Object)adaptor.nil();
IDENTIFIER291=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumValueDecl4808); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER291_tree =
new Declaration(IDENTIFIER291)
;
adaptor.addChild(root_0, IDENTIFIER291_tree);
}
SEMI292=(Token)match(input,SEMI,FOLLOW_SEMI_in_enumValueDecl4813); if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 57, enumValueDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "enumValueDecl"
public static class classDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "classDecl"
// Haxe.g:388:1: classDecl : ( topLevelAccessAttr )? CLASS IDENTIFIER ( typeParam )? ( ( extending ( COMMA implementList )? ) | implementList )? classBodyScope -> ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? ( extending )? ( implementList )? classBodyScope ) ;
public final HaxeParser.classDecl_return classDecl() throws RecognitionException {
HaxeParser.classDecl_return retval = new HaxeParser.classDecl_return();
retval.start = input.LT(1);
int classDecl_StartIndex = input.index();
Object root_0 = null;
Token CLASS294=null;
Token IDENTIFIER295=null;
Token COMMA298=null;
HaxeParser.topLevelAccessAttr_return topLevelAccessAttr293 =null;
HaxeParser.typeParam_return typeParam296 =null;
HaxeParser.extending_return extending297 =null;
HaxeParser.implementList_return implementList299 =null;
HaxeParser.implementList_return implementList300 =null;
HaxeParser.classBodyScope_return classBodyScope301 =null;
Object CLASS294_tree=null;
Object IDENTIFIER295_tree=null;
Object COMMA298_tree=null;
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_classBodyScope=new RewriteRuleSubtreeStream(adaptor,"rule classBodyScope");
RewriteRuleSubtreeStream stream_typeParam=new RewriteRuleSubtreeStream(adaptor,"rule typeParam");
RewriteRuleSubtreeStream stream_implementList=new RewriteRuleSubtreeStream(adaptor,"rule implementList");
RewriteRuleSubtreeStream stream_extending=new RewriteRuleSubtreeStream(adaptor,"rule extending");
RewriteRuleSubtreeStream stream_topLevelAccessAttr=new RewriteRuleSubtreeStream(adaptor,"rule topLevelAccessAttr");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return retval; }
// Haxe.g:388:17: ( ( topLevelAccessAttr )? CLASS IDENTIFIER ( typeParam )? ( ( extending ( COMMA implementList )? ) | implementList )? classBodyScope -> ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? ( extending )? ( implementList )? classBodyScope ) )
// Haxe.g:388:19: ( topLevelAccessAttr )? CLASS IDENTIFIER ( typeParam )? ( ( extending ( COMMA implementList )? ) | implementList )? classBodyScope
{
// Haxe.g:388:19: ( topLevelAccessAttr )?
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==EXTERN||LA85_0==PRIVATE) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// Haxe.g:388:19: topLevelAccessAttr
{
pushFollow(FOLLOW_topLevelAccessAttr_in_classDecl4862);
topLevelAccessAttr293=topLevelAccessAttr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_topLevelAccessAttr.add(topLevelAccessAttr293.getTree());
}
break;
}
CLASS294=(Token)match(input,CLASS,FOLLOW_CLASS_in_classDecl4865); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS294);
IDENTIFIER295=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_classDecl4867); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER295);
// Haxe.g:388:56: ( typeParam )?
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==LT) ) {
alt86=1;
}
switch (alt86) {
case 1 :
// Haxe.g:388:56: typeParam
{
pushFollow(FOLLOW_typeParam_in_classDecl4869);
typeParam296=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParam.add(typeParam296.getTree());
}
break;
}
// Haxe.g:388:68: ( ( extending ( COMMA implementList )? ) | implementList )?
int alt88=3;
int LA88_0 = input.LA(1);
if ( (LA88_0==EXTENDS) ) {
alt88=1;
}
else if ( (LA88_0==IMPLEMENTS) ) {
alt88=2;
}
switch (alt88) {
case 1 :
// Haxe.g:388:69: ( extending ( COMMA implementList )? )
{
// Haxe.g:388:69: ( extending ( COMMA implementList )? )
// Haxe.g:388:70: extending ( COMMA implementList )?
{
pushFollow(FOLLOW_extending_in_classDecl4875);
extending297=extending();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extending.add(extending297.getTree());
// Haxe.g:388:80: ( COMMA implementList )?
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==COMMA) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// Haxe.g:388:81: COMMA implementList
{
COMMA298=(Token)match(input,COMMA,FOLLOW_COMMA_in_classDecl4878); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA298);
pushFollow(FOLLOW_implementList_in_classDecl4880);
implementList299=implementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_implementList.add(implementList299.getTree());
}
break;
}
}
}
break;
case 2 :
// Haxe.g:388:104: implementList
{
pushFollow(FOLLOW_implementList_in_classDecl4885);
implementList300=implementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_implementList.add(implementList300.getTree());
}
break;
}
pushFollow(FOLLOW_classBodyScope_in_classDecl4890);
classBodyScope301=classBodyScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_classBodyScope.add(classBodyScope301.getTree());
// AST REWRITE
// elements: classBodyScope, extending, topLevelAccessAttr, typeParam, implementList, IDENTIFIER
// 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 = (Object)adaptor.nil();
// 389:21: -> ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? ( extending )? ( implementList )? classBodyScope )
{
// Haxe.g:389:24: ^( IDENTIFIER ( topLevelAccessAttr )? ( typeParam )? ( extending )? ( implementList )? classBodyScope )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Class(stream_IDENTIFIER.nextToken())
, root_1);
// Haxe.g:389:44: ( topLevelAccessAttr )?
if ( stream_topLevelAccessAttr.hasNext() ) {
adaptor.addChild(root_1, stream_topLevelAccessAttr.nextTree());
}
stream_topLevelAccessAttr.reset();
// Haxe.g:389:64: ( typeParam )?
if ( stream_typeParam.hasNext() ) {
adaptor.addChild(root_1, stream_typeParam.nextTree());
}
stream_typeParam.reset();
// Haxe.g:389:75: ( extending )?
if ( stream_extending.hasNext() ) {
adaptor.addChild(root_1, stream_extending.nextTree());
}
stream_extending.reset();
// Haxe.g:389:86: ( implementList )?
if ( stream_implementList.hasNext() ) {
adaptor.addChild(root_1, stream_implementList.nextTree());
}
stream_implementList.reset();
adaptor.addChild(root_1, stream_classBodyScope.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 58, classDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "classDecl"
public static class classBodyScope_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "classBodyScope"
// Haxe.g:392:1: classBodyScope : LBRACE ( classMember )* RBRACE -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( classMember )* ) ;
public final HaxeParser.classBodyScope_return classBodyScope() throws RecognitionException {
HaxeParser.classBodyScope_return retval = new HaxeParser.classBodyScope_return();
retval.start = input.LT(1);
int classBodyScope_StartIndex = input.index();
Object root_0 = null;
Token LBRACE302=null;
Token RBRACE304=null;
HaxeParser.classMember_return classMember303 =null;
Object LBRACE302_tree=null;
Object RBRACE304_tree=null;
RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE");
RewriteRuleTokenStream stream_LBRACE=new RewriteRuleTokenStream(adaptor,"token LBRACE");
RewriteRuleSubtreeStream stream_classMember=new RewriteRuleSubtreeStream(adaptor,"rule classMember");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return retval; }
// Haxe.g:392:17: ( LBRACE ( classMember )* RBRACE -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( classMember )* ) )
// Haxe.g:392:19: LBRACE ( classMember )* RBRACE
{
LBRACE302=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_classBodyScope4960); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACE.add(LBRACE302);
// Haxe.g:392:26: ( classMember )*
loop89:
do {
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==DYNAMIC||LA89_0==FUNCTION||LA89_0==INLINE||LA89_0==OVERRIDE||LA89_0==PRIVATE||LA89_0==PUBLIC||LA89_0==STATIC||LA89_0==VAR) ) {
alt89=1;
}
switch (alt89) {
case 1 :
// Haxe.g:392:27: classMember
{
pushFollow(FOLLOW_classMember_in_classBodyScope4963);
classMember303=classMember();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_classMember.add(classMember303.getTree());
}
break;
default :
break loop89;
}
} while (true);
RBRACE304=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_classBodyScope4967); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE304);
// AST REWRITE
// elements: classMember
// 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 = (Object)adaptor.nil();
// 392:48: -> ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( classMember )* )
{
// Haxe.g:392:51: ^( BLOCK_SCOPE[$LBRACE, $RBRACE] ( classMember )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new BlockScope(BLOCK_SCOPE, LBRACE302, RBRACE304)
, root_1);
// Haxe.g:392:95: ( classMember )*
while ( stream_classMember.hasNext() ) {
adaptor.addChild(root_1, stream_classMember.nextTree());
}
stream_classMember.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 59, classBodyScope_StartIndex); }
}
return retval;
}
// $ANTLR end "classBodyScope"
public static class classMember_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "classMember"
// Haxe.g:395:1: classMember : ( varDeclClass | funcDecl );
public final HaxeParser.classMember_return classMember() throws RecognitionException {
HaxeParser.classMember_return retval = new HaxeParser.classMember_return();
retval.start = input.LT(1);
int classMember_StartIndex = input.index();
Object root_0 = null;
HaxeParser.varDeclClass_return varDeclClass305 =null;
HaxeParser.funcDecl_return funcDecl306 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return retval; }
// Haxe.g:395:17: ( varDeclClass | funcDecl )
int alt90=2;
alt90 = dfa90.predict(input);
switch (alt90) {
case 1 :
// Haxe.g:395:19: varDeclClass
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varDeclClass_in_classMember5013);
varDeclClass305=varDeclClass();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDeclClass305.getTree());
}
break;
case 2 :
// Haxe.g:396:19: funcDecl
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_funcDecl_in_classMember5033);
funcDecl306=funcDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcDecl306.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 60, classMember_StartIndex); }
}
return retval;
}
// $ANTLR end "classMember"
public static class varDeclClass_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "varDeclClass"
// Haxe.g:400:1: varDeclClass : ( declAttrList )? VAR IDENTIFIER ^ ( propDecl )? typeTag ( varInit )? SEMI !;
public final HaxeParser.varDeclClass_return varDeclClass() throws RecognitionException {
HaxeParser.varDeclClass_return retval = new HaxeParser.varDeclClass_return();
retval.start = input.LT(1);
int varDeclClass_StartIndex = input.index();
Object root_0 = null;
Token VAR308=null;
Token IDENTIFIER309=null;
Token SEMI313=null;
HaxeParser.declAttrList_return declAttrList307 =null;
HaxeParser.propDecl_return propDecl310 =null;
HaxeParser.typeTag_return typeTag311 =null;
HaxeParser.varInit_return varInit312 =null;
Object VAR308_tree=null;
Object IDENTIFIER309_tree=null;
Object SEMI313_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return retval; }
// Haxe.g:400:17: ( ( declAttrList )? VAR IDENTIFIER ^ ( propDecl )? typeTag ( varInit )? SEMI !)
// Haxe.g:400:19: ( declAttrList )? VAR IDENTIFIER ^ ( propDecl )? typeTag ( varInit )? SEMI !
{
root_0 = (Object)adaptor.nil();
// Haxe.g:400:19: ( declAttrList )?
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==DYNAMIC||LA91_0==INLINE||LA91_0==OVERRIDE||LA91_0==PRIVATE||LA91_0==PUBLIC||LA91_0==STATIC) ) {
alt91=1;
}
switch (alt91) {
case 1 :
// Haxe.g:400:19: declAttrList
{
pushFollow(FOLLOW_declAttrList_in_varDeclClass5075);
declAttrList307=declAttrList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declAttrList307.getTree());
}
break;
}
VAR308=(Token)match(input,VAR,FOLLOW_VAR_in_varDeclClass5078); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VAR308_tree =
(Object)adaptor.create(VAR308)
;
adaptor.addChild(root_0, VAR308_tree);
}
IDENTIFIER309=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_varDeclClass5080); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER309_tree =
new Declaration(IDENTIFIER309)
;
root_0 = (Object)adaptor.becomeRoot(IDENTIFIER309_tree, root_0);
}
// Haxe.g:400:62: ( propDecl )?
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==LPAREN) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// Haxe.g:400:62: propDecl
{
pushFollow(FOLLOW_propDecl_in_varDeclClass5086);
propDecl310=propDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propDecl310.getTree());
}
break;
}
pushFollow(FOLLOW_typeTag_in_varDeclClass5089);
typeTag311=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeTag311.getTree());
// Haxe.g:400:80: ( varInit )?
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==EQ) ) {
alt93=1;
}
switch (alt93) {
case 1 :
// Haxe.g:400:80: varInit
{
pushFollow(FOLLOW_varInit_in_varDeclClass5091);
varInit312=varInit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varInit312.getTree());
}
break;
}
SEMI313=(Token)match(input,SEMI,FOLLOW_SEMI_in_varDeclClass5094); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 61, varDeclClass_StartIndex); }
}
return retval;
}
// $ANTLR end "varDeclClass"
public static class varDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "varDecl"
// Haxe.g:403:1: varDecl : VAR ! varDeclPartList ( COMMA ! varDeclPartList )* SEMI !;
public final HaxeParser.varDecl_return varDecl() throws RecognitionException {
HaxeParser.varDecl_return retval = new HaxeParser.varDecl_return();
retval.start = input.LT(1);
int varDecl_StartIndex = input.index();
Object root_0 = null;
Token VAR314=null;
Token COMMA316=null;
Token SEMI318=null;
HaxeParser.varDeclPartList_return varDeclPartList315 =null;
HaxeParser.varDeclPartList_return varDeclPartList317 =null;
Object VAR314_tree=null;
Object COMMA316_tree=null;
Object SEMI318_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return retval; }
// Haxe.g:403:17: ( VAR ! varDeclPartList ( COMMA ! varDeclPartList )* SEMI !)
// Haxe.g:403:19: VAR ! varDeclPartList ( COMMA ! varDeclPartList )* SEMI !
{
root_0 = (Object)adaptor.nil();
VAR314=(Token)match(input,VAR,FOLLOW_VAR_in_varDecl5144); if (state.failed) return retval;
pushFollow(FOLLOW_varDeclPartList_in_varDecl5147);
varDeclPartList315=varDeclPartList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDeclPartList315.getTree());
// Haxe.g:403:40: ( COMMA ! varDeclPartList )*
loop94:
do {
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==COMMA) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// Haxe.g:403:41: COMMA ! varDeclPartList
{
COMMA316=(Token)match(input,COMMA,FOLLOW_COMMA_in_varDecl5150); if (state.failed) return retval;
pushFollow(FOLLOW_varDeclPartList_in_varDecl5153);
varDeclPartList317=varDeclPartList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDeclPartList317.getTree());
}
break;
default :
break loop94;
}
} while (true);
SEMI318=(Token)match(input,SEMI,FOLLOW_SEMI_in_varDecl5157); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 62, varDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "varDecl"
public static class varDeclPartList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "varDeclPartList"
// Haxe.g:406:1: varDeclPartList : IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )? -> ^( IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )? ) ;
public final HaxeParser.varDeclPartList_return varDeclPartList() throws RecognitionException {
HaxeParser.varDeclPartList_return retval = new HaxeParser.varDeclPartList_return();
retval.start = input.LT(1);
int varDeclPartList_StartIndex = input.index();
Object root_0 = null;
Token IDENTIFIER319=null;
HaxeParser.propDecl_return propDecl320 =null;
HaxeParser.typeTag_return typeTag321 =null;
HaxeParser.varInit_return varInit322 =null;
Object IDENTIFIER319_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_typeTag=new RewriteRuleSubtreeStream(adaptor,"rule typeTag");
RewriteRuleSubtreeStream stream_propDecl=new RewriteRuleSubtreeStream(adaptor,"rule propDecl");
RewriteRuleSubtreeStream stream_varInit=new RewriteRuleSubtreeStream(adaptor,"rule varInit");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return retval; }
// Haxe.g:406:17: ( IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )? -> ^( IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )? ) )
// Haxe.g:406:19: IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )?
{
IDENTIFIER319=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_varDeclPartList5183); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER319);
// Haxe.g:406:30: ( propDecl )?
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==LPAREN) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// Haxe.g:406:30: propDecl
{
pushFollow(FOLLOW_propDecl_in_varDeclPartList5185);
propDecl320=propDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_propDecl.add(propDecl320.getTree());
}
break;
}
// Haxe.g:406:40: ( typeTag )?
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==COLON) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// Haxe.g:406:40: typeTag
{
pushFollow(FOLLOW_typeTag_in_varDeclPartList5188);
typeTag321=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeTag.add(typeTag321.getTree());
}
break;
}
// Haxe.g:406:49: ( varInit )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==EQ) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// Haxe.g:406:49: varInit
{
pushFollow(FOLLOW_varInit_in_varDeclPartList5191);
varInit322=varInit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varInit.add(varInit322.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, typeTag, varInit, propDecl
// 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 = (Object)adaptor.nil();
// 406:58: -> ^( IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )? )
{
// Haxe.g:406:61: ^( IDENTIFIER ( propDecl )? ( typeTag )? ( varInit )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Declaration(stream_IDENTIFIER.nextToken())
, root_1);
// Haxe.g:406:87: ( propDecl )?
if ( stream_propDecl.hasNext() ) {
adaptor.addChild(root_1, stream_propDecl.nextTree());
}
stream_propDecl.reset();
// Haxe.g:406:97: ( typeTag )?
if ( stream_typeTag.hasNext() ) {
adaptor.addChild(root_1, stream_typeTag.nextTree());
}
stream_typeTag.reset();
// Haxe.g:406:106: ( varInit )?
if ( stream_varInit.hasNext() ) {
adaptor.addChild(root_1, stream_varInit.nextTree());
}
stream_varInit.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 63, varDeclPartList_StartIndex); }
}
return retval;
}
// $ANTLR end "varDeclPartList"
public static class propDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "propDecl"
// Haxe.g:409:1: propDecl : LPAREN a1= propAccessor COMMA a2= propAccessor RPAREN -> ^( PROPERTY_DECL[\"PROPERTY_DECL\"] $a1 $a2) ;
public final HaxeParser.propDecl_return propDecl() throws RecognitionException {
HaxeParser.propDecl_return retval = new HaxeParser.propDecl_return();
retval.start = input.LT(1);
int propDecl_StartIndex = input.index();
Object root_0 = null;
Token LPAREN323=null;
Token COMMA324=null;
Token RPAREN325=null;
HaxeParser.propAccessor_return a1 =null;
HaxeParser.propAccessor_return a2 =null;
Object LPAREN323_tree=null;
Object COMMA324_tree=null;
Object RPAREN325_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_propAccessor=new RewriteRuleSubtreeStream(adaptor,"rule propAccessor");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return retval; }
// Haxe.g:409:17: ( LPAREN a1= propAccessor COMMA a2= propAccessor RPAREN -> ^( PROPERTY_DECL[\"PROPERTY_DECL\"] $a1 $a2) )
// Haxe.g:409:19: LPAREN a1= propAccessor COMMA a2= propAccessor RPAREN
{
LPAREN323=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_propDecl5242); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN323);
pushFollow(FOLLOW_propAccessor_in_propDecl5246);
a1=propAccessor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_propAccessor.add(a1.getTree());
COMMA324=(Token)match(input,COMMA,FOLLOW_COMMA_in_propDecl5248); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA324);
pushFollow(FOLLOW_propAccessor_in_propDecl5252);
a2=propAccessor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_propAccessor.add(a2.getTree());
RPAREN325=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_propDecl5254); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN325);
// AST REWRITE
// elements: a2, a1
// token labels:
// rule labels: retval, a1, a2
// 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);
RewriteRuleSubtreeStream stream_a1=new RewriteRuleSubtreeStream(adaptor,"rule a1",a1!=null?a1.tree:null);
RewriteRuleSubtreeStream stream_a2=new RewriteRuleSubtreeStream(adaptor,"rule a2",a2!=null?a2.tree:null);
root_0 = (Object)adaptor.nil();
// 409:71: -> ^( PROPERTY_DECL[\"PROPERTY_DECL\"] $a1 $a2)
{
// Haxe.g:409:74: ^( PROPERTY_DECL[\"PROPERTY_DECL\"] $a1 $a2)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(PROPERTY_DECL, "PROPERTY_DECL")
, root_1);
adaptor.addChild(root_1, stream_a1.nextTree());
adaptor.addChild(root_1, stream_a2.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 64, propDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "propDecl"
public static class propAccessor_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "propAccessor"
// Haxe.g:412:1: propAccessor : ( IDENTIFIER | NULL | DEFAULT | DYNAMIC | NEVER );
public final HaxeParser.propAccessor_return propAccessor() throws RecognitionException {
HaxeParser.propAccessor_return retval = new HaxeParser.propAccessor_return();
retval.start = input.LT(1);
int propAccessor_StartIndex = input.index();
Object root_0 = null;
Token set326=null;
Object set326_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return retval; }
// Haxe.g:412:17: ( IDENTIFIER | NULL | DEFAULT | DYNAMIC | NEVER )
// Haxe.g:
{
root_0 = (Object)adaptor.nil();
set326=(Token)input.LT(1);
if ( input.LA(1)==DEFAULT||input.LA(1)==DYNAMIC||input.LA(1)==IDENTIFIER||input.LA(1)==NEVER||input.LA(1)==NULL ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0,
(Object)adaptor.create(set326)
);
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 = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 65, propAccessor_StartIndex); }
}
return retval;
}
// $ANTLR end "propAccessor"
public static class varInit_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "varInit"
// Haxe.g:419:1: varInit : EQ ^ expr ;
public final HaxeParser.varInit_return varInit() throws RecognitionException {
HaxeParser.varInit_return retval = new HaxeParser.varInit_return();
retval.start = input.LT(1);
int varInit_StartIndex = input.index();
Object root_0 = null;
Token EQ327=null;
HaxeParser.expr_return expr328 =null;
Object EQ327_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return retval; }
// Haxe.g:419:17: ( EQ ^ expr )
// Haxe.g:419:19: EQ ^ expr
{
root_0 = (Object)adaptor.nil();
EQ327=(Token)match(input,EQ,FOLLOW_EQ_in_varInit5413); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EQ327_tree =
new HaxeTree(EQ327)
;
root_0 = (Object)adaptor.becomeRoot(EQ327_tree, root_0);
}
pushFollow(FOLLOW_expr_in_varInit5419);
expr328=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr328.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 66, varInit_StartIndex); }
}
return retval;
}
// $ANTLR end "varInit"
public static class funcDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "funcDecl"
// Haxe.g:422:1: funcDecl : ( ( declAttrList )? FUNCTION NEW funcDeclPart -> ^( FUNCTION NEW ( declAttrList )? funcDeclPart ) | ( declAttrList )? FUNCTION IDENTIFIER ( typeParam )? funcDeclPart -> ^( FUNCTION IDENTIFIER ( declAttrList )? funcDeclPart ( typeParam )? ) );
public final HaxeParser.funcDecl_return funcDecl() throws RecognitionException {
HaxeParser.funcDecl_return retval = new HaxeParser.funcDecl_return();
retval.start = input.LT(1);
int funcDecl_StartIndex = input.index();
Object root_0 = null;
Token FUNCTION330=null;
Token NEW331=null;
Token FUNCTION334=null;
Token IDENTIFIER335=null;
HaxeParser.declAttrList_return declAttrList329 =null;
HaxeParser.funcDeclPart_return funcDeclPart332 =null;
HaxeParser.declAttrList_return declAttrList333 =null;
HaxeParser.typeParam_return typeParam336 =null;
HaxeParser.funcDeclPart_return funcDeclPart337 =null;
Object FUNCTION330_tree=null;
Object NEW331_tree=null;
Object FUNCTION334_tree=null;
Object IDENTIFIER335_tree=null;
RewriteRuleTokenStream stream_FUNCTION=new RewriteRuleTokenStream(adaptor,"token FUNCTION");
RewriteRuleTokenStream stream_NEW=new RewriteRuleTokenStream(adaptor,"token NEW");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_declAttrList=new RewriteRuleSubtreeStream(adaptor,"rule declAttrList");
RewriteRuleSubtreeStream stream_typeParam=new RewriteRuleSubtreeStream(adaptor,"rule typeParam");
RewriteRuleSubtreeStream stream_funcDeclPart=new RewriteRuleSubtreeStream(adaptor,"rule funcDeclPart");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return retval; }
// Haxe.g:422:17: ( ( declAttrList )? FUNCTION NEW funcDeclPart -> ^( FUNCTION NEW ( declAttrList )? funcDeclPart ) | ( declAttrList )? FUNCTION IDENTIFIER ( typeParam )? funcDeclPart -> ^( FUNCTION IDENTIFIER ( declAttrList )? funcDeclPart ( typeParam )? ) )
int alt101=2;
alt101 = dfa101.predict(input);
switch (alt101) {
case 1 :
// Haxe.g:422:19: ( declAttrList )? FUNCTION NEW funcDeclPart
{
// Haxe.g:422:19: ( declAttrList )?
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==DYNAMIC||LA98_0==INLINE||LA98_0==OVERRIDE||LA98_0==PRIVATE||LA98_0==PUBLIC||LA98_0==STATIC) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// Haxe.g:422:19: declAttrList
{
pushFollow(FOLLOW_declAttrList_in_funcDecl5451);
declAttrList329=declAttrList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declAttrList.add(declAttrList329.getTree());
}
break;
}
FUNCTION330=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcDecl5454); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION330);
NEW331=(Token)match(input,NEW,FOLLOW_NEW_in_funcDecl5456); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEW.add(NEW331);
pushFollow(FOLLOW_funcDeclPart_in_funcDecl5458);
funcDeclPart332=funcDeclPart();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_funcDeclPart.add(funcDeclPart332.getTree());
// AST REWRITE
// elements: FUNCTION, declAttrList, funcDeclPart, NEW
// 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 = (Object)adaptor.nil();
// 423:21: -> ^( FUNCTION NEW ( declAttrList )? funcDeclPart )
{
// Haxe.g:423:24: ^( FUNCTION NEW ( declAttrList )? funcDeclPart )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Function(stream_FUNCTION.nextToken())
, root_1);
adaptor.addChild(root_1,
stream_NEW.nextNode()
);
// Haxe.g:423:49: ( declAttrList )?
if ( stream_declAttrList.hasNext() ) {
adaptor.addChild(root_1, stream_declAttrList.nextTree());
}
stream_declAttrList.reset();
adaptor.addChild(root_1, stream_funcDeclPart.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:424:19: ( declAttrList )? FUNCTION IDENTIFIER ( typeParam )? funcDeclPart
{
// Haxe.g:424:19: ( declAttrList )?
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==DYNAMIC||LA99_0==INLINE||LA99_0==OVERRIDE||LA99_0==PRIVATE||LA99_0==PUBLIC||LA99_0==STATIC) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// Haxe.g:424:19: declAttrList
{
pushFollow(FOLLOW_declAttrList_in_funcDecl5516);
declAttrList333=declAttrList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declAttrList.add(declAttrList333.getTree());
}
break;
}
FUNCTION334=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcDecl5519); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION334);
IDENTIFIER335=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_funcDecl5521); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER335);
// Haxe.g:424:53: ( typeParam )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==LT) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// Haxe.g:424:53: typeParam
{
pushFollow(FOLLOW_typeParam_in_funcDecl5523);
typeParam336=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParam.add(typeParam336.getTree());
}
break;
}
pushFollow(FOLLOW_funcDeclPart_in_funcDecl5526);
funcDeclPart337=funcDeclPart();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_funcDeclPart.add(funcDeclPart337.getTree());
// AST REWRITE
// elements: typeParam, FUNCTION, declAttrList, IDENTIFIER, funcDeclPart
// 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 = (Object)adaptor.nil();
// 425:21: -> ^( FUNCTION IDENTIFIER ( declAttrList )? funcDeclPart ( typeParam )? )
{
// Haxe.g:425:24: ^( FUNCTION IDENTIFIER ( declAttrList )? funcDeclPart ( typeParam )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new Function(stream_FUNCTION.nextToken())
, root_1);
adaptor.addChild(root_1,
stream_IDENTIFIER.nextNode()
);
// Haxe.g:425:56: ( declAttrList )?
if ( stream_declAttrList.hasNext() ) {
adaptor.addChild(root_1, stream_declAttrList.nextTree());
}
stream_declAttrList.reset();
adaptor.addChild(root_1, stream_funcDeclPart.nextTree());
// Haxe.g:425:83: ( typeParam )?
if ( stream_typeParam.hasNext() ) {
adaptor.addChild(root_1, stream_typeParam.nextTree());
}
stream_typeParam.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 67, funcDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "funcDecl"
public static class funcDeclPart_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "funcDeclPart"
// Haxe.g:428:1: funcDeclPart : LPAREN ! ( paramList )? RPAREN ! ( typeTag )? ( block | SEMI !) ;
public final HaxeParser.funcDeclPart_return funcDeclPart() throws RecognitionException {
HaxeParser.funcDeclPart_return retval = new HaxeParser.funcDeclPart_return();
retval.start = input.LT(1);
int funcDeclPart_StartIndex = input.index();
Object root_0 = null;
Token LPAREN338=null;
Token RPAREN340=null;
Token SEMI343=null;
HaxeParser.paramList_return paramList339 =null;
HaxeParser.typeTag_return typeTag341 =null;
HaxeParser.block_return block342 =null;
Object LPAREN338_tree=null;
Object RPAREN340_tree=null;
Object SEMI343_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return retval; }
// Haxe.g:428:17: ( LPAREN ! ( paramList )? RPAREN ! ( typeTag )? ( block | SEMI !) )
// Haxe.g:428:19: LPAREN ! ( paramList )? RPAREN ! ( typeTag )? ( block | SEMI !)
{
root_0 = (Object)adaptor.nil();
LPAREN338=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_funcDeclPart5610); if (state.failed) return retval;
// Haxe.g:428:27: ( paramList )?
int alt102=2;
int LA102_0 = input.LA(1);
if ( (LA102_0==IDENTIFIER||LA102_0==QUES) ) {
alt102=1;
}
switch (alt102) {
case 1 :
// Haxe.g:428:27: paramList
{
pushFollow(FOLLOW_paramList_in_funcDeclPart5613);
paramList339=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, paramList339.getTree());
}
break;
}
RPAREN340=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_funcDeclPart5616); if (state.failed) return retval;
// Haxe.g:428:46: ( typeTag )?
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==COLON) ) {
alt103=1;
}
switch (alt103) {
case 1 :
// Haxe.g:428:46: typeTag
{
pushFollow(FOLLOW_typeTag_in_funcDeclPart5619);
typeTag341=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeTag341.getTree());
}
break;
}
// Haxe.g:428:55: ( block | SEMI !)
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==LBRACE) ) {
alt104=1;
}
else if ( (LA104_0==SEMI) ) {
alt104=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 104, 0, input);
throw nvae;
}
switch (alt104) {
case 1 :
// Haxe.g:428:56: block
{
pushFollow(FOLLOW_block_in_funcDeclPart5623);
block342=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, block342.getTree());
}
break;
case 2 :
// Haxe.g:428:64: SEMI !
{
SEMI343=(Token)match(input,SEMI,FOLLOW_SEMI_in_funcDeclPart5627); if (state.failed) return retval;
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 68, funcDeclPart_StartIndex); }
}
return retval;
}
// $ANTLR end "funcDeclPart"
public static class funcProtoDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "funcProtoDecl"
// Haxe.g:431:1: funcProtoDecl : ( declAttrList FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ( declAttrList )? ) | declAttrList FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( declAttrList )? ( typeParam )? ) | FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ) | FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( typeParam )? ) );
public final HaxeParser.funcProtoDecl_return funcProtoDecl() throws RecognitionException {
HaxeParser.funcProtoDecl_return retval = new HaxeParser.funcProtoDecl_return();
retval.start = input.LT(1);
int funcProtoDecl_StartIndex = input.index();
Object root_0 = null;
Token FUNCTION345=null;
Token NEW346=null;
Token LPAREN347=null;
Token RPAREN349=null;
Token SEMI351=null;
Token FUNCTION353=null;
Token IDENTIFIER354=null;
Token LPAREN356=null;
Token RPAREN358=null;
Token SEMI360=null;
Token FUNCTION361=null;
Token NEW362=null;
Token LPAREN363=null;
Token RPAREN365=null;
Token SEMI367=null;
Token FUNCTION368=null;
Token IDENTIFIER369=null;
Token LPAREN371=null;
Token RPAREN373=null;
Token SEMI375=null;
HaxeParser.declAttrList_return declAttrList344 =null;
HaxeParser.paramList_return paramList348 =null;
HaxeParser.typeTag_return typeTag350 =null;
HaxeParser.declAttrList_return declAttrList352 =null;
HaxeParser.typeParam_return typeParam355 =null;
HaxeParser.paramList_return paramList357 =null;
HaxeParser.typeTag_return typeTag359 =null;
HaxeParser.paramList_return paramList364 =null;
HaxeParser.typeTag_return typeTag366 =null;
HaxeParser.typeParam_return typeParam370 =null;
HaxeParser.paramList_return paramList372 =null;
HaxeParser.typeTag_return typeTag374 =null;
Object FUNCTION345_tree=null;
Object NEW346_tree=null;
Object LPAREN347_tree=null;
Object RPAREN349_tree=null;
Object SEMI351_tree=null;
Object FUNCTION353_tree=null;
Object IDENTIFIER354_tree=null;
Object LPAREN356_tree=null;
Object RPAREN358_tree=null;
Object SEMI360_tree=null;
Object FUNCTION361_tree=null;
Object NEW362_tree=null;
Object LPAREN363_tree=null;
Object RPAREN365_tree=null;
Object SEMI367_tree=null;
Object FUNCTION368_tree=null;
Object IDENTIFIER369_tree=null;
Object LPAREN371_tree=null;
Object RPAREN373_tree=null;
Object SEMI375_tree=null;
RewriteRuleTokenStream stream_FUNCTION=new RewriteRuleTokenStream(adaptor,"token FUNCTION");
RewriteRuleTokenStream stream_NEW=new RewriteRuleTokenStream(adaptor,"token NEW");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_typeTag=new RewriteRuleSubtreeStream(adaptor,"rule typeTag");
RewriteRuleSubtreeStream stream_declAttrList=new RewriteRuleSubtreeStream(adaptor,"rule declAttrList");
RewriteRuleSubtreeStream stream_typeParam=new RewriteRuleSubtreeStream(adaptor,"rule typeParam");
RewriteRuleSubtreeStream stream_paramList=new RewriteRuleSubtreeStream(adaptor,"rule paramList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return retval; }
// Haxe.g:432:5: ( declAttrList FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ( declAttrList )? ) | declAttrList FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( declAttrList )? ( typeParam )? ) | FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ) | FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( typeParam )? ) )
int alt115=4;
alt115 = dfa115.predict(input);
switch (alt115) {
case 1 :
// Haxe.g:432:9: declAttrList FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI
{
pushFollow(FOLLOW_declAttrList_in_funcProtoDecl5664);
declAttrList344=declAttrList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declAttrList.add(declAttrList344.getTree());
FUNCTION345=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcProtoDecl5666); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION345);
NEW346=(Token)match(input,NEW,FOLLOW_NEW_in_funcProtoDecl5668); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEW.add(NEW346);
LPAREN347=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_funcProtoDecl5670); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN347);
// Haxe.g:432:42: ( paramList )?
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==IDENTIFIER||LA105_0==QUES) ) {
alt105=1;
}
switch (alt105) {
case 1 :
// Haxe.g:432:42: paramList
{
pushFollow(FOLLOW_paramList_in_funcProtoDecl5672);
paramList348=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_paramList.add(paramList348.getTree());
}
break;
}
RPAREN349=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_funcProtoDecl5675); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN349);
// Haxe.g:432:60: ( typeTag )?
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==COLON) ) {
alt106=1;
}
switch (alt106) {
case 1 :
// Haxe.g:432:60: typeTag
{
pushFollow(FOLLOW_typeTag_in_funcProtoDecl5677);
typeTag350=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeTag.add(typeTag350.getTree());
}
break;
}
SEMI351=(Token)match(input,SEMI,FOLLOW_SEMI_in_funcProtoDecl5680); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI351);
// AST REWRITE
// elements: FUNCTION, typeTag, paramList, declAttrList, NEW
// 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 = (Object)adaptor.nil();
// 433:13: -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ( declAttrList )? )
{
// Haxe.g:433:16: ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ( declAttrList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
stream_FUNCTION.nextNode()
, root_1);
// Haxe.g:433:27: ( NEW )?
if ( stream_NEW.hasNext() ) {
adaptor.addChild(root_1,
stream_NEW.nextNode()
);
}
stream_NEW.reset();
// Haxe.g:433:32: ( paramList )?
if ( stream_paramList.hasNext() ) {
adaptor.addChild(root_1, stream_paramList.nextTree());
}
stream_paramList.reset();
// Haxe.g:433:43: ( typeTag )?
if ( stream_typeTag.hasNext() ) {
adaptor.addChild(root_1, stream_typeTag.nextTree());
}
stream_typeTag.reset();
// Haxe.g:433:52: ( declAttrList )?
if ( stream_declAttrList.hasNext() ) {
adaptor.addChild(root_1, stream_declAttrList.nextTree());
}
stream_declAttrList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:434:9: declAttrList FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI
{
pushFollow(FOLLOW_declAttrList_in_funcProtoDecl5721);
declAttrList352=declAttrList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declAttrList.add(declAttrList352.getTree());
FUNCTION353=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcProtoDecl5723); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION353);
IDENTIFIER354=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_funcProtoDecl5725); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER354);
// Haxe.g:434:42: ( typeParam )?
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==LT) ) {
alt107=1;
}
switch (alt107) {
case 1 :
// Haxe.g:434:42: typeParam
{
pushFollow(FOLLOW_typeParam_in_funcProtoDecl5727);
typeParam355=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParam.add(typeParam355.getTree());
}
break;
}
LPAREN356=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_funcProtoDecl5730); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN356);
// Haxe.g:434:60: ( paramList )?
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==IDENTIFIER||LA108_0==QUES) ) {
alt108=1;
}
switch (alt108) {
case 1 :
// Haxe.g:434:60: paramList
{
pushFollow(FOLLOW_paramList_in_funcProtoDecl5732);
paramList357=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_paramList.add(paramList357.getTree());
}
break;
}
RPAREN358=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_funcProtoDecl5735); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN358);
// Haxe.g:434:78: ( typeTag )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==COLON) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// Haxe.g:434:78: typeTag
{
pushFollow(FOLLOW_typeTag_in_funcProtoDecl5737);
typeTag359=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeTag.add(typeTag359.getTree());
}
break;
}
SEMI360=(Token)match(input,SEMI,FOLLOW_SEMI_in_funcProtoDecl5740); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI360);
// AST REWRITE
// elements: FUNCTION, declAttrList, typeTag, paramList, IDENTIFIER, typeParam
// 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 = (Object)adaptor.nil();
// 435:13: -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( declAttrList )? ( typeParam )? )
{
// Haxe.g:435:16: ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( declAttrList )? ( typeParam )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
stream_FUNCTION.nextNode()
, root_1);
// Haxe.g:435:27: ( IDENTIFIER )?
if ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1,
stream_IDENTIFIER.nextNode()
);
}
stream_IDENTIFIER.reset();
// Haxe.g:435:39: ( paramList )?
if ( stream_paramList.hasNext() ) {
adaptor.addChild(root_1, stream_paramList.nextTree());
}
stream_paramList.reset();
// Haxe.g:435:50: ( typeTag )?
if ( stream_typeTag.hasNext() ) {
adaptor.addChild(root_1, stream_typeTag.nextTree());
}
stream_typeTag.reset();
// Haxe.g:435:59: ( declAttrList )?
if ( stream_declAttrList.hasNext() ) {
adaptor.addChild(root_1, stream_declAttrList.nextTree());
}
stream_declAttrList.reset();
// Haxe.g:435:73: ( typeParam )?
if ( stream_typeParam.hasNext() ) {
adaptor.addChild(root_1, stream_typeParam.nextTree());
}
stream_typeParam.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// Haxe.g:436:9: FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI
{
FUNCTION361=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcProtoDecl5784); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION361);
NEW362=(Token)match(input,NEW,FOLLOW_NEW_in_funcProtoDecl5786); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEW.add(NEW362);
LPAREN363=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_funcProtoDecl5788); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN363);
// Haxe.g:436:29: ( paramList )?
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==IDENTIFIER||LA110_0==QUES) ) {
alt110=1;
}
switch (alt110) {
case 1 :
// Haxe.g:436:29: paramList
{
pushFollow(FOLLOW_paramList_in_funcProtoDecl5790);
paramList364=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_paramList.add(paramList364.getTree());
}
break;
}
RPAREN365=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_funcProtoDecl5793); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN365);
// Haxe.g:436:47: ( typeTag )?
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==COLON) ) {
alt111=1;
}
switch (alt111) {
case 1 :
// Haxe.g:436:47: typeTag
{
pushFollow(FOLLOW_typeTag_in_funcProtoDecl5795);
typeTag366=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeTag.add(typeTag366.getTree());
}
break;
}
SEMI367=(Token)match(input,SEMI,FOLLOW_SEMI_in_funcProtoDecl5798); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI367);
// AST REWRITE
// elements: NEW, FUNCTION, typeTag, paramList
// 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 = (Object)adaptor.nil();
// 437:13: -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? )
{
// Haxe.g:437:16: ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
stream_FUNCTION.nextNode()
, root_1);
// Haxe.g:437:27: ( NEW )?
if ( stream_NEW.hasNext() ) {
adaptor.addChild(root_1,
stream_NEW.nextNode()
);
}
stream_NEW.reset();
// Haxe.g:437:32: ( paramList )?
if ( stream_paramList.hasNext() ) {
adaptor.addChild(root_1, stream_paramList.nextTree());
}
stream_paramList.reset();
// Haxe.g:437:43: ( typeTag )?
if ( stream_typeTag.hasNext() ) {
adaptor.addChild(root_1, stream_typeTag.nextTree());
}
stream_typeTag.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// Haxe.g:438:9: FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI
{
FUNCTION368=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_funcProtoDecl5836); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION368);
IDENTIFIER369=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_funcProtoDecl5838); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER369);
// Haxe.g:438:29: ( typeParam )?
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==LT) ) {
alt112=1;
}
switch (alt112) {
case 1 :
// Haxe.g:438:29: typeParam
{
pushFollow(FOLLOW_typeParam_in_funcProtoDecl5840);
typeParam370=typeParam();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParam.add(typeParam370.getTree());
}
break;
}
LPAREN371=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_funcProtoDecl5843); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN371);
// Haxe.g:438:47: ( paramList )?
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==IDENTIFIER||LA113_0==QUES) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// Haxe.g:438:47: paramList
{
pushFollow(FOLLOW_paramList_in_funcProtoDecl5845);
paramList372=paramList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_paramList.add(paramList372.getTree());
}
break;
}
RPAREN373=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_funcProtoDecl5848); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN373);
// Haxe.g:438:65: ( typeTag )?
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==COLON) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// Haxe.g:438:65: typeTag
{
pushFollow(FOLLOW_typeTag_in_funcProtoDecl5850);
typeTag374=typeTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeTag.add(typeTag374.getTree());
}
break;
}
SEMI375=(Token)match(input,SEMI,FOLLOW_SEMI_in_funcProtoDecl5853); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI375);
// AST REWRITE
// elements: IDENTIFIER, FUNCTION, paramList, typeTag, typeParam
// 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 = (Object)adaptor.nil();
// 439:13: -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( typeParam )? )
{
// Haxe.g:439:16: ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( typeParam )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
stream_FUNCTION.nextNode()
, root_1);
// Haxe.g:439:27: ( IDENTIFIER )?
if ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1,
stream_IDENTIFIER.nextNode()
);
}
stream_IDENTIFIER.reset();
// Haxe.g:439:39: ( paramList )?
if ( stream_paramList.hasNext() ) {
adaptor.addChild(root_1, stream_paramList.nextTree());
}
stream_paramList.reset();
// Haxe.g:439:50: ( typeTag )?
if ( stream_typeTag.hasNext() ) {
adaptor.addChild(root_1, stream_typeTag.nextTree());
}
stream_typeTag.reset();
// Haxe.g:439:59: ( typeParam )?
if ( stream_typeParam.hasNext() ) {
adaptor.addChild(root_1, stream_typeParam.nextTree());
}
stream_typeParam.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 69, funcProtoDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "funcProtoDecl"
public static class interfaceDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceDecl"
// Haxe.g:442:1: interfaceDecl : ( topLevelAccessAttr )? INTERFACE type ( extending )? ( implementList )? LBRACE ! interfaceBody RBRACE !;
public final HaxeParser.interfaceDecl_return interfaceDecl() throws RecognitionException {
HaxeParser.interfaceDecl_return retval = new HaxeParser.interfaceDecl_return();
retval.start = input.LT(1);
int interfaceDecl_StartIndex = input.index();
Object root_0 = null;
Token INTERFACE377=null;
Token LBRACE381=null;
Token RBRACE383=null;
HaxeParser.topLevelAccessAttr_return topLevelAccessAttr376 =null;
HaxeParser.type_return type378 =null;
HaxeParser.extending_return extending379 =null;
HaxeParser.implementList_return implementList380 =null;
HaxeParser.interfaceBody_return interfaceBody382 =null;
Object INTERFACE377_tree=null;
Object LBRACE381_tree=null;
Object RBRACE383_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return retval; }
// Haxe.g:443:5: ( ( topLevelAccessAttr )? INTERFACE type ( extending )? ( implementList )? LBRACE ! interfaceBody RBRACE !)
// Haxe.g:443:9: ( topLevelAccessAttr )? INTERFACE type ( extending )? ( implementList )? LBRACE ! interfaceBody RBRACE !
{
root_0 = (Object)adaptor.nil();
// Haxe.g:443:9: ( topLevelAccessAttr )?
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==EXTERN||LA116_0==PRIVATE) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// Haxe.g:443:9: topLevelAccessAttr
{
pushFollow(FOLLOW_topLevelAccessAttr_in_interfaceDecl5912);
topLevelAccessAttr376=topLevelAccessAttr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, topLevelAccessAttr376.getTree());
}
break;
}
INTERFACE377=(Token)match(input,INTERFACE,FOLLOW_INTERFACE_in_interfaceDecl5915); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INTERFACE377_tree =
(Object)adaptor.create(INTERFACE377)
;
adaptor.addChild(root_0, INTERFACE377_tree);
}
pushFollow(FOLLOW_type_in_interfaceDecl5917);
type378=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type378.getTree());
// Haxe.g:443:44: ( extending )?
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==EXTENDS) ) {
alt117=1;
}
switch (alt117) {
case 1 :
// Haxe.g:443:44: extending
{
pushFollow(FOLLOW_extending_in_interfaceDecl5919);
extending379=extending();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, extending379.getTree());
}
break;
}
// Haxe.g:443:55: ( implementList )?
int alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==IMPLEMENTS) ) {
alt118=1;
}
switch (alt118) {
case 1 :
// Haxe.g:443:55: implementList
{
pushFollow(FOLLOW_implementList_in_interfaceDecl5922);
implementList380=implementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implementList380.getTree());
}
break;
}
LBRACE381=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_interfaceDecl5925); if (state.failed) return retval;
pushFollow(FOLLOW_interfaceBody_in_interfaceDecl5928);
interfaceBody382=interfaceBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceBody382.getTree());
RBRACE383=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_interfaceDecl5930); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 70, interfaceDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceDecl"
public static class interfaceBody_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceBody"
// Haxe.g:446:1: interfaceBody : ( varDecl interfaceBody | funcProtoDecl interfaceBody |);
public final HaxeParser.interfaceBody_return interfaceBody() throws RecognitionException {
HaxeParser.interfaceBody_return retval = new HaxeParser.interfaceBody_return();
retval.start = input.LT(1);
int interfaceBody_StartIndex = input.index();
Object root_0 = null;
HaxeParser.varDecl_return varDecl384 =null;
HaxeParser.interfaceBody_return interfaceBody385 =null;
HaxeParser.funcProtoDecl_return funcProtoDecl386 =null;
HaxeParser.interfaceBody_return interfaceBody387 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return retval; }
// Haxe.g:447:5: ( varDecl interfaceBody | funcProtoDecl interfaceBody |)
int alt119=3;
switch ( input.LA(1) ) {
case VAR:
{
alt119=1;
}
break;
case DYNAMIC:
case FUNCTION:
case INLINE:
case OVERRIDE:
case PRIVATE:
case PUBLIC:
case STATIC:
{
alt119=2;
}
break;
case EOF:
case RBRACE:
{
alt119=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 119, 0, input);
throw nvae;
}
switch (alt119) {
case 1 :
// Haxe.g:447:9: varDecl interfaceBody
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varDecl_in_interfaceBody5954);
varDecl384=varDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDecl384.getTree());
pushFollow(FOLLOW_interfaceBody_in_interfaceBody5956);
interfaceBody385=interfaceBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceBody385.getTree());
}
break;
case 2 :
// Haxe.g:448:9: funcProtoDecl interfaceBody
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_funcProtoDecl_in_interfaceBody5966);
funcProtoDecl386=funcProtoDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcProtoDecl386.getTree());
pushFollow(FOLLOW_interfaceBody_in_interfaceBody5968);
interfaceBody387=interfaceBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceBody387.getTree());
}
break;
case 3 :
// Haxe.g:451:5:
{
root_0 = (Object)adaptor.nil();
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 71, interfaceBody_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceBody"
public static class implementList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "implementList"
// Haxe.g:453:1: implementList : implementing ( COMMA implementing )* -> ^( IMPLEMENT_LIST[\"ImplementList\"] ( implementing )+ ) ;
public final HaxeParser.implementList_return implementList() throws RecognitionException {
HaxeParser.implementList_return retval = new HaxeParser.implementList_return();
retval.start = input.LT(1);
int implementList_StartIndex = input.index();
Object root_0 = null;
Token COMMA389=null;
HaxeParser.implementing_return implementing388 =null;
HaxeParser.implementing_return implementing390 =null;
Object COMMA389_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_implementing=new RewriteRuleSubtreeStream(adaptor,"rule implementing");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return retval; }
// Haxe.g:453:17: ( implementing ( COMMA implementing )* -> ^( IMPLEMENT_LIST[\"ImplementList\"] ( implementing )+ ) )
// Haxe.g:453:19: implementing ( COMMA implementing )*
{
pushFollow(FOLLOW_implementing_in_implementList6006);
implementing388=implementing();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_implementing.add(implementing388.getTree());
// Haxe.g:453:32: ( COMMA implementing )*
loop120:
do {
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==COMMA) ) {
alt120=1;
}
switch (alt120) {
case 1 :
// Haxe.g:453:33: COMMA implementing
{
COMMA389=(Token)match(input,COMMA,FOLLOW_COMMA_in_implementList6009); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA389);
pushFollow(FOLLOW_implementing_in_implementList6011);
implementing390=implementing();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_implementing.add(implementing390.getTree());
}
break;
default :
break loop120;
}
} while (true);
// AST REWRITE
// elements: implementing
// 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 = (Object)adaptor.nil();
// 453:54: -> ^( IMPLEMENT_LIST[\"ImplementList\"] ( implementing )+ )
{
// Haxe.g:453:57: ^( IMPLEMENT_LIST[\"ImplementList\"] ( implementing )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(
new HaxeTree(IMPLEMENT_LIST, "ImplementList")
, root_1);
if ( !(stream_implementing.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_implementing.hasNext() ) {
adaptor.addChild(root_1, stream_implementing.nextTree());
}
stream_implementing.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 72, implementList_StartIndex); }
}
return retval;
}
// $ANTLR end "implementList"
public static class implementing_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "implementing"
// Haxe.g:456:1: implementing : IMPLEMENTS ! type ;
public final HaxeParser.implementing_return implementing() throws RecognitionException {
HaxeParser.implementing_return retval = new HaxeParser.implementing_return();
retval.start = input.LT(1);
int implementing_StartIndex = input.index();
Object root_0 = null;
Token IMPLEMENTS391=null;
HaxeParser.type_return type392 =null;
Object IMPLEMENTS391_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return retval; }
// Haxe.g:456:17: ( IMPLEMENTS ! type )
// Haxe.g:456:19: IMPLEMENTS ! type
{
root_0 = (Object)adaptor.nil();
IMPLEMENTS391=(Token)match(input,IMPLEMENTS,FOLLOW_IMPLEMENTS_in_implementing6058); if (state.failed) return retval;
pushFollow(FOLLOW_type_in_implementing6061);
type392=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type392.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 73, implementing_StartIndex); }
}
return retval;
}
// $ANTLR end "implementing"
public static class extending_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "extending"
// Haxe.g:459:1: extending : EXTENDS ^ type ;
public final HaxeParser.extending_return extending() throws RecognitionException {
HaxeParser.extending_return retval = new HaxeParser.extending_return();
retval.start = input.LT(1);
int extending_StartIndex = input.index();
Object root_0 = null;
Token EXTENDS393=null;
HaxeParser.type_return type394 =null;
Object EXTENDS393_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return retval; }
// Haxe.g:459:17: ( EXTENDS ^ type )
// Haxe.g:459:19: EXTENDS ^ type
{
root_0 = (Object)adaptor.nil();
EXTENDS393=(Token)match(input,EXTENDS,FOLLOW_EXTENDS_in_extending6108); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDS393_tree =
new HaxeTree(EXTENDS393)
;
root_0 = (Object)adaptor.becomeRoot(EXTENDS393_tree, root_0);
}
pushFollow(FOLLOW_type_in_extending6114);
type394=type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type394.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 74, extending_StartIndex); }
}
return retval;
}
// $ANTLR end "extending"
public static class typedefDecl_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typedefDecl"
// Haxe.g:462:1: typedefDecl : TYPEDEF ^ IDENTIFIER EQ ! funcType ;
public final HaxeParser.typedefDecl_return typedefDecl() throws RecognitionException {
HaxeParser.typedefDecl_return retval = new HaxeParser.typedefDecl_return();
retval.start = input.LT(1);
int typedefDecl_StartIndex = input.index();
Object root_0 = null;
Token TYPEDEF395=null;
Token IDENTIFIER396=null;
Token EQ397=null;
HaxeParser.funcType_return funcType398 =null;
Object TYPEDEF395_tree=null;
Object IDENTIFIER396_tree=null;
Object EQ397_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return retval; }
// Haxe.g:462:17: ( TYPEDEF ^ IDENTIFIER EQ ! funcType )
// Haxe.g:462:19: TYPEDEF ^ IDENTIFIER EQ ! funcType
{
root_0 = (Object)adaptor.nil();
TYPEDEF395=(Token)match(input,TYPEDEF,FOLLOW_TYPEDEF_in_typedefDecl6147); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPEDEF395_tree =
(Object)adaptor.create(TYPEDEF395)
;
root_0 = (Object)adaptor.becomeRoot(TYPEDEF395_tree, root_0);
}
IDENTIFIER396=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typedefDecl6150); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER396_tree =
(Object)adaptor.create(IDENTIFIER396)
;
adaptor.addChild(root_0, IDENTIFIER396_tree);
}
EQ397=(Token)match(input,EQ,FOLLOW_EQ_in_typedefDecl6152); if (state.failed) return retval;
pushFollow(FOLLOW_funcType_in_typedefDecl6155);
funcType398=funcType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcType398.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 75, typedefDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "typedefDecl"
public static class typeExtend_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "typeExtend"
// Haxe.g:465:1: typeExtend : GT ^ funcType ;
public final HaxeParser.typeExtend_return typeExtend() throws RecognitionException {
HaxeParser.typeExtend_return retval = new HaxeParser.typeExtend_return();
retval.start = input.LT(1);
int typeExtend_StartIndex = input.index();
Object root_0 = null;
Token GT399=null;
HaxeParser.funcType_return funcType400 =null;
Object GT399_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return retval; }
// Haxe.g:465:17: ( GT ^ funcType )
// Haxe.g:465:19: GT ^ funcType
{
root_0 = (Object)adaptor.nil();
GT399=(Token)match(input,GT,FOLLOW_GT_in_typeExtend6189); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GT399_tree =
(Object)adaptor.create(GT399)
;
root_0 = (Object)adaptor.becomeRoot(GT399_tree, root_0);
}
pushFollow(FOLLOW_funcType_in_typeExtend6192);
funcType400=funcType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcType400.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 76, typeExtend_StartIndex); }
}
return retval;
}
// $ANTLR end "typeExtend"
public static class objLit_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "objLit"
// Haxe.g:468:1: objLit : LBRACE ! objLitElemList RBRACE !;
public final HaxeParser.objLit_return objLit() throws RecognitionException {
HaxeParser.objLit_return retval = new HaxeParser.objLit_return();
retval.start = input.LT(1);
int objLit_StartIndex = input.index();
Object root_0 = null;
Token LBRACE401=null;
Token RBRACE403=null;
HaxeParser.objLitElemList_return objLitElemList402 =null;
Object LBRACE401_tree=null;
Object RBRACE403_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return retval; }
// Haxe.g:468:17: ( LBRACE ! objLitElemList RBRACE !)
// Haxe.g:468:19: LBRACE ! objLitElemList RBRACE !
{
root_0 = (Object)adaptor.nil();
LBRACE401=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_objLit6226); if (state.failed) return retval;
pushFollow(FOLLOW_objLitElemList_in_objLit6229);
objLitElemList402=objLitElemList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, objLitElemList402.getTree());
RBRACE403=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_objLit6231); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 77, objLit_StartIndex); }
}
return retval;
}
// $ANTLR end "objLit"
public static class anonTypeField_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "anonTypeField"
// Haxe.g:471:1: anonTypeField : IDENTIFIER COLON ! funcType ;
public final HaxeParser.anonTypeField_return anonTypeField() throws RecognitionException {
HaxeParser.anonTypeField_return retval = new HaxeParser.anonTypeField_return();
retval.start = input.LT(1);
int anonTypeField_StartIndex = input.index();
Object root_0 = null;
Token IDENTIFIER404=null;
Token COLON405=null;
HaxeParser.funcType_return funcType406 =null;
Object IDENTIFIER404_tree=null;
Object COLON405_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return retval; }
// Haxe.g:471:17: ( IDENTIFIER COLON ! funcType )
// Haxe.g:471:19: IDENTIFIER COLON ! funcType
{
root_0 = (Object)adaptor.nil();
IDENTIFIER404=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_anonTypeField6259); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER404_tree =
(Object)adaptor.create(IDENTIFIER404)
;
adaptor.addChild(root_0, IDENTIFIER404_tree);
}
COLON405=(Token)match(input,COLON,FOLLOW_COLON_in_anonTypeField6261); if (state.failed) return retval;
pushFollow(FOLLOW_funcType_in_anonTypeField6264);
funcType406=funcType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcType406.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 78, anonTypeField_StartIndex); }
}
return retval;
}
// $ANTLR end "anonTypeField"
public static class objLitElemList_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "objLitElemList"
// Haxe.g:474:1: objLitElemList : objLitElem ( COMMA ! objLitElem )* ;
public final HaxeParser.objLitElemList_return objLitElemList() throws RecognitionException {
HaxeParser.objLitElemList_return retval = new HaxeParser.objLitElemList_return();
retval.start = input.LT(1);
int objLitElemList_StartIndex = input.index();
Object root_0 = null;
Token COMMA408=null;
HaxeParser.objLitElem_return objLitElem407 =null;
HaxeParser.objLitElem_return objLitElem409 =null;
Object COMMA408_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return retval; }
// Haxe.g:474:17: ( objLitElem ( COMMA ! objLitElem )* )
// Haxe.g:474:19: objLitElem ( COMMA ! objLitElem )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_objLitElem_in_objLitElemList6294);
objLitElem407=objLitElem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, objLitElem407.getTree());
// Haxe.g:474:30: ( COMMA ! objLitElem )*
loop121:
do {
int alt121=2;
int LA121_0 = input.LA(1);
if ( (LA121_0==COMMA) ) {
alt121=1;
}
switch (alt121) {
case 1 :
// Haxe.g:474:31: COMMA ! objLitElem
{
COMMA408=(Token)match(input,COMMA,FOLLOW_COMMA_in_objLitElemList6297); if (state.failed) return retval;
pushFollow(FOLLOW_objLitElem_in_objLitElemList6300);
objLitElem409=objLitElem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, objLitElem409.getTree());
}
break;
default :
break loop121;
}
} while (true);
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 79, objLitElemList_StartIndex); }
}
return retval;
}
// $ANTLR end "objLitElemList"
public static class objLitElem_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "objLitElem"
// Haxe.g:477:1: objLitElem : IDENTIFIER COLON ! expr ;
public final HaxeParser.objLitElem_return objLitElem() throws RecognitionException {
HaxeParser.objLitElem_return retval = new HaxeParser.objLitElem_return();
retval.start = input.LT(1);
int objLitElem_StartIndex = input.index();
Object root_0 = null;
Token IDENTIFIER410=null;
Token COLON411=null;
HaxeParser.expr_return expr412 =null;
Object IDENTIFIER410_tree=null;
Object COLON411_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return retval; }
// Haxe.g:477:17: ( IDENTIFIER COLON ! expr )
// Haxe.g:477:19: IDENTIFIER COLON ! expr
{
root_0 = (Object)adaptor.nil();
IDENTIFIER410=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_objLitElem6336); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER410_tree =
(Object)adaptor.create(IDENTIFIER410)
;
adaptor.addChild(root_0, IDENTIFIER410_tree);
}
COLON411=(Token)match(input,COLON,FOLLOW_COLON_in_objLitElem6338); if (state.failed) return retval;
pushFollow(FOLLOW_expr_in_objLitElem6341);
expr412=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr412.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 80, objLitElem_StartIndex); }
}
return retval;
}
// $ANTLR end "objLitElem"
public static class elementarySymbol_return extends ParserRuleReturnScope {
Object tree;
public Object getTree() { return tree; }
};
// $ANTLR start "elementarySymbol"
// Haxe.g:481:1: elementarySymbol : ( LONGLITERAL -> LONGLITERAL[$LONGLITERAL, \"Int\"] | NULL -> NULL[$NULL,\"Unknown<0>\"] | INTLITERAL -> INTLITERAL[$INTLITERAL, \"Int\"] | STRINGLITERAL -> STRINGLITERAL[$STRINGLITERAL,\"String\"] | CHARLITERAL -> CHARLITERAL[$CHARLITERAL, \"String\"] | FLOATNUM -> FLOATNUM[$FLOATNUM, \"Float\"] | TRUE -> TRUE[$TRUE,\"Bool\"] | FALSE -> FALSE[$FALSE,\"Bool\"] );
public final HaxeParser.elementarySymbol_return elementarySymbol() throws RecognitionException {
HaxeParser.elementarySymbol_return retval = new HaxeParser.elementarySymbol_return();
retval.start = input.LT(1);
int elementarySymbol_StartIndex = input.index();
Object root_0 = null;
Token LONGLITERAL413=null;
Token NULL414=null;
Token INTLITERAL415=null;
Token STRINGLITERAL416=null;
Token CHARLITERAL417=null;
Token FLOATNUM418=null;
Token TRUE419=null;
Token FALSE420=null;
Object LONGLITERAL413_tree=null;
Object NULL414_tree=null;
Object INTLITERAL415_tree=null;
Object STRINGLITERAL416_tree=null;
Object CHARLITERAL417_tree=null;
Object FLOATNUM418_tree=null;
Object TRUE419_tree=null;
Object FALSE420_tree=null;
RewriteRuleTokenStream stream_INTLITERAL=new RewriteRuleTokenStream(adaptor,"token INTLITERAL");
RewriteRuleTokenStream stream_FALSE=new RewriteRuleTokenStream(adaptor,"token FALSE");
RewriteRuleTokenStream stream_TRUE=new RewriteRuleTokenStream(adaptor,"token TRUE");
RewriteRuleTokenStream stream_FLOATNUM=new RewriteRuleTokenStream(adaptor,"token FLOATNUM");
RewriteRuleTokenStream stream_STRINGLITERAL=new RewriteRuleTokenStream(adaptor,"token STRINGLITERAL");
RewriteRuleTokenStream stream_NULL=new RewriteRuleTokenStream(adaptor,"token NULL");
RewriteRuleTokenStream stream_CHARLITERAL=new RewriteRuleTokenStream(adaptor,"token CHARLITERAL");
RewriteRuleTokenStream stream_LONGLITERAL=new RewriteRuleTokenStream(adaptor,"token LONGLITERAL");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return retval; }
// Haxe.g:482:5: ( LONGLITERAL -> LONGLITERAL[$LONGLITERAL, \"Int\"] | NULL -> NULL[$NULL,\"Unknown<0>\"] | INTLITERAL -> INTLITERAL[$INTLITERAL, \"Int\"] | STRINGLITERAL -> STRINGLITERAL[$STRINGLITERAL,\"String\"] | CHARLITERAL -> CHARLITERAL[$CHARLITERAL, \"String\"] | FLOATNUM -> FLOATNUM[$FLOATNUM, \"Float\"] | TRUE -> TRUE[$TRUE,\"Bool\"] | FALSE -> FALSE[$FALSE,\"Bool\"] )
int alt122=8;
switch ( input.LA(1) ) {
case LONGLITERAL:
{
alt122=1;
}
break;
case NULL:
{
alt122=2;
}
break;
case INTLITERAL:
{
alt122=3;
}
break;
case STRINGLITERAL:
{
alt122=4;
}
break;
case CHARLITERAL:
{
alt122=5;
}
break;
case FLOATNUM:
{
alt122=6;
}
break;
case TRUE:
{
alt122=7;
}
break;
case FALSE:
{
alt122=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 122, 0, input);
throw nvae;
}
switch (alt122) {
case 1 :
// Haxe.g:482:7: LONGLITERAL
{
LONGLITERAL413=(Token)match(input,LONGLITERAL,FOLLOW_LONGLITERAL_in_elementarySymbol6375); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LONGLITERAL.add(LONGLITERAL413);
// AST REWRITE
// elements: LONGLITERAL
// 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 = (Object)adaptor.nil();
// 482:21: -> LONGLITERAL[$LONGLITERAL, \"Int\"]
{
adaptor.addChild(root_0,
new Constant(LONGLITERAL, LONGLITERAL413, "Int")
);
}
retval.tree = root_0;
}
}
break;
case 2 :
// Haxe.g:483:7: NULL
{
NULL414=(Token)match(input,NULL,FOLLOW_NULL_in_elementarySymbol6393); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NULL.add(NULL414);
// AST REWRITE
// elements: NULL
// 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 = (Object)adaptor.nil();
// 483:21: -> NULL[$NULL,\"Unknown<0>\"]
{
adaptor.addChild(root_0,
new Constant(NULL, NULL414, "Unknown<0>")
);
}
retval.tree = root_0;
}
}
break;
case 3 :
// Haxe.g:484:7: INTLITERAL
{
INTLITERAL415=(Token)match(input,INTLITERAL,FOLLOW_INTLITERAL_in_elementarySymbol6418); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTLITERAL.add(INTLITERAL415);
// AST REWRITE
// elements: INTLITERAL
// 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 = (Object)adaptor.nil();
// 484:21: -> INTLITERAL[$INTLITERAL, \"Int\"]
{
adaptor.addChild(root_0,
new Constant(INTLITERAL, INTLITERAL415, "Int")
);
}
retval.tree = root_0;
}
}
break;
case 4 :
// Haxe.g:485:7: STRINGLITERAL
{
STRINGLITERAL416=(Token)match(input,STRINGLITERAL,FOLLOW_STRINGLITERAL_in_elementarySymbol6437); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRINGLITERAL.add(STRINGLITERAL416);
// AST REWRITE
// elements: STRINGLITERAL
// 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 = (Object)adaptor.nil();
// 485:21: -> STRINGLITERAL[$STRINGLITERAL,\"String\"]
{
adaptor.addChild(root_0,
new Constant(STRINGLITERAL, STRINGLITERAL416, "String")
);
}
retval.tree = root_0;
}
}
break;
case 5 :
// Haxe.g:486:7: CHARLITERAL
{
CHARLITERAL417=(Token)match(input,CHARLITERAL,FOLLOW_CHARLITERAL_in_elementarySymbol6453); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CHARLITERAL.add(CHARLITERAL417);
// AST REWRITE
// elements: CHARLITERAL
// 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 = (Object)adaptor.nil();
// 486:21: -> CHARLITERAL[$CHARLITERAL, \"String\"]
{
adaptor.addChild(root_0,
new Constant(CHARLITERAL, CHARLITERAL417, "String")
);
}
retval.tree = root_0;
}
}
break;
case 6 :
// Haxe.g:487:7: FLOATNUM
{
FLOATNUM418=(Token)match(input,FLOATNUM,FOLLOW_FLOATNUM_in_elementarySymbol6471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FLOATNUM.add(FLOATNUM418);
// AST REWRITE
// elements: FLOATNUM
// 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 = (Object)adaptor.nil();
// 487:21: -> FLOATNUM[$FLOATNUM, \"Float\"]
{
adaptor.addChild(root_0,
new Constant(FLOATNUM, FLOATNUM418, "Float")
);
}
retval.tree = root_0;
}
}
break;
case 7 :
// Haxe.g:488:7: TRUE
{
TRUE419=(Token)match(input,TRUE,FOLLOW_TRUE_in_elementarySymbol6492); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TRUE.add(TRUE419);
// AST REWRITE
// elements: TRUE
// 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 = (Object)adaptor.nil();
// 488:21: -> TRUE[$TRUE,\"Bool\"]
{
adaptor.addChild(root_0,
new Constant(TRUE, TRUE419, "Bool")
);
}
retval.tree = root_0;
}
}
break;
case 8 :
// Haxe.g:489:7: FALSE
{
FALSE420=(Token)match(input,FALSE,FOLLOW_FALSE_in_elementarySymbol6517); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FALSE.add(FALSE420);
// AST REWRITE
// elements: FALSE
// 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 = (Object)adaptor.nil();
// 489:21: -> FALSE[$FALSE,\"Bool\"]
{
adaptor.addChild(root_0,
new Constant(FALSE, FALSE420, "Bool")
);
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 81, elementarySymbol_StartIndex); }
}
return retval;
}
// $ANTLR end "elementarySymbol"
// $ANTLR start synpred6_Haxe
public final void synpred6_Haxe_fragment() throws RecognitionException {
// Haxe.g:97:40: ()
// Haxe.g:97:40:
{
}
}
// $ANTLR end synpred6_Haxe
// $ANTLR start synpred53_Haxe
public final void synpred53_Haxe_fragment() throws RecognitionException {
// Haxe.g:216:45: ( typeParam )
// Haxe.g:216:45: typeParam
{
pushFollow(FOLLOW_typeParam_in_synpred53_Haxe1849);
typeParam();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred53_Haxe
// $ANTLR start synpred54_Haxe
public final void synpred54_Haxe_fragment() throws RecognitionException {
// Haxe.g:219:19: ( LT typeList typeParamPart )
// Haxe.g:219:19: LT typeList typeParamPart
{
match(input,LT,FOLLOW_LT_in_synpred54_Haxe1885); if (state.failed) return ;
pushFollow(FOLLOW_typeList_in_synpred54_Haxe1887);
typeList();
state._fsp--;
if (state.failed) return ;
pushFollow(FOLLOW_typeParamPart_in_synpred54_Haxe1889);
typeParamPart();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred54_Haxe
// $ANTLR start synpred55_Haxe
public final void synpred55_Haxe_fragment() throws RecognitionException {
// Haxe.g:223:19: ( LT typeList GTGT )
// Haxe.g:223:19: LT typeList GTGT
{
match(input,LT,FOLLOW_LT_in_synpred55_Haxe1983); if (state.failed) return ;
pushFollow(FOLLOW_typeList_in_synpred55_Haxe1985);
typeList();
state._fsp--;
if (state.failed) return ;
match(input,GTGT,FOLLOW_GTGT_in_synpred55_Haxe1987); if (state.failed) return ;
}
}
// $ANTLR end synpred55_Haxe
// $ANTLR start synpred59_Haxe
public final void synpred59_Haxe_fragment() throws RecognitionException {
// Haxe.g:237:46: ( statementOrLast ELSE )
// Haxe.g:237:46: statementOrLast ELSE
{
pushFollow(FOLLOW_statementOrLast_in_synpred59_Haxe2208);
statementOrLast();
state._fsp--;
if (state.failed) return ;
match(input,ELSE,FOLLOW_ELSE_in_synpred59_Haxe2210); if (state.failed) return ;
}
}
// $ANTLR end synpred59_Haxe
// $ANTLR start synpred79_Haxe
public final void synpred79_Haxe_fragment() throws RecognitionException {
// Haxe.g:279:32: ( assignOp ternaryExpr )
// Haxe.g:279:32: assignOp ternaryExpr
{
pushFollow(FOLLOW_assignOp_in_synpred79_Haxe2906);
assignOp();
state._fsp--;
if (state.failed) return ;
pushFollow(FOLLOW_ternaryExpr_in_synpred79_Haxe2909);
ternaryExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred79_Haxe
// $ANTLR start synpred80_Haxe
public final void synpred80_Haxe_fragment() throws RecognitionException {
// Haxe.g:282:32: ( QUES expr COLON ternaryExpr )
// Haxe.g:282:32: QUES expr COLON ternaryExpr
{
match(input,QUES,FOLLOW_QUES_in_synpred80_Haxe2943); if (state.failed) return ;
pushFollow(FOLLOW_expr_in_synpred80_Haxe2946);
expr();
state._fsp--;
if (state.failed) return ;
match(input,COLON,FOLLOW_COLON_in_synpred80_Haxe2948); if (state.failed) return ;
pushFollow(FOLLOW_ternaryExpr_in_synpred80_Haxe2951);
ternaryExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred80_Haxe
// $ANTLR start synpred81_Haxe
public final void synpred81_Haxe_fragment() throws RecognitionException {
// Haxe.g:285:33: ( BARBAR logicAndExpr )
// Haxe.g:285:33: BARBAR logicAndExpr
{
match(input,BARBAR,FOLLOW_BARBAR_in_synpred81_Haxe2985); if (state.failed) return ;
pushFollow(FOLLOW_logicAndExpr_in_synpred81_Haxe2991);
logicAndExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred81_Haxe
// $ANTLR start synpred82_Haxe
public final void synpred82_Haxe_fragment() throws RecognitionException {
// Haxe.g:288:28: ( AMPAMP iterExpr )
// Haxe.g:288:28: AMPAMP iterExpr
{
match(input,AMPAMP,FOLLOW_AMPAMP_in_synpred82_Haxe3027); if (state.failed) return ;
pushFollow(FOLLOW_iterExpr_in_synpred82_Haxe3033);
iterExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred82_Haxe
// $ANTLR start synpred83_Haxe
public final void synpred83_Haxe_fragment() throws RecognitionException {
// Haxe.g:291:28: ( ELLIPSIS cmpExpr )
// Haxe.g:291:28: ELLIPSIS cmpExpr
{
match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_synpred83_Haxe3086); if (state.failed) return ;
pushFollow(FOLLOW_cmpExpr_in_synpred83_Haxe3092);
cmpExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred83_Haxe
// $ANTLR start synpred89_Haxe
public final void synpred89_Haxe_fragment() throws RecognitionException {
// Haxe.g:294:28: ( ( EQEQ | BANGEQ | GTEQ | LTEQ | GT | LT ) bitExpr )
// Haxe.g:294:28: ( EQEQ | BANGEQ | GTEQ | LTEQ | GT | LT ) bitExpr
{
if ( input.LA(1)==BANGEQ||input.LA(1)==EQEQ||(input.LA(1) >= GT && input.LA(1) <= GTEQ)||(input.LA(1) >= LT && input.LA(1) <= LTEQ) ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_bitExpr_in_synpred89_Haxe3310);
bitExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred89_Haxe
// $ANTLR start synpred92_Haxe
public final void synpred92_Haxe_fragment() throws RecognitionException {
// Haxe.g:303:30: ( ( BAR | AMP | CARET ) shiftExpr )
// Haxe.g:303:30: ( BAR | AMP | CARET ) shiftExpr
{
if ( input.LA(1)==AMP||input.LA(1)==BAR||input.LA(1)==CARET ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_shiftExpr_in_synpred92_Haxe3441);
shiftExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred92_Haxe
// $ANTLR start synpred95_Haxe
public final void synpred95_Haxe_fragment() throws RecognitionException {
// Haxe.g:309:28: ( ( LTLT | GTGT | GTGTGT ) addExpr )
// Haxe.g:309:28: ( LTLT | GTGT | GTGTGT ) addExpr
{
if ( input.LA(1)==GTGT||input.LA(1)==GTGTGT||input.LA(1)==LTLT ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_addExpr_in_synpred95_Haxe3566);
addExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred95_Haxe
// $ANTLR start synpred97_Haxe
public final void synpred97_Haxe_fragment() throws RecognitionException {
// Haxe.g:315:29: ( ( PLUS | SUB ) multExpr )
// Haxe.g:315:29: ( PLUS | SUB ) multExpr
{
if ( input.LA(1)==PLUS||input.LA(1)==SUB ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_multExpr_in_synpred97_Haxe3664);
multExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred97_Haxe
// $ANTLR start synpred100_Haxe
public final void synpred100_Haxe_fragment() throws RecognitionException {
// Haxe.g:320:29: ( ( STAR | SLASH | PERCENT ) unarExpr )
// Haxe.g:320:29: ( STAR | SLASH | PERCENT ) unarExpr
{
if ( input.LA(1)==PERCENT||input.LA(1)==SLASH||input.LA(1)==STAR ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return ;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_unarExpr_in_synpred100_Haxe3795);
unarExpr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred100_Haxe
// $ANTLR start synpred106_Haxe
public final void synpred106_Haxe_fragment() throws RecognitionException {
// Haxe.g:332:31: ( PLUSPLUS )
// Haxe.g:332:31: PLUSPLUS
{
match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_synpred106_Haxe3949); if (state.failed) return ;
}
}
// $ANTLR end synpred106_Haxe
// $ANTLR start synpred107_Haxe
public final void synpred107_Haxe_fragment() throws RecognitionException {
// Haxe.g:332:48: ( SUBSUB )
// Haxe.g:332:48: SUBSUB
{
match(input,SUBSUB,FOLLOW_SUBSUB_in_synpred107_Haxe3955); if (state.failed) return ;
}
}
// $ANTLR end synpred107_Haxe
// $ANTLR start synpred113_Haxe
public final void synpred113_Haxe_fragment() throws RecognitionException {
// Haxe.g:341:49: ( pureCallOrSlice )
// Haxe.g:341:49: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_synpred113_Haxe4120);
pureCallOrSlice();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred113_Haxe
// $ANTLR start synpred114_Haxe
public final void synpred114_Haxe_fragment() throws RecognitionException {
// Haxe.g:341:19: ( value LPAREN ( exprList )? RPAREN ( pureCallOrSlice )? )
// Haxe.g:341:19: value LPAREN ( exprList )? RPAREN ( pureCallOrSlice )?
{
pushFollow(FOLLOW_value_in_synpred114_Haxe4111);
value();
state._fsp--;
if (state.failed) return ;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred114_Haxe4113); if (state.failed) return ;
// Haxe.g:341:32: ( exprList )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==BANG||LA133_0==CAST||LA133_0==CHARLITERAL||LA133_0==FALSE||LA133_0==FLOATNUM||LA133_0==FUNCTION||LA133_0==IDENTIFIER||LA133_0==INTLITERAL||(LA133_0 >= LBRACE && LA133_0 <= LBRACKET)||(LA133_0 >= LONGLITERAL && LA133_0 <= LPAREN)||(LA133_0 >= NEW && LA133_0 <= NULL)||LA133_0==PLUSPLUS||(LA133_0 >= STRINGLITERAL && LA133_0 <= SUB)||LA133_0==SUBSUB||LA133_0==SUPER||LA133_0==THIS||LA133_0==TILDE||LA133_0==TRUE||LA133_0==UNTYPED) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// Haxe.g:341:32: exprList
{
pushFollow(FOLLOW_exprList_in_synpred114_Haxe4115);
exprList();
state._fsp--;
if (state.failed) return ;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred114_Haxe4118); if (state.failed) return ;
// Haxe.g:341:49: ( pureCallOrSlice )?
int alt134=2;
int LA134_0 = input.LA(1);
if ( (LA134_0==DOT||LA134_0==LBRACKET) ) {
alt134=1;
}
switch (alt134) {
case 1 :
// Haxe.g:341:49: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_synpred114_Haxe4120);
pureCallOrSlice();
state._fsp--;
if (state.failed) return ;
}
break;
}
}
}
// $ANTLR end synpred114_Haxe
// $ANTLR start synpred115_Haxe
public final void synpred115_Haxe_fragment() throws RecognitionException {
// Haxe.g:343:48: ( pureCallOrSlice )
// Haxe.g:343:48: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_synpred115_Haxe4179);
pureCallOrSlice();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred115_Haxe
// $ANTLR start synpred116_Haxe
public final void synpred116_Haxe_fragment() throws RecognitionException {
// Haxe.g:343:19: ( value LBRACKET expr RBRACKET ( pureCallOrSlice )? )
// Haxe.g:343:19: value LBRACKET expr RBRACKET ( pureCallOrSlice )?
{
pushFollow(FOLLOW_value_in_synpred116_Haxe4171);
value();
state._fsp--;
if (state.failed) return ;
match(input,LBRACKET,FOLLOW_LBRACKET_in_synpred116_Haxe4173); if (state.failed) return ;
pushFollow(FOLLOW_expr_in_synpred116_Haxe4175);
expr();
state._fsp--;
if (state.failed) return ;
match(input,RBRACKET,FOLLOW_RBRACKET_in_synpred116_Haxe4177); if (state.failed) return ;
// Haxe.g:343:48: ( pureCallOrSlice )?
int alt135=2;
int LA135_0 = input.LA(1);
if ( (LA135_0==DOT||LA135_0==LBRACKET) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// Haxe.g:343:48: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_synpred116_Haxe4179);
pureCallOrSlice();
state._fsp--;
if (state.failed) return ;
}
break;
}
}
}
// $ANTLR end synpred116_Haxe
// $ANTLR start synpred117_Haxe
public final void synpred117_Haxe_fragment() throws RecognitionException {
// Haxe.g:345:19: ( value pureCallOrSlice )
// Haxe.g:345:19: value pureCallOrSlice
{
pushFollow(FOLLOW_value_in_synpred117_Haxe4230);
value();
state._fsp--;
if (state.failed) return ;
pushFollow(FOLLOW_pureCallOrSlice_in_synpred117_Haxe4233);
pureCallOrSlice();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred117_Haxe
// $ANTLR start synpred119_Haxe
public final void synpred119_Haxe_fragment() throws RecognitionException {
// Haxe.g:349:43: ( pureCallOrSlice )
// Haxe.g:349:43: pureCallOrSlice
{
pushFollow(FOLLOW_pureCallOrSlice_in_synpred119_Haxe4286);
pureCallOrSlice();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred119_Haxe
// $ANTLR start synpred126_Haxe
public final void synpred126_Haxe_fragment() throws RecognitionException {
// Haxe.g:364:9: ( LPAREN expr RPAREN '?' expr COLON expr )
// Haxe.g:364:9: LPAREN expr RPAREN '?' expr COLON expr
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred126_Haxe4491); if (state.failed) return ;
pushFollow(FOLLOW_expr_in_synpred126_Haxe4493);
expr();
state._fsp--;
if (state.failed) return ;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred126_Haxe4495); if (state.failed) return ;
match(input,QUES,FOLLOW_QUES_in_synpred126_Haxe4497); if (state.failed) return ;
pushFollow(FOLLOW_expr_in_synpred126_Haxe4499);
expr();
state._fsp--;
if (state.failed) return ;
match(input,COLON,FOLLOW_COLON_in_synpred126_Haxe4501); if (state.failed) return ;
pushFollow(FOLLOW_expr_in_synpred126_Haxe4503);
expr();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred126_Haxe
// $ANTLR start synpred127_Haxe
public final void synpred127_Haxe_fragment() throws RecognitionException {
// Haxe.g:365:9: ( LPAREN expr RPAREN )
// Haxe.g:365:9: LPAREN expr RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred127_Haxe4525); if (state.failed) return ;
pushFollow(FOLLOW_expr_in_synpred127_Haxe4528);
expr();
state._fsp--;
if (state.failed) return ;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred127_Haxe4530); if (state.failed) return ;
}
}
// $ANTLR end synpred127_Haxe
// $ANTLR start synpred128_Haxe
public final void synpred128_Haxe_fragment() throws RecognitionException {
// Haxe.g:367:12: ( typeParam )
// Haxe.g:367:12: typeParam
{
pushFollow(FOLLOW_typeParam_in_synpred128_Haxe4548);
typeParam();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred128_Haxe
// Delegated rules
public final boolean synpred80_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred80_Haxe_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 synpred116_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred116_Haxe_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 synpred128_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred128_Haxe_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 synpred83_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred83_Haxe_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 synpred55_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred55_Haxe_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 synpred117_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred117_Haxe_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 synpred113_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred113_Haxe_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 synpred115_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred115_Haxe_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 synpred89_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred89_Haxe_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 synpred79_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred79_Haxe_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_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred6_Haxe_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 synpred114_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred114_Haxe_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 synpred53_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred53_Haxe_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 synpred106_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred106_Haxe_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 synpred127_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred127_Haxe_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 synpred95_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred95_Haxe_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 synpred81_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred81_Haxe_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 synpred54_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred54_Haxe_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 synpred119_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred119_Haxe_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 synpred92_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred92_Haxe_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 synpred59_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred59_Haxe_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 synpred97_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred97_Haxe_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 synpred107_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred107_Haxe_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 synpred100_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred100_Haxe_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 synpred126_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred126_Haxe_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 synpred82_Haxe() {
state.backtracking++;
int start = input.mark();
try {
synpred82_Haxe_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 DFA90 dfa90 = new DFA90(this);
protected DFA101 dfa101 = new DFA101(this);
protected DFA115 dfa115 = new DFA115(this);
static final String DFA90_eotS =
"\4\uffff";
static final String DFA90_eofS =
"\4\uffff";
static final String DFA90_minS =
"\2\45\2\uffff";
static final String DFA90_maxS =
"\2\u009b\2\uffff";
static final String DFA90_acceptS =
"\2\uffff\1\1\1\2";
static final String DFA90_specialS =
"\4\uffff}>";
static final String[] DFA90_transitionS = {
"\1\1\21\uffff\1\3\21\uffff\1\1\26\uffff\1\1\23\uffff\1\1\2\uffff"+
"\1\1\13\uffff\1\1\27\uffff\1\2",
"\1\1\21\uffff\1\3\21\uffff\1\1\26\uffff\1\1\23\uffff\1\1\2"+
"\uffff\1\1\13\uffff\1\1\27\uffff\1\2",
"",
""
};
static final short[] DFA90_eot = DFA.unpackEncodedString(DFA90_eotS);
static final short[] DFA90_eof = DFA.unpackEncodedString(DFA90_eofS);
static final char[] DFA90_min = DFA.unpackEncodedStringToUnsignedChars(DFA90_minS);
static final char[] DFA90_max = DFA.unpackEncodedStringToUnsignedChars(DFA90_maxS);
static final short[] DFA90_accept = DFA.unpackEncodedString(DFA90_acceptS);
static final short[] DFA90_special = DFA.unpackEncodedString(DFA90_specialS);
static final short[][] DFA90_transition;
static {
int numStates = DFA90_transitionS.length;
DFA90_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA90_transition[i] = DFA.unpackEncodedString(DFA90_transitionS[i]);
}
}
class DFA90 extends DFA {
public DFA90(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 90;
this.eot = DFA90_eot;
this.eof = DFA90_eof;
this.min = DFA90_min;
this.max = DFA90_max;
this.accept = DFA90_accept;
this.special = DFA90_special;
this.transition = DFA90_transition;
}
public String getDescription() {
return "395:1: classMember : ( varDeclClass | funcDecl );";
}
}
static final String DFA101_eotS =
"\5\uffff";
static final String DFA101_eofS =
"\5\uffff";
static final String DFA101_minS =
"\2\45\1\102\2\uffff";
static final String DFA101_maxS =
"\2\u0083\1\135\2\uffff";
static final String DFA101_acceptS =
"\3\uffff\1\1\1\2";
static final String DFA101_specialS =
"\5\uffff}>";
static final String[] DFA101_transitionS = {
"\1\1\21\uffff\1\2\21\uffff\1\1\26\uffff\1\1\23\uffff\1\1\2\uffff"+
"\1\1\13\uffff\1\1",
"\1\1\21\uffff\1\2\21\uffff\1\1\26\uffff\1\1\23\uffff\1\1\2"+
"\uffff\1\1\13\uffff\1\1",
"\1\4\32\uffff\1\3",
"",
""
};
static final short[] DFA101_eot = DFA.unpackEncodedString(DFA101_eotS);
static final short[] DFA101_eof = DFA.unpackEncodedString(DFA101_eofS);
static final char[] DFA101_min = DFA.unpackEncodedStringToUnsignedChars(DFA101_minS);
static final char[] DFA101_max = DFA.unpackEncodedStringToUnsignedChars(DFA101_maxS);
static final short[] DFA101_accept = DFA.unpackEncodedString(DFA101_acceptS);
static final short[] DFA101_special = DFA.unpackEncodedString(DFA101_specialS);
static final short[][] DFA101_transition;
static {
int numStates = DFA101_transitionS.length;
DFA101_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA101_transition[i] = DFA.unpackEncodedString(DFA101_transitionS[i]);
}
}
class DFA101 extends DFA {
public DFA101(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 101;
this.eot = DFA101_eot;
this.eof = DFA101_eof;
this.min = DFA101_min;
this.max = DFA101_max;
this.accept = DFA101_accept;
this.special = DFA101_special;
this.transition = DFA101_transition;
}
public String getDescription() {
return "422:1: funcDecl : ( ( declAttrList )? FUNCTION NEW funcDeclPart -> ^( FUNCTION NEW ( declAttrList )? funcDeclPart ) | ( declAttrList )? FUNCTION IDENTIFIER ( typeParam )? funcDeclPart -> ^( FUNCTION IDENTIFIER ( declAttrList )? funcDeclPart ( typeParam )? ) );";
}
}
static final String DFA115_eotS =
"\10\uffff";
static final String DFA115_eofS =
"\10\uffff";
static final String DFA115_minS =
"\2\45\2\102\4\uffff";
static final String DFA115_maxS =
"\2\u0083\2\135\4\uffff";
static final String DFA115_acceptS =
"\4\uffff\1\3\1\4\1\1\1\2";
static final String DFA115_specialS =
"\10\uffff}>";
static final String[] DFA115_transitionS = {
"\1\1\21\uffff\1\2\21\uffff\1\1\26\uffff\1\1\23\uffff\1\1\2\uffff"+
"\1\1\13\uffff\1\1",
"\1\1\21\uffff\1\3\21\uffff\1\1\26\uffff\1\1\23\uffff\1\1\2"+
"\uffff\1\1\13\uffff\1\1",
"\1\5\32\uffff\1\4",
"\1\7\32\uffff\1\6",
"",
"",
"",
""
};
static final short[] DFA115_eot = DFA.unpackEncodedString(DFA115_eotS);
static final short[] DFA115_eof = DFA.unpackEncodedString(DFA115_eofS);
static final char[] DFA115_min = DFA.unpackEncodedStringToUnsignedChars(DFA115_minS);
static final char[] DFA115_max = DFA.unpackEncodedStringToUnsignedChars(DFA115_maxS);
static final short[] DFA115_accept = DFA.unpackEncodedString(DFA115_acceptS);
static final short[] DFA115_special = DFA.unpackEncodedString(DFA115_specialS);
static final short[][] DFA115_transition;
static {
int numStates = DFA115_transitionS.length;
DFA115_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA115_transition[i] = DFA.unpackEncodedString(DFA115_transitionS[i]);
}
}
class DFA115 extends DFA {
public DFA115(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 115;
this.eot = DFA115_eot;
this.eof = DFA115_eof;
this.min = DFA115_min;
this.max = DFA115_max;
this.accept = DFA115_accept;
this.special = DFA115_special;
this.transition = DFA115_transition;
}
public String getDescription() {
return "431:1: funcProtoDecl : ( declAttrList FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ( declAttrList )? ) | declAttrList FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( declAttrList )? ( typeParam )? ) | FUNCTION NEW LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( NEW )? ( paramList )? ( typeTag )? ) | FUNCTION IDENTIFIER ( typeParam )? LPAREN ( paramList )? RPAREN ( typeTag )? SEMI -> ^( FUNCTION ( IDENTIFIER )? ( paramList )? ( typeTag )? ( typeParam )? ) );";
}
}
public static final BitSet FOLLOW_myPackage_in_module163 = new BitSet(new long[]{0x0001040002000002L,0x0010000000000880L,0x0000000004100000L});
public static final BitSet FOLLOW_imports_in_module166 = new BitSet(new long[]{0x0001040002000002L,0x0010000000000880L,0x0000000004100000L});
public static final BitSet FOLLOW_topLevelDecl_in_module169 = new BitSet(new long[]{0x0001040002000002L,0x0010000000000800L,0x0000000000100000L});
public static final BitSet FOLLOW_IMPORT_in_imports221 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_filepath_in_imports224 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_imports226 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_USING_in_imports247 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_filepath_in_imports250 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_imports252 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PACKAGE_in_myPackage284 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000004L});
public static final BitSet FOLLOW_filepath_in_myPackage288 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_myPackage295 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_filepath350 = new BitSet(new long[]{0x0000000800000002L});
public static final BitSet FOLLOW_DOT_in_filepath355 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_filepath359 = new BitSet(new long[]{0x0000000800000002L});
public static final BitSet FOLLOW_MONKEYS_AT_in_meta395 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000004L});
public static final BitSet FOLLOW_metaName_in_meta397 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_meta400 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_meta402 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_meta405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_metaName424 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_metaName433 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000004L});
public static final BitSet FOLLOW_metaName_in_metaName435 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_meta_in_typeDeclFlags453 = new BitSet(new long[]{0x0001000000000002L,0x0010000004000000L});
public static final BitSet FOLLOW_topLevelAccess_in_topLevelAccessAttr711 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declAttr_in_declAttrList751 = new BitSet(new long[]{0x0000002000000002L,0x0090000100000200L,0x0000000000000008L});
public static final BitSet FOLLOW_param_in_paramList796 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_paramList799 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000004L});
public static final BitSet FOLLOW_param_in_paramList801 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_QUES_in_param851 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_param854 = new BitSet(new long[]{0x0000080004000002L});
public static final BitSet FOLLOW_typeTag_in_param856 = new BitSet(new long[]{0x0000080000000002L});
public static final BitSet FOLLOW_varInit_in_param859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_identifier908 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_id965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_THIS_in_id985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUPER_in_id1008 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_in_assignOp1043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUSEQ_in_assignOp1076 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUBEQ_in_assignOp1105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAREQ_in_assignOp1135 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASHEQ_in_assignOp1164 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PERCENTEQ_in_assignOp1192 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPEQ_in_assignOp1219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BAREQ_in_assignOp1249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CARETEQ_in_assignOp1279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LTLTEQ_in_assignOp1307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GTGTEQ_in_assignOp1336 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GTGTGTEQ_in_assignOp1365 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_funcLit1421 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_funcLit1427 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_funcLit1430 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_funcLit1433 = new BitSet(new long[]{0x0000000004000000L,0x0000000000004000L});
public static final BitSet FOLLOW_typeTag_in_funcLit1436 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_block_in_funcLit1439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_typeTag1483 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_funcType_in_typeTag1485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_funcType_in_typeList1528 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_typeList1531 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeList1534 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeConstraint_in_typeList1556 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_typeList1559 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeList1562 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_funcType1597 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_MINUS_BIGGER_in_funcType1600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_type_in_funcType1603 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_LBRACE_in_anonType1641 = new BitSet(new long[]{0x0200000000000000L,0x0200000000000004L,0x0000000008000000L});
public static final BitSet FOLLOW_anonTypePart_in_anonType1643 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RBRACE_in_anonType1646 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anonTypeFieldList_in_anonTypePart1687 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varDecl_in_anonTypePart1707 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_typeExtend_in_anonTypePart1728 = new BitSet(new long[]{0x0000000008000000L});
public static final BitSet FOLLOW_COMMA_in_anonTypePart1730 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L,0x0000000008000000L});
public static final BitSet FOLLOW_anonTypeFieldList_in_anonTypePart1735 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varDecl_in_anonTypePart1739 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_anonTypeField_in_anonTypeFieldList1789 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_anonTypeFieldList1792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_anonTypeField_in_anonTypeFieldList1794 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_filepath_in_type1839 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_anonType_in_type1844 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_typeParam_in_type1849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_typeParam1885 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeParam1887 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_typeParamPart_in_typeParam1889 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_typeParam1923 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeParam1925 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_GT_in_typeParam1927 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_typeParamPart1983 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeParamPart1985 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_GTGT_in_typeParamPart1987 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_typeParamPart2019 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeParamPart2021 = new BitSet(new long[]{0x2000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_typeParam_in_typeParamPart2023 = new BitSet(new long[]{0x2000000000000000L});
public static final BitSet FOLLOW_GTGTGT_in_typeParamPart2026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_typeConstraint2077 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_typeConstraint2079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_typeConstraint2081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_typeConstraint2083 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_typeConstraint2085 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statementLast_in_statement2125 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_statement2145 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_statement2147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_in_statementLast2179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_statementLast2199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_parExpression_in_statementLast2205 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statementOrLast_in_statementLast2208 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_ELSE_in_statementLast2210 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statement_in_statementLast2215 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_statementLast2235 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_statementLast2241 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_statementLast2244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_IN_in_statementLast2246 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_iterExpr_in_statementLast2249 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_statementLast2251 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statement_in_statementLast2254 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_statementLast2274 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_parExpression_in_statementLast2280 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statement_in_statementLast2282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DO_in_statementLast2302 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statement_in_statementLast2308 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_WHILE_in_statementLast2310 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_parExpression_in_statementLast2313 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_statementLast2315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRY_in_statementLast2336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_block_in_statementLast2342 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_catchStmt_in_statementLast2344 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_SWITCH_in_statementLast2365 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_statementLast2371 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_statementLast2374 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_statementLast2376 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_LBRACE_in_statementLast2379 = new BitSet(new long[]{0x0000000100100000L});
public static final BitSet FOLLOW_caseStmt_in_statementLast2382 = new BitSet(new long[]{0x0000000100100000L,0x0200000000000000L});
public static final BitSet FOLLOW_RBRACE_in_statementLast2385 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_statementLast2406 = new BitSet(new long[]{0x00A4000001200100L,0x200000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_statementLast2412 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_statementLast2415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_THROW_in_statementLast2436 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_statementLast2439 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_statementLast2441 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_statementLast2462 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_statementLast2470 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statementLast_in_statementOrLast2493 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_statementOrLast2513 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_parExpression2543 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_parExpression2546 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_parExpression2548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_block2584 = new BitSet(new long[]{0x00E5000443208100L,0x0A1000806006D00CL,0x000000002A06BD60L});
public static final BitSet FOLLOW_blockStmt_in_block2587 = new BitSet(new long[]{0x00E5000443208100L,0x0A1000806006D00CL,0x000000002A06BD60L});
public static final BitSet FOLLOW_RBRACE_in_block2591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varDecl_in_blockStmt2635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classDecl_in_blockStmt2646 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_blockStmt2657 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_caseStmt2681 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_exprList_in_caseStmt2684 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_caseStmt2686 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statement_in_caseStmt2689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_caseStmt2709 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_caseStmt2712 = new BitSet(new long[]{0x00E4000441208100L,0x080000806006D00CL,0x000000002206BD60L});
public static final BitSet FOLLOW_statement_in_caseStmt2715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CATCH_in_catchStmt2750 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_catchStmt2756 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000004L});
public static final BitSet FOLLOW_param_in_catchStmt2759 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_catchStmt2761 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_block_in_catchStmt2764 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_exprList2802 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_exprList2805 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_exprList2808 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_UNTYPED_in_expr2850 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_assignExpr_in_expr2853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignExpr_in_expr2873 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ternaryExpr_in_assignExpr2903 = new BitSet(new long[]{0x5000080000082082L,0x0000005000400000L,0x0000000000000085L});
public static final BitSet FOLLOW_assignOp_in_assignExpr2906 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_ternaryExpr_in_assignExpr2909 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicOrExpr_in_ternaryExpr2940 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_QUES_in_ternaryExpr2943 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_ternaryExpr2946 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_ternaryExpr2948 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_ternaryExpr_in_ternaryExpr2951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicAndExpr_in_logicOrExpr2982 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_BARBAR_in_logicOrExpr2985 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_logicAndExpr_in_logicOrExpr2991 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_iterExpr_in_logicAndExpr3025 = new BitSet(new long[]{0x0000000000000042L});
public static final BitSet FOLLOW_AMPAMP_in_logicAndExpr3027 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_iterExpr_in_logicAndExpr3033 = new BitSet(new long[]{0x0000000000000042L});
public static final BitSet FOLLOW_cmpExpr_in_iterExpr3083 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_ELLIPSIS_in_iterExpr3086 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_cmpExpr_in_iterExpr3092 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitExpr_in_cmpExpr3131 = new BitSet(new long[]{0x0600100000000202L,0x0000000000180000L});
public static final BitSet FOLLOW_EQEQ_in_cmpExpr3158 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_BANGEQ_in_cmpExpr3187 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_GTEQ_in_cmpExpr3216 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_LTEQ_in_cmpExpr3245 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_GT_in_cmpExpr3274 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_LT_in_cmpExpr3303 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_bitExpr_in_cmpExpr3310 = new BitSet(new long[]{0x0600100000000202L,0x0000000000180000L});
public static final BitSet FOLLOW_shiftExpr_in_bitExpr3349 = new BitSet(new long[]{0x0000000000040822L});
public static final BitSet FOLLOW_BAR_in_bitExpr3376 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_AMP_in_bitExpr3405 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_CARET_in_bitExpr3434 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_shiftExpr_in_bitExpr3441 = new BitSet(new long[]{0x0000000000040822L});
public static final BitSet FOLLOW_addExpr_in_shiftExpr3474 = new BitSet(new long[]{0x2800000000000002L,0x0000000000200000L});
public static final BitSet FOLLOW_LTLT_in_shiftExpr3501 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_GTGT_in_shiftExpr3530 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_GTGTGT_in_shiftExpr3559 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_addExpr_in_shiftExpr3566 = new BitSet(new long[]{0x2800000000000002L,0x0000000000200000L});
public static final BitSet FOLLOW_multExpr_in_addExpr3601 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_PLUS_in_addExpr3628 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_SUB_in_addExpr3657 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_multExpr_in_addExpr3664 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_unarExpr_in_multExpr3703 = new BitSet(new long[]{0x0000000000000002L,0x8000000800000000L,0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_multExpr3730 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_SLASH_in_multExpr3759 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_PERCENT_in_multExpr3788 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_unarExpr_in_multExpr3795 = new BitSet(new long[]{0x0000000000000002L,0x8000000800000000L,0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_unarExpr3843 = new BitSet(new long[]{0x00A4000001200000L,0x000000006006D004L,0x0000000000021420L});
public static final BitSet FOLLOW_SUBSUB_in_unarExpr3862 = new BitSet(new long[]{0x00A4000001200000L,0x000000006006D004L,0x0000000000021420L});
public static final BitSet FOLLOW_PLUSPLUS_in_unarExpr3881 = new BitSet(new long[]{0x00A4000001200000L,0x000000006006D004L,0x0000000000021420L});
public static final BitSet FOLLOW_BANG_in_unarExpr3900 = new BitSet(new long[]{0x00A4000001200000L,0x000000006006D004L,0x0000000000021420L});
public static final BitSet FOLLOW_TILDE_in_unarExpr3919 = new BitSet(new long[]{0x00A4000001200000L,0x000000006006D004L,0x0000000000021420L});
public static final BitSet FOLLOW_prefixExpr_in_unarExpr3926 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefixExpr_in_unarExpr3946 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_PLUSPLUS_in_unarExpr3949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUBSUB_in_unarExpr3955 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEW_in_prefixExpr3997 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_type_in_prefixExpr4003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_prefixExpr4005 = new BitSet(new long[]{0x00A4000001200100L,0x100000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_exprList_in_prefixExpr4008 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_prefixExpr4011 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CAST_in_prefixExpr4032 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_prefixExpr4035 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_prefixExpr4038 = new BitSet(new long[]{0x0000000008000000L,0x1000000000000000L});
public static final BitSet FOLLOW_COMMA_in_prefixExpr4041 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_funcType_in_prefixExpr4044 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_prefixExpr4048 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_methodCallOrSlice_in_prefixExpr4069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_methodCallOrSlice4111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_methodCallOrSlice4113 = new BitSet(new long[]{0x00A4000001200100L,0x100000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_exprList_in_methodCallOrSlice4115 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_methodCallOrSlice4118 = new BitSet(new long[]{0x0000000800000002L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_methodCallOrSlice4120 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_methodCallOrSlice4171 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_LBRACKET_in_methodCallOrSlice4173 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_methodCallOrSlice4175 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_methodCallOrSlice4177 = new BitSet(new long[]{0x0000000800000002L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_methodCallOrSlice4179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_methodCallOrSlice4230 = new BitSet(new long[]{0x0000000800000000L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_methodCallOrSlice4233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_methodCallOrSlice4254 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACKET_in_pureCallOrSlice4279 = new BitSet(new long[]{0x00A4000001200100L,0x040000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_pureCallOrSlice4281 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_pureCallOrSlice4284 = new BitSet(new long[]{0x0000000800000002L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_pureCallOrSlice4286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_pureCallOrSlice4340 = new BitSet(new long[]{0x00A4000001000000L,0x000000004006D004L,0x0000000000021420L});
public static final BitSet FOLLOW_methodCallOrSlice_in_pureCallOrSlice4343 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACKET_in_arrayObj4375 = new BitSet(new long[]{0x00A4000001200100L,0x040000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_exprList_in_arrayObj4377 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_arrayObj4380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_objLit_in_value4457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_funcLit_in_value4465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayObj_in_value4473 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_elementarySymbol_in_value4481 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_value4491 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_value4493 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_value4495 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_QUES_in_value4497 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_value4499 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_value4501 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_value4503 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_value4525 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_value4528 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_value4530 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_id_in_value4546 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_typeParam_in_value4548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classDecl_in_topLevelDecl4568 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceDecl_in_topLevelDecl4588 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumDecl_in_topLevelDecl4608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typedefDecl_in_topLevelDecl4628 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_topLevelAccessAttr_in_enumDecl4664 = new BitSet(new long[]{0x0000040000000000L});
public static final BitSet FOLLOW_ENUM_in_enumDecl4667 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumDecl4669 = new BitSet(new long[]{0x0000000000000000L,0x0000000000084000L});
public static final BitSet FOLLOW_typeParam_in_enumDecl4671 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_enumBody_in_enumDecl4674 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_enumBody4723 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000004L});
public static final BitSet FOLLOW_enumValueDecl_in_enumBody4726 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000004L});
public static final BitSet FOLLOW_RBRACE_in_enumBody4730 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumValueDecl4770 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_enumValueDecl4776 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_enumValueDecl4779 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_enumValueDecl4782 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_enumValueDecl4785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumValueDecl4808 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_enumValueDecl4813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_topLevelAccessAttr_in_classDecl4862 = new BitSet(new long[]{0x0000000002000000L});
public static final BitSet FOLLOW_CLASS_in_classDecl4865 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_classDecl4867 = new BitSet(new long[]{0x0000800000000000L,0x0000000000084020L});
public static final BitSet FOLLOW_typeParam_in_classDecl4869 = new BitSet(new long[]{0x0000800000000000L,0x0000000000004020L});
public static final BitSet FOLLOW_extending_in_classDecl4875 = new BitSet(new long[]{0x0000000008000000L,0x0000000000004000L});
public static final BitSet FOLLOW_COMMA_in_classDecl4878 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_implementList_in_classDecl4880 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_implementList_in_classDecl4885 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_classBodyScope_in_classDecl4890 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_classBodyScope4960 = new BitSet(new long[]{0x0080002000000000L,0x0290000100000200L,0x0000000008000008L});
public static final BitSet FOLLOW_classMember_in_classBodyScope4963 = new BitSet(new long[]{0x0080002000000000L,0x0290000100000200L,0x0000000008000008L});
public static final BitSet FOLLOW_RBRACE_in_classBodyScope4967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varDeclClass_in_classMember5013 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_funcDecl_in_classMember5033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declAttrList_in_varDeclClass5075 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_VAR_in_varDeclClass5078 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_varDeclClass5080 = new BitSet(new long[]{0x0000000004000000L,0x0000000000040000L});
public static final BitSet FOLLOW_propDecl_in_varDeclClass5086 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_typeTag_in_varDeclClass5089 = new BitSet(new long[]{0x0000080000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_varInit_in_varDeclClass5091 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_varDeclClass5094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_varDecl5144 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_varDeclPartList_in_varDecl5147 = new BitSet(new long[]{0x0000000008000000L,0x2000000000000000L});
public static final BitSet FOLLOW_COMMA_in_varDecl5150 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_varDeclPartList_in_varDecl5153 = new BitSet(new long[]{0x0000000008000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_varDecl5157 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_varDeclPartList5183 = new BitSet(new long[]{0x0000080004000002L,0x0000000000040000L});
public static final BitSet FOLLOW_propDecl_in_varDeclPartList5185 = new BitSet(new long[]{0x0000080004000002L});
public static final BitSet FOLLOW_typeTag_in_varDeclPartList5188 = new BitSet(new long[]{0x0000080000000002L});
public static final BitSet FOLLOW_varInit_in_varDeclPartList5191 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_propDecl5242 = new BitSet(new long[]{0x0000002100000000L,0x0000000050000004L});
public static final BitSet FOLLOW_propAccessor_in_propDecl5246 = new BitSet(new long[]{0x0000000008000000L});
public static final BitSet FOLLOW_COMMA_in_propDecl5248 = new BitSet(new long[]{0x0000002100000000L,0x0000000050000004L});
public static final BitSet FOLLOW_propAccessor_in_propDecl5252 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_propDecl5254 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQ_in_varInit5413 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_varInit5419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declAttrList_in_funcDecl5451 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_FUNCTION_in_funcDecl5454 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_NEW_in_funcDecl5456 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_funcDeclPart_in_funcDecl5458 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declAttrList_in_funcDecl5516 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_FUNCTION_in_funcDecl5519 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_funcDecl5521 = new BitSet(new long[]{0x0000000000000000L,0x00000000000C0000L});
public static final BitSet FOLLOW_typeParam_in_funcDecl5523 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_funcDeclPart_in_funcDecl5526 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_funcDeclPart5610 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_funcDeclPart5613 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_funcDeclPart5616 = new BitSet(new long[]{0x0000000004000000L,0x2000000000004000L});
public static final BitSet FOLLOW_typeTag_in_funcDeclPart5619 = new BitSet(new long[]{0x0000000000000000L,0x2000000000004000L});
public static final BitSet FOLLOW_block_in_funcDeclPart5623 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_funcDeclPart5627 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declAttrList_in_funcProtoDecl5664 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_FUNCTION_in_funcProtoDecl5666 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_NEW_in_funcProtoDecl5668 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_funcProtoDecl5670 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_funcProtoDecl5672 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_funcProtoDecl5675 = new BitSet(new long[]{0x0000000004000000L,0x2000000000000000L});
public static final BitSet FOLLOW_typeTag_in_funcProtoDecl5677 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_funcProtoDecl5680 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declAttrList_in_funcProtoDecl5721 = new BitSet(new long[]{0x0080000000000000L});
public static final BitSet FOLLOW_FUNCTION_in_funcProtoDecl5723 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_funcProtoDecl5725 = new BitSet(new long[]{0x0000000000000000L,0x00000000000C0000L});
public static final BitSet FOLLOW_typeParam_in_funcProtoDecl5727 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_funcProtoDecl5730 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_funcProtoDecl5732 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_funcProtoDecl5735 = new BitSet(new long[]{0x0000000004000000L,0x2000000000000000L});
public static final BitSet FOLLOW_typeTag_in_funcProtoDecl5737 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_funcProtoDecl5740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_funcProtoDecl5784 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_NEW_in_funcProtoDecl5786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_funcProtoDecl5788 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_funcProtoDecl5790 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_funcProtoDecl5793 = new BitSet(new long[]{0x0000000004000000L,0x2000000000000000L});
public static final BitSet FOLLOW_typeTag_in_funcProtoDecl5795 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_funcProtoDecl5798 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_funcProtoDecl5836 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_funcProtoDecl5838 = new BitSet(new long[]{0x0000000000000000L,0x00000000000C0000L});
public static final BitSet FOLLOW_typeParam_in_funcProtoDecl5840 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_funcProtoDecl5843 = new BitSet(new long[]{0x0000000000000000L,0x1100000000000004L});
public static final BitSet FOLLOW_paramList_in_funcProtoDecl5845 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_funcProtoDecl5848 = new BitSet(new long[]{0x0000000004000000L,0x2000000000000000L});
public static final BitSet FOLLOW_typeTag_in_funcProtoDecl5850 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_SEMI_in_funcProtoDecl5853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_topLevelAccessAttr_in_interfaceDecl5912 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_INTERFACE_in_interfaceDecl5915 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_type_in_interfaceDecl5917 = new BitSet(new long[]{0x0000800000000000L,0x0000000000004020L});
public static final BitSet FOLLOW_extending_in_interfaceDecl5919 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004020L});
public static final BitSet FOLLOW_implementList_in_interfaceDecl5922 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
public static final BitSet FOLLOW_LBRACE_in_interfaceDecl5925 = new BitSet(new long[]{0x0080002000000000L,0x0290000100000200L,0x0000000008000008L});
public static final BitSet FOLLOW_interfaceBody_in_interfaceDecl5928 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RBRACE_in_interfaceDecl5930 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varDecl_in_interfaceBody5954 = new BitSet(new long[]{0x0080002000000000L,0x0090000100000200L,0x0000000008000008L});
public static final BitSet FOLLOW_interfaceBody_in_interfaceBody5956 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_funcProtoDecl_in_interfaceBody5966 = new BitSet(new long[]{0x0080002000000000L,0x0090000100000200L,0x0000000008000008L});
public static final BitSet FOLLOW_interfaceBody_in_interfaceBody5968 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_implementing_in_implementList6006 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_implementList6009 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_implementing_in_implementList6011 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_IMPLEMENTS_in_implementing6058 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_type_in_implementing6061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDS_in_extending6108 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_type_in_extending6114 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEDEF_in_typedefDecl6147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_IDENTIFIER_in_typedefDecl6150 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_EQ_in_typedefDecl6152 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_funcType_in_typedefDecl6155 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GT_in_typeExtend6189 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_funcType_in_typeExtend6192 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_objLit6226 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_objLitElemList_in_objLit6229 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
public static final BitSet FOLLOW_RBRACE_in_objLit6231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_anonTypeField6259 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_anonTypeField6261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_funcType_in_anonTypeField6264 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_objLitElem_in_objLitElemList6294 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_COMMA_in_objLitElemList6297 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_objLitElem_in_objLitElemList6300 = new BitSet(new long[]{0x0000000008000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_objLitElem6336 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_objLitElem6338 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_objLitElem6341 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LONGLITERAL_in_elementarySymbol6375 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NULL_in_elementarySymbol6393 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTLITERAL_in_elementarySymbol6418 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRINGLITERAL_in_elementarySymbol6437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHARLITERAL_in_elementarySymbol6453 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOATNUM_in_elementarySymbol6471 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRUE_in_elementarySymbol6492 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FALSE_in_elementarySymbol6517 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeParam_in_synpred53_Haxe1849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_synpred54_Haxe1885 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_synpred54_Haxe1887 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_typeParamPart_in_synpred54_Haxe1889 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_synpred55_Haxe1983 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004004L});
public static final BitSet FOLLOW_typeList_in_synpred55_Haxe1985 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_GTGT_in_synpred55_Haxe1987 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statementOrLast_in_synpred59_Haxe2208 = new BitSet(new long[]{0x0000008000000000L});
public static final BitSet FOLLOW_ELSE_in_synpred59_Haxe2210 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignOp_in_synpred79_Haxe2906 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_ternaryExpr_in_synpred79_Haxe2909 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QUES_in_synpred80_Haxe2943 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_synpred80_Haxe2946 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_synpred80_Haxe2948 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_ternaryExpr_in_synpred80_Haxe2951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BARBAR_in_synpred81_Haxe2985 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_logicAndExpr_in_synpred81_Haxe2991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPAMP_in_synpred82_Haxe3027 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_iterExpr_in_synpred82_Haxe3033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELLIPSIS_in_synpred83_Haxe3086 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_cmpExpr_in_synpred83_Haxe3092 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred89_Haxe3134 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_bitExpr_in_synpred89_Haxe3310 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred92_Haxe3352 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_shiftExpr_in_synpred92_Haxe3441 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred95_Haxe3477 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_addExpr_in_synpred95_Haxe3566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred97_Haxe3604 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_multExpr_in_synpred97_Haxe3664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred100_Haxe3706 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000000029560L});
public static final BitSet FOLLOW_unarExpr_in_synpred100_Haxe3795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUSPLUS_in_synpred106_Haxe3949 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUBSUB_in_synpred107_Haxe3955 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pureCallOrSlice_in_synpred113_Haxe4120 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_synpred114_Haxe4111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_LPAREN_in_synpred114_Haxe4113 = new BitSet(new long[]{0x00A4000001200100L,0x100000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_exprList_in_synpred114_Haxe4115 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred114_Haxe4118 = new BitSet(new long[]{0x0000000800000002L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_synpred114_Haxe4120 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pureCallOrSlice_in_synpred115_Haxe4179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_synpred116_Haxe4171 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_LBRACKET_in_synpred116_Haxe4173 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_synpred116_Haxe4175 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_RBRACKET_in_synpred116_Haxe4177 = new BitSet(new long[]{0x0000000800000002L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_synpred116_Haxe4179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_value_in_synpred117_Haxe4230 = new BitSet(new long[]{0x0000000800000000L,0x0000000000008000L});
public static final BitSet FOLLOW_pureCallOrSlice_in_synpred117_Haxe4233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pureCallOrSlice_in_synpred119_Haxe4286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred126_Haxe4491 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_synpred126_Haxe4493 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred126_Haxe4495 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_QUES_in_synpred126_Haxe4497 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_synpred126_Haxe4499 = new BitSet(new long[]{0x0000000004000000L});
public static final BitSet FOLLOW_COLON_in_synpred126_Haxe4501 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_synpred126_Haxe4503 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred127_Haxe4525 = new BitSet(new long[]{0x00A4000001200100L,0x000000806006D004L,0x0000000002029560L});
public static final BitSet FOLLOW_expr_in_synpred127_Haxe4528 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred127_Haxe4530 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeParam_in_synpred128_Haxe4548 = new BitSet(new long[]{0x0000000000000002L});
}