// $ANTLR start "expression" // AS3_ex.g3:2177:1: expression : assignmentExpression (C= COMMA assignmentExpression )* ; public AS3_exParser.expression_return expression() // throws RecognitionException [1] { AS3_exParser.expression_return retval = new AS3_exParser.expression_return(); retval.Start = input.LT(1); int expression_StartIndex = input.Index(); object root_0 = null; IToken C = null; AS3_exParser.assignmentExpression_return assignmentExpression232 = null; AS3_exParser.assignmentExpression_return assignmentExpression233 = null; object C_tree=null; WrapOptions options=mPrinter.GetExpressionWrapOptions(); bool pushedFormat=false; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 100) ) { return retval; } // AS3_ex.g3:2182:5: ( assignmentExpression (C= COMMA assignmentExpression )* ) // AS3_ex.g3:2183:6: assignmentExpression (C= COMMA assignmentExpression )* { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { pushedFormat=PushFormatType(options, true); } PushFollow(FOLLOW_assignmentExpression_in_expression10139); assignmentExpression232 = assignmentExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentExpression232.Tree); // AS3_ex.g3:2184:27: (C= COMMA assignmentExpression )* do { int alt112 = 2; int LA112_0 = input.LA(1); if ( (LA112_0 == COMMA) ) { alt112 = 1; } switch (alt112) { case 1 : // AS3_ex.g3:2184:29: C= COMMA assignmentExpression { if ( state.backtracking == 0 ) { InsertWS(mPrinter.GetSpacesBeforeComma()); } C=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_expression10147); if (state.failed) return retval; if ( state.backtracking == 0 ) {C_tree = (object)adaptor.Create(C); adaptor.AddChild(root_0, C_tree); } if ( state.backtracking == 0 ) { Emit((CommonToken)C); } if ( state.backtracking == 0 ) { InsertWS(mPrinter.GetSpacesAfterComma()); } PushFollow(FOLLOW_assignmentExpression_in_expression10153); assignmentExpression233 = assignmentExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentExpression233.Tree); } break; default: goto loop112; } } while (true); loop112: ; // Stops C# compiler whining that label 'loop112' has no statements if ( state.backtracking == 0 ) { if (pushedFormat) mPrinter.PopFormatMode(); } } 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, 100, expression_StartIndex); } } return retval; }
// $ANTLR start "expression" // AS3_ex.g3:2961:1: expression : assignmentExpression (C= COMMA assignmentExpression )* ; public AS3_exParser.expression_return expression() // throws RecognitionException [1] { AS3_exParser.expression_return retval = new AS3_exParser.expression_return(); retval.Start = input.LT(1); int expression_StartIndex = input.Index(); object root_0 = null; IToken C = null; AS3_exParser.assignmentExpression_return assignmentExpression243 = null; AS3_exParser.assignmentExpression_return assignmentExpression244 = null; object C_tree=null; WrapOptions options=mPrinter.getExpressionWrapOptions(); bool pushedFormat=false; bool pushedWrapInfo=false; bool pushedIndent=false; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 100) ) { return retval; } // AS3_ex.g3:2968:5: ( assignmentExpression (C= COMMA assignmentExpression )* ) // AS3_ex.g3:2969:6: assignmentExpression (C= COMMA assignmentExpression )* { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { pushedFormat=pushFormatType(options, true); pushedWrapInfo=pushWrapInfo(options, true); } PushFollow(FOLLOW_assignmentExpression_in_expression11302); assignmentExpression243 = assignmentExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentExpression243.Tree); // AS3_ex.g3:2972:27: (C= COMMA assignmentExpression )* do { int alt119 = 2; int LA119_0 = input.LA(1); if ( (LA119_0 == COMMA) ) { int LA119_2 = input.LA(2); if ( (synpred236_AS3_ex()) ) { alt119 = 1; } } switch (alt119) { case 1 : // AS3_ex.g3:2972:30: C= COMMA assignmentExpression { C=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_expression11309); if (state.failed) return retval; if ( state.backtracking == 0 ) {C_tree = (object)adaptor.Create(C); adaptor.AddChild(root_0, C_tree); } if ( state.backtracking == 0 ) { pushedIndent=emitCommaWithSpacingAndCRs(options, C, pushedIndent, -1, ASPrettyPrinter.Break_SubType_Other); } PushFollow(FOLLOW_assignmentExpression_in_expression11314); assignmentExpression244 = assignmentExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, assignmentExpression244.Tree); } break; default: goto loop119; } } while (true); loop119: ; // Stops C# compiler whining that label 'loop119' has no statements if ( state.backtracking == 0 ) { if (pushedIndent) popIndent(); if (pushedFormat) { mPrinter.popFormatMode(); } if (pushedWrapInfo) mPrinter.popWrapContext(); } } 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, 100, expression_StartIndex); } } return retval; }