// $ANTLR start "forInit" // AS3_ex.g3:1993:1: forInit : ( variableDeclarationNoInList | expressionNoIn ); public AS3_exParser.forInit_return forInit() // throws RecognitionException [1] { AS3_exParser.forInit_return retval = new AS3_exParser.forInit_return(); retval.Start = input.LT(1); int forInit_StartIndex = input.Index(); object root_0 = null; AS3_exParser.variableDeclarationNoInList_return variableDeclarationNoInList198 = null; AS3_exParser.expressionNoIn_return expressionNoIn199 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 81) ) { return retval; } // AS3_ex.g3:1994:5: ( variableDeclarationNoInList | expressionNoIn ) int alt96 = 2; switch ( input.LA(1) ) { case VAR: { int LA96_1 = input.LA(2); if ( (LA96_1 == DOT || LA96_1 == SUB || LA96_1 == COLON || LA96_1 == XML_NS_OP) ) { alt96 = 2; } else if ( (LA96_1 == NATIVE || LA96_1 == TO || (LA96_1 >= EACH && LA96_1 <= NAMESPACE) || (LA96_1 >= DYNAMIC && LA96_1 <= STATIC) || LA96_1 == IDENTIFIER) ) { alt96 = 1; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d96s1 = new NoViableAltException("", 96, 1, input); throw nvae_d96s1; } } break; case IDENTIFIER: { int LA96_2 = input.LA(2); if ( (synpred209_AS3_ex()) ) { alt96 = 1; } else if ( (true) ) { alt96 = 2; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d96s2 = new NoViableAltException("", 96, 2, input); throw nvae_d96s2; } } break; case NATIVE: case TO: case EACH: case GET: case SET: case NAMESPACE: case DYNAMIC: case FINAL: case OVERRIDE: case STATIC: { int LA96_3 = input.LA(2); if ( (synpred209_AS3_ex()) ) { alt96 = 1; } else if ( (true) ) { alt96 = 2; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d96s3 = new NoViableAltException("", 96, 3, input); throw nvae_d96s3; } } break; case AS: case BREAK: case CASE: case CATCH: case CLASS: case CONST: case CONTINUE: case DEFAULT: case DELETE: case DO: case ELSE: case EXTENDS: case FALSE: case FINALLY: case FOR: case FUNCTION: case IF: case IMPLEMENTS: case IMPORT: case IN: case INSTANCEOF: case INTERFACE: case INTERNAL: case IS: case NEW: case NULL: case PACKAGE: case PRIVATE: case PROTECTED: case PUBLIC: case RETURN: case SUPER: case SWITCH: case THIS: case THROW: case TRUE: case TRY: case TYPEOF: case USE: case VOID: case WHILE: case WITH: case INCLUDE: case LCURLY: case LPAREN: case LBRACK: case LT: case PLUS: case SUB: case STAR: case INC: case DEC: case NOT: case INV: case XML_AT: case XML_LS_STD: case SINGLE_QUOTE_LITERAL: case DOUBLE_QUOTE_LITERAL: case REGULAR_EXPR_LITERAL: case HEX_NUMBER_LITERAL: case DEC_NUMBER_LITERAL: case XML_COMMENT: case XML_CDATA: case XML_PI: { alt96 = 2; } break; default: if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d96s0 = new NoViableAltException("", 96, 0, input); throw nvae_d96s0; } switch (alt96) { case 1 : // AS3_ex.g3:1994:9: variableDeclarationNoInList { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_variableDeclarationNoInList_in_forInit9131); variableDeclarationNoInList198 = variableDeclarationNoInList(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableDeclarationNoInList198.Tree); } break; case 2 : // AS3_ex.g3:1995:9: expressionNoIn { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_expressionNoIn_in_forInit9141); expressionNoIn199 = expressionNoIn(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expressionNoIn199.Tree); } break; } retval.Stop = input.LT(-1); if ( state.backtracking==0 ) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);} } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { if ( state.backtracking > 0 ) { Memoize(input, 81, forInit_StartIndex); } } return retval; }
// $ANTLR start "forInit" // AS3_ex.g3:2636:1: forInit : (V= VAR variableDeclarationNoInList | expressionNoIn ); public AS3_exParser.forInit_return forInit() // throws RecognitionException [1] { AS3_exParser.forInit_return retval = new AS3_exParser.forInit_return(); retval.Start = input.LT(1); int forInit_StartIndex = input.Index(); object root_0 = null; IToken V = null; AS3_exParser.variableDeclarationNoInList_return variableDeclarationNoInList209 = null; AS3_exParser.expressionNoIn_return expressionNoIn210 = null; object V_tree=null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 81) ) { return retval; } // AS3_ex.g3:2637:5: (V= VAR variableDeclarationNoInList | expressionNoIn ) int alt103 = 2; int LA103_0 = input.LA(1); if ( (LA103_0 == VAR) ) { int LA103_1 = input.LA(2); if ( (LA103_1 == DOT || LA103_1 == SUB || LA103_1 == COLON || LA103_1 == XML_NS_OP) ) { alt103 = 2; } else if ( (LA103_1 == NATIVE || LA103_1 == TO || (LA103_1 >= EACH && LA103_1 <= NAMESPACE) || (LA103_1 >= DYNAMIC && LA103_1 <= STATIC) || LA103_1 == IDENTIFIER) ) { alt103 = 1; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d103s1 = new NoViableAltException("", 103, 1, input); throw nvae_d103s1; } } else if ( ((LA103_0 >= AS && LA103_0 <= USE) || (LA103_0 >= VOID && LA103_0 <= STATIC) || LA103_0 == LCURLY || LA103_0 == LPAREN || LA103_0 == LBRACK || LA103_0 == LT || (LA103_0 >= PLUS && LA103_0 <= STAR) || (LA103_0 >= INC && LA103_0 <= DEC) || (LA103_0 >= NOT && LA103_0 <= INV) || (LA103_0 >= XML_AT && LA103_0 <= XML_LS_STD) || (LA103_0 >= SINGLE_QUOTE_LITERAL && LA103_0 <= DOUBLE_QUOTE_LITERAL) || LA103_0 == REGULAR_EXPR_LITERAL || LA103_0 == HEX_NUMBER_LITERAL || LA103_0 == DEC_NUMBER_LITERAL || LA103_0 == IDENTIFIER || (LA103_0 >= XML_COMMENT && LA103_0 <= XML_PI)) ) { alt103 = 2; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d103s0 = new NoViableAltException("", 103, 0, input); throw nvae_d103s0; } switch (alt103) { case 1 : // AS3_ex.g3:2637:9: V= VAR variableDeclarationNoInList { root_0 = (object)adaptor.GetNilNode(); V=(IToken)Match(input,VAR,FOLLOW_VAR_in_forInit9958); if (state.failed) return retval; if ( state.backtracking == 0 ) {V_tree = (object)adaptor.Create(V); adaptor.AddChild(root_0, V_tree); } if ( state.backtracking == 0 ) { emit(V); } PushFollow(FOLLOW_variableDeclarationNoInList_in_forInit9961); variableDeclarationNoInList209 = variableDeclarationNoInList(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableDeclarationNoInList209.Tree); } break; case 2 : // AS3_ex.g3:2638:9: expressionNoIn { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_expressionNoIn_in_forInit9971); expressionNoIn210 = expressionNoIn(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expressionNoIn210.Tree); } break; } retval.Stop = input.LT(-1); if ( state.backtracking==0 ) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);} } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { if ( state.backtracking > 0 ) { Memoize(input, 81, forInit_StartIndex); } } return retval; }