// $ANTLR start "statement" // AS3_ex.g3:1783:1: statement : ( blockStatement | directive | namespaceDirective | expression semic | constantVarStatement | tryStatement | labelledStatement | switchStatement | withStatement | returnStatement | breakStatement | continueStatement | forStatement | forInStatement | forEachInStatement | doWhileStatement | whileStatement | ifStatement | emptyStatement | variableStatement | throwStatement ); public AS3_exParser.statement_return statement() // throws RecognitionException [1] { AS3_exParser.statement_return retval = new AS3_exParser.statement_return(); retval.Start = input.LT(1); int statement_StartIndex = input.Index(); object root_0 = null; AS3_exParser.blockStatement_return blockStatement130 = null; AS3_exParser.directive_return directive131 = null; AS3_exParser.namespaceDirective_return namespaceDirective132 = null; AS3_exParser.expression_return expression133 = null; AS3_exParser.semic_return semic134 = null; AS3_exParser.constantVarStatement_return constantVarStatement135 = null; AS3_exParser.tryStatement_return tryStatement136 = null; AS3_exParser.labelledStatement_return labelledStatement137 = null; AS3_exParser.switchStatement_return switchStatement138 = null; AS3_exParser.withStatement_return withStatement139 = null; AS3_exParser.returnStatement_return returnStatement140 = null; AS3_exParser.breakStatement_return breakStatement141 = null; AS3_exParser.continueStatement_return continueStatement142 = null; AS3_exParser.forStatement_return forStatement143 = null; AS3_exParser.forInStatement_return forInStatement144 = null; AS3_exParser.forEachInStatement_return forEachInStatement145 = null; AS3_exParser.doWhileStatement_return doWhileStatement146 = null; AS3_exParser.whileStatement_return whileStatement147 = null; AS3_exParser.ifStatement_return ifStatement148 = null; AS3_exParser.emptyStatement_return emptyStatement149 = null; AS3_exParser.variableStatement_return variableStatement150 = null; AS3_exParser.throwStatement_return throwStatement151 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 58) ) { return retval; } // AS3_ex.g3:1784:5: ( blockStatement | directive | namespaceDirective | expression semic | constantVarStatement | tryStatement | labelledStatement | switchStatement | withStatement | returnStatement | breakStatement | continueStatement | forStatement | forInStatement | forEachInStatement | doWhileStatement | whileStatement | ifStatement | emptyStatement | variableStatement | throwStatement ) int alt76 = 21; alt76 = dfa76.Predict(input); switch (alt76) { case 1 : // AS3_ex.g3:1785:6: blockStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { SetBlockFlag(true); } PushFollow(FOLLOW_blockStatement_in_statement7673); blockStatement130 = blockStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, blockStatement130.Tree); } break; case 2 : // AS3_ex.g3:1786:9: directive { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_directive_in_statement7684); directive131 = directive(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive131.Tree); } break; case 3 : // AS3_ex.g3:1787:9: namespaceDirective { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_namespaceDirective_in_statement7695); namespaceDirective132 = namespaceDirective(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, namespaceDirective132.Tree); } break; case 4 : // AS3_ex.g3:1788:9: expression semic { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_expression_in_statement7708); expression133 = expression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expression133.Tree); PushFollow(FOLLOW_semic_in_statement7710); semic134 = semic(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, semic134.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; case 5 : // AS3_ex.g3:1789:9: constantVarStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_constantVarStatement_in_statement7725); constantVarStatement135 = constantVarStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, constantVarStatement135.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; case 6 : // AS3_ex.g3:1790:9: tryStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } PushFollow(FOLLOW_tryStatement_in_statement7738); tryStatement136 = tryStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, tryStatement136.Tree); } break; case 7 : // AS3_ex.g3:1791:9: labelledStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_labelledStatement_in_statement7750); labelledStatement137 = labelledStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, labelledStatement137.Tree); } break; case 8 : // AS3_ex.g3:1792:9: switchStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag(); } PushFollow(FOLLOW_switchStatement_in_statement7763); switchStatement138 = switchStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, switchStatement138.Tree); } break; case 9 : // AS3_ex.g3:1793:9: withStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_withStatement_in_statement7775); withStatement139 = withStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, withStatement139.Tree); } break; case 10 : // AS3_ex.g3:1794:9: returnStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_returnStatement_in_statement7789); returnStatement140 = returnStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, returnStatement140.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; case 11 : // AS3_ex.g3:1795:9: breakStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_breakStatement_in_statement7805); breakStatement141 = breakStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, breakStatement141.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; case 12 : // AS3_ex.g3:1796:9: continueStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_continueStatement_in_statement7821); continueStatement142 = continueStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, continueStatement142.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; case 13 : // AS3_ex.g3:1797:9: forStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_forStatement_in_statement7835); forStatement143 = forStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forStatement143.Tree); } break; case 14 : // AS3_ex.g3:1798:9: forInStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_forInStatement_in_statement7847); forInStatement144 = forInStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forInStatement144.Tree); } break; case 15 : // AS3_ex.g3:1799:9: forEachInStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_forEachInStatement_in_statement7859); forEachInStatement145 = forEachInStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forEachInStatement145.Tree); } break; case 16 : // AS3_ex.g3:1800:9: doWhileStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_doWhileStatement_in_statement7871); doWhileStatement146 = doWhileStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, doWhileStatement146.Tree); } break; case 17 : // AS3_ex.g3:1801:9: whileStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { MarkBlockFlag();InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { InsertStatementCR(); } PushFollow(FOLLOW_whileStatement_in_statement7883); whileStatement147 = whileStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, whileStatement147.Tree); } break; case 18 : // AS3_ex.g3:1802:9: ifStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertLines(mPrinter.GetBlankLinesBeforeControlStatement()); } PushFollow(FOLLOW_ifStatement_in_statement7894); ifStatement148 = ifStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, ifStatement148.Tree); } break; case 19 : // AS3_ex.g3:1803:9: emptyStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { if (mPrinter.IsEmptyStatementsOnNewLine())InsertStatementCR(); } PushFollow(FOLLOW_emptyStatement_in_statement7905); emptyStatement149 = emptyStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, emptyStatement149.Tree); } break; case 20 : // AS3_ex.g3:1804:9: variableStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_variableStatement_in_statement7919); variableStatement150 = variableStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableStatement150.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; case 21 : // AS3_ex.g3:1805:9: throwStatement { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertStatementCR(); } if ( state.backtracking == 0 ) { PushLazyIndent(); } PushFollow(FOLLOW_throwStatement_in_statement7935); throwStatement151 = throwStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, throwStatement151.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } 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, 58, statement_StartIndex); } } return retval; }
// $ANTLR start "statement" // AS3_ex.g3:2270:1: statement : ( blockStatement | directive | namespaceDirective | constantVarStatement | tryStatement | switchStatement | withStatement | returnStatement | breakStatement | continueStatement | forStatement | forInStatement | forEachInStatement | doWhileStatement | whileStatement | ifStatement | variableStatement | throwStatement | labelledStatement | expression semic | emptyStatement ) ; public AS3_exParser.statement_return statement() // throws RecognitionException [1] { AS3_exParser.statement_return retval = new AS3_exParser.statement_return(); retval.Start = input.LT(1); int statement_StartIndex = input.Index(); object root_0 = null; AS3_exParser.blockStatement_return blockStatement141 = null; AS3_exParser.directive_return directive142 = null; AS3_exParser.namespaceDirective_return namespaceDirective143 = null; AS3_exParser.constantVarStatement_return constantVarStatement144 = null; AS3_exParser.tryStatement_return tryStatement145 = null; AS3_exParser.switchStatement_return switchStatement146 = null; AS3_exParser.withStatement_return withStatement147 = null; AS3_exParser.returnStatement_return returnStatement148 = null; AS3_exParser.breakStatement_return breakStatement149 = null; AS3_exParser.continueStatement_return continueStatement150 = null; AS3_exParser.forStatement_return forStatement151 = null; AS3_exParser.forInStatement_return forInStatement152 = null; AS3_exParser.forEachInStatement_return forEachInStatement153 = null; AS3_exParser.doWhileStatement_return doWhileStatement154 = null; AS3_exParser.whileStatement_return whileStatement155 = null; AS3_exParser.ifStatement_return ifStatement156 = null; AS3_exParser.variableStatement_return variableStatement157 = null; AS3_exParser.throwStatement_return throwStatement158 = null; AS3_exParser.labelledStatement_return labelledStatement159 = null; AS3_exParser.expression_return expression160 = null; AS3_exParser.semic_return semic161 = null; AS3_exParser.emptyStatement_return emptyStatement162 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 58) ) { return retval; } // AS3_ex.g3:2271:5: ( ( blockStatement | directive | namespaceDirective | constantVarStatement | tryStatement | switchStatement | withStatement | returnStatement | breakStatement | continueStatement | forStatement | forInStatement | forEachInStatement | doWhileStatement | whileStatement | ifStatement | variableStatement | throwStatement | labelledStatement | expression semic | emptyStatement ) ) // AS3_ex.g3:2272:6: ( blockStatement | directive | namespaceDirective | constantVarStatement | tryStatement | switchStatement | withStatement | returnStatement | breakStatement | continueStatement | forStatement | forInStatement | forEachInStatement | doWhileStatement | whileStatement | ifStatement | variableStatement | throwStatement | labelledStatement | expression semic | emptyStatement ) { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { mStatementCount++; } // AS3_ex.g3:2273:5: ( blockStatement | directive | namespaceDirective | constantVarStatement | tryStatement | switchStatement | withStatement | returnStatement | breakStatement | continueStatement | forStatement | forInStatement | forEachInStatement | doWhileStatement | whileStatement | ifStatement | variableStatement | throwStatement | labelledStatement | expression semic | emptyStatement ) int alt83 = 21; alt83 = dfa83.Predict(input); switch (alt83) { case 1 : // AS3_ex.g3:2273:7: blockStatement { if ( state.backtracking == 0 ) { mPrinter.inOther(); } if ( state.backtracking == 0 ) { setBlockFlag(true); } PushFollow(FOLLOW_blockStatement_in_statement8177); blockStatement141 = blockStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, blockStatement141.Tree); } break; case 2 : // AS3_ex.g3:2274:9: directive { if ( state.backtracking == 0 ) { insertStatementCR(); } PushFollow(FOLLOW_directive_in_statement8188); directive142 = directive(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive142.Tree); } break; case 3 : // AS3_ex.g3:2275:9: namespaceDirective { if ( state.backtracking == 0 ) { insertStatementCR(); } PushFollow(FOLLOW_namespaceDirective_in_statement8199); namespaceDirective143 = namespaceDirective(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, namespaceDirective143.Tree); } break; case 4 : // AS3_ex.g3:2276:9: constantVarStatement { if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { pushLazyIndent(); } PushFollow(FOLLOW_constantVarStatement_in_statement8212); constantVarStatement144 = constantVarStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, constantVarStatement144.Tree); if ( state.backtracking == 0 ) { popIndent(); } } break; case 5 : // AS3_ex.g3:2277:9: tryStatement { if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } PushFollow(FOLLOW_tryStatement_in_statement8225); tryStatement145 = tryStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, tryStatement145.Tree); } break; case 6 : // AS3_ex.g3:2278:9: switchStatement { if ( state.backtracking == 0 ) { markBlockFlag(); } PushFollow(FOLLOW_switchStatement_in_statement8237); switchStatement146 = switchStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, switchStatement146.Tree); } break; case 7 : // AS3_ex.g3:2279:9: withStatement { if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_withStatement_in_statement8251); withStatement147 = withStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, withStatement147.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 8 : // AS3_ex.g3:2280:9: returnStatement { if ( state.backtracking == 0 ) { pushLazyIndent(); } PushFollow(FOLLOW_returnStatement_in_statement8265); returnStatement148 = returnStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, returnStatement148.Tree); if ( state.backtracking == 0 ) { popIndent(); } } break; case 9 : // AS3_ex.g3:2281:9: breakStatement { if ( state.backtracking == 0 ) { pushLazyIndent(); } PushFollow(FOLLOW_breakStatement_in_statement8279); breakStatement149 = breakStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, breakStatement149.Tree); if ( state.backtracking == 0 ) { popIndent(); } } break; case 10 : // AS3_ex.g3:2282:9: continueStatement { if ( state.backtracking == 0 ) { pushLazyIndent(); } PushFollow(FOLLOW_continueStatement_in_statement8293); continueStatement150 = continueStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, continueStatement150.Tree); if ( state.backtracking == 0 ) { popIndent(); } } break; case 11 : // AS3_ex.g3:2283:9: forStatement { if ( state.backtracking == 0 ) { mPrinter.inLoop(); } if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_forStatement_in_statement8310); forStatement151 = forStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forStatement151.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 12 : // AS3_ex.g3:2284:9: forInStatement { if ( state.backtracking == 0 ) { mPrinter.inLoop(); } if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_forInStatement_in_statement8327); forInStatement152 = forInStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forInStatement152.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 13 : // AS3_ex.g3:2285:9: forEachInStatement { if ( state.backtracking == 0 ) { mPrinter.inLoop(); } if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_forEachInStatement_in_statement8344); forEachInStatement153 = forEachInStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forEachInStatement153.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 14 : // AS3_ex.g3:2286:9: doWhileStatement { if ( state.backtracking == 0 ) { mPrinter.inLoop(); } if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_doWhileStatement_in_statement8361); doWhileStatement154 = doWhileStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, doWhileStatement154.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 15 : // AS3_ex.g3:2287:9: whileStatement { if ( state.backtracking == 0 ) { mPrinter.inLoop(); } if ( state.backtracking == 0 ) { markBlockFlag();insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_whileStatement_in_statement8378); whileStatement155 = whileStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, whileStatement155.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 16 : // AS3_ex.g3:2288:9: ifStatement { if ( state.backtracking == 0 ) { mPrinter.inCondition(); } if ( state.backtracking == 0 ) { insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } PushFollow(FOLLOW_ifStatement_in_statement8393); ifStatement156 = ifStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, ifStatement156.Tree); } break; case 17 : // AS3_ex.g3:2289:9: variableStatement { if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { pushLazyIndent(); } PushFollow(FOLLOW_variableStatement_in_statement8407); variableStatement157 = variableStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableStatement157.Tree); if ( state.backtracking == 0 ) { popIndent(); } if ( state.backtracking == 0 ) { mPrinter.adjustLastLineIndent(); } } break; case 18 : // AS3_ex.g3:2290:9: throwStatement { if ( state.backtracking == 0 ) { pushLazyIndent(); } PushFollow(FOLLOW_throwStatement_in_statement8422); throwStatement158 = throwStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, throwStatement158.Tree); if ( state.backtracking == 0 ) { popIndent(); } } break; case 19 : // AS3_ex.g3:2291:9: labelledStatement { if ( state.backtracking == 0 ) { insertLines(mPrinter.getBlankLinesBeforeControlStatement()); } if ( state.backtracking == 0 ) { insertStatementCR(); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_controlStatement_code); } PushFollow(FOLLOW_labelledStatement_in_statement8438); labelledStatement159 = labelledStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, labelledStatement159.Tree); if ( state.backtracking == 0 ) { popBlockStack(); } } break; case 20 : // AS3_ex.g3:2292:9: expression semic { if ( state.backtracking == 0 ) { pushLazyIndent(); } if ( state.backtracking == 0 ) { mPrinter.markDeclEqualsContextChange(); } if ( state.backtracking == 0 ) { if (mPrinter.statementNeedsCR(input.LT(1))) insertStatementCR(); else insertWS(1); } PushFollow(FOLLOW_expression_in_statement8470); expression160 = expression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expression160.Tree); PushFollow(FOLLOW_semic_in_statement8472); semic161 = semic(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, semic161.Tree); if ( state.backtracking == 0 ) { popIndent(); } if ( state.backtracking == 0 ) { mPrinter.adjustLastLineIndent(); } } break; case 21 : // AS3_ex.g3:2300:9: emptyStatement { if ( state.backtracking == 0 ) { if (mPrinter.isEmptyStatementsOnNewLine())insertStatementCR(); } PushFollow(FOLLOW_emptyStatement_in_statement8487); emptyStatement162 = emptyStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, emptyStatement162.Tree); } break; } if ( state.backtracking == 0 ) { mPrinter.inOther(); } } 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, 58, statement_StartIndex); } } return retval; }