// $ANTLR start "classBodyElement" // AS3_ex.g3:1655:1: classBodyElement : ( propertyDeclaration | functionDeclaration | statement | directive ); public AS3_exParser.classBodyElement_return classBodyElement() // throws RecognitionException [1] { AS3_exParser.classBodyElement_return retval = new AS3_exParser.classBodyElement_return(); retval.Start = input.LT(1); int classBodyElement_StartIndex = input.Index(); object root_0 = null; AS3_exParser.propertyDeclaration_return propertyDeclaration94 = null; AS3_exParser.functionDeclaration_return functionDeclaration95 = null; AS3_exParser.statement_return statement96 = null; AS3_exParser.directive_return directive97 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 47) ) { return retval; } // AS3_ex.g3:1656:5: ( propertyDeclaration | functionDeclaration | statement | directive ) int alt54 = 4; alt54 = dfa54.Predict(input); switch (alt54) { case 1 : // AS3_ex.g3:1656:9: propertyDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_propertyDeclaration_in_classBodyElement6806); propertyDeclaration94 = propertyDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyDeclaration94.Tree); } break; case 2 : // AS3_ex.g3:1656:31: functionDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_functionDeclaration_in_classBodyElement6810); functionDeclaration95 = functionDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, functionDeclaration95.Tree); } break; case 3 : // AS3_ex.g3:1656:53: statement { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_statement_in_classBodyElement6814); statement96 = statement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, statement96.Tree); } break; case 4 : // AS3_ex.g3:1656:65: directive { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_directive_in_classBodyElement6818); directive97 = directive(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive97.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, 47, classBodyElement_StartIndex); } } return retval; }
// $ANTLR start "classBodyElement" // AS3_ex.g3:2075:1: classBodyElement : ( ( conditionalCompilerOption LCURLY )=> conditionalCompilerOption l= LCURLY ( classBodyElement )* r= RCURLY | propertyDeclaration | functionDeclaration | statement | directive ); public AS3_exParser.classBodyElement_return classBodyElement() // throws RecognitionException [1] { AS3_exParser.classBodyElement_return retval = new AS3_exParser.classBodyElement_return(); retval.Start = input.LT(1); int classBodyElement_StartIndex = input.Index(); object root_0 = null; IToken l = null; IToken r = null; AS3_exParser.conditionalCompilerOption_return conditionalCompilerOption101 = null; AS3_exParser.classBodyElement_return classBodyElement102 = null; AS3_exParser.propertyDeclaration_return propertyDeclaration103 = null; AS3_exParser.functionDeclaration_return functionDeclaration104 = null; AS3_exParser.statement_return statement105 = null; AS3_exParser.directive_return directive106 = null; object l_tree=null; object r_tree=null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 47) ) { return retval; } // AS3_ex.g3:2076:5: ( ( conditionalCompilerOption LCURLY )=> conditionalCompilerOption l= LCURLY ( classBodyElement )* r= RCURLY | propertyDeclaration | functionDeclaration | statement | directive ) int alt59 = 5; alt59 = dfa59.Predict(input); switch (alt59) { case 1 : // AS3_ex.g3:2076:7: ( conditionalCompilerOption LCURLY )=> conditionalCompilerOption l= LCURLY ( classBodyElement )* r= RCURLY { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { insertCR(false); } PushFollow(FOLLOW_conditionalCompilerOption_in_classBodyElement7108); conditionalCompilerOption101 = conditionalCompilerOption(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalCompilerOption101.Tree); l=(IToken)Match(input,LCURLY,FOLLOW_LCURLY_in_classBodyElement7116); if (state.failed) return retval; if ( state.backtracking == 0 ) {l_tree = (object)adaptor.Create(l); adaptor.AddChild(root_0, l_tree); } if ( state.backtracking == 0 ) { mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_Conditional_code); leftCurlyNewlineHandler(false); emit(l);pushIndent(true); {mPrinter.addDeclEqualsBlock();} mCodeBlockStack.Add(ASPrettyPrinter.BraceContext_block_code); } // AS3_ex.g3:2086:4: ( classBodyElement )* do { int alt58 = 2; int LA58_0 = input.LA(1); if ( ((LA58_0 >= AS && LA58_0 <= LCURLY) || LA58_0 == LPAREN || LA58_0 == LBRACK || LA58_0 == LT || (LA58_0 >= PLUS && LA58_0 <= STAR) || (LA58_0 >= INC && LA58_0 <= DEC) || (LA58_0 >= NOT && LA58_0 <= INV) || (LA58_0 >= XML_AT && LA58_0 <= XML_LS_STD) || (LA58_0 >= SINGLE_QUOTE_LITERAL && LA58_0 <= DOUBLE_QUOTE_LITERAL) || LA58_0 == REGULAR_EXPR_LITERAL || LA58_0 == HEX_NUMBER_LITERAL || LA58_0 == DEC_NUMBER_LITERAL || LA58_0 == IDENTIFIER || (LA58_0 >= XML_COMMENT && LA58_0 <= XML_PI)) ) { alt58 = 1; } switch (alt58) { case 1 : // AS3_ex.g3:0:0: classBodyElement { PushFollow(FOLLOW_classBodyElement_in_classBodyElement7126); classBodyElement102 = classBodyElement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, classBodyElement102.Tree); } break; default: goto loop58; } } while (true); loop58: ; // Stops C# compiler whining that label 'loop58' has no statements if ( state.backtracking == 0 ) { popIndent(); } if ( state.backtracking == 0 ) { mPrinter.popDeclEqualsBlock(); } r=(IToken)Match(input,RCURLY,FOLLOW_RCURLY_in_classBodyElement7145); if (state.failed) return retval; if ( state.backtracking == 0 ) {r_tree = (object)adaptor.Create(r); adaptor.AddChild(root_0, r_tree); } if ( state.backtracking == 0 ) { insertCR(false);emit(r);popBlockStack();popBlockStack(); } } break; case 2 : // AS3_ex.g3:2090:7: propertyDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_propertyDeclaration_in_classBodyElement7159); propertyDeclaration103 = propertyDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyDeclaration103.Tree); } break; case 3 : // AS3_ex.g3:2090:29: functionDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_functionDeclaration_in_classBodyElement7163); functionDeclaration104 = functionDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, functionDeclaration104.Tree); } break; case 4 : // AS3_ex.g3:2090:51: statement { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_statement_in_classBodyElement7167); statement105 = statement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, statement105.Tree); } break; case 5 : // AS3_ex.g3:2090:63: directive { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_directive_in_classBodyElement7171); directive106 = directive(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive106.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, 47, classBodyElement_StartIndex); } } return retval; }