// $ANTLR start "propertyDeclaration" // AS3_ex.g3:1680:1: propertyDeclaration : ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) ; public AS3_exParser.propertyDeclaration_return propertyDeclaration() // throws RecognitionException [1] { AS3_exParser.propertyDeclaration_return retval = new AS3_exParser.propertyDeclaration_return(); retval.Start = input.LT(1); int propertyDeclaration_StartIndex = input.Index(); object root_0 = null; AS3_exParser.conditionalDirAndBindingDecls_return conditionalDirAndBindingDecls108 = null; AS3_exParser.memberModifiers_return memberModifiers109 = null; AS3_exParser.variableStatement_return variableStatement110 = null; AS3_exParser.constantVarStatement_return constantVarStatement111 = null; AS3_exParser.namespaceDirective_return namespaceDirective112 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 50) ) { return retval; } // AS3_ex.g3:1681:2: ( ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) ) // AS3_ex.g3:1681:7: ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { InsertLines(mPrinter.GetBlankLinesBeforeProperties()); } // AS3_ex.g3:1681:64: ( conditionalDirAndBindingDecls )? int alt61 = 2; switch ( input.LA(1) ) { case IDENTIFIER: { int LA61_1 = input.LA(2); if ( (LA61_1 == XML_NS_OP) ) { alt61 = 1; } } break; case NATIVE: case DYNAMIC: case FINAL: case OVERRIDE: case STATIC: { int LA61_2 = input.LA(2); if ( (LA61_2 == XML_NS_OP) ) { alt61 = 1; } } break; case NAMESPACE: { int LA61_3 = input.LA(2); if ( (LA61_3 == XML_NS_OP) ) { alt61 = 1; } } break; case TO: case EACH: case GET: case SET: { alt61 = 1; } break; } switch (alt61) { case 1 : // AS3_ex.g3:1681:65: conditionalDirAndBindingDecls { PushFollow(FOLLOW_conditionalDirAndBindingDecls_in_propertyDeclaration6973); conditionalDirAndBindingDecls108 = conditionalDirAndBindingDecls(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalDirAndBindingDecls108.Tree); } break; } if ( state.backtracking == 0 ) { InsertCR(false); } if ( state.backtracking == 0 ) { PushLazyIndent(); } // AS3_ex.g3:1681:135: ( memberModifiers )? int alt62 = 2; int LA62_0 = input.LA(1); if ( (LA62_0 == IDENTIFIER) ) { int LA62_1 = input.LA(2); if ( (synpred142_AS3_ex()) ) { alt62 = 1; } } else if ( (LA62_0 == INTERNAL || LA62_0 == NATIVE || (LA62_0 >= PRIVATE && LA62_0 <= PUBLIC) || (LA62_0 >= DYNAMIC && LA62_0 <= STATIC)) ) { alt62 = 1; } switch (alt62) { case 1 : // AS3_ex.g3:0:0: memberModifiers { PushFollow(FOLLOW_memberModifiers_in_propertyDeclaration6980); memberModifiers109 = memberModifiers(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, memberModifiers109.Tree); } break; } // AS3_ex.g3:1681:152: ( variableStatement | constantVarStatement | namespaceDirective ) int alt63 = 3; switch ( input.LA(1) ) { case VAR: case IDENTIFIER: { alt63 = 1; } break; case CONST: { alt63 = 2; } break; case NAMESPACE: { alt63 = 3; } break; default: if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d63s0 = new NoViableAltException("", 63, 0, input); throw nvae_d63s0; } switch (alt63) { case 1 : // AS3_ex.g3:1681:153: variableStatement { PushFollow(FOLLOW_variableStatement_in_propertyDeclaration6984); variableStatement110 = variableStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableStatement110.Tree); } break; case 2 : // AS3_ex.g3:1681:173: constantVarStatement { PushFollow(FOLLOW_constantVarStatement_in_propertyDeclaration6988); constantVarStatement111 = constantVarStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, constantVarStatement111.Tree); } break; case 3 : // AS3_ex.g3:1681:196: namespaceDirective { PushFollow(FOLLOW_namespaceDirective_in_propertyDeclaration6992); namespaceDirective112 = namespaceDirective(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, namespaceDirective112.Tree); } break; } if ( state.backtracking == 0 ) { PopIndent(); } } 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, 50, propertyDeclaration_StartIndex); } } return retval; }
// $ANTLR start "propertyDeclaration" // AS3_ex.g3:2134:1: propertyDeclaration : ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) ; public AS3_exParser.propertyDeclaration_return propertyDeclaration() // throws RecognitionException [1] { AS3_exParser.propertyDeclaration_return retval = new AS3_exParser.propertyDeclaration_return(); retval.Start = input.LT(1); int propertyDeclaration_StartIndex = input.Index(); object root_0 = null; AS3_exParser.conditionalDirAndBindingDecls_return conditionalDirAndBindingDecls119 = null; AS3_exParser.memberModifiers_return memberModifiers120 = null; AS3_exParser.variableStatement_return variableStatement121 = null; AS3_exParser.constantVarStatement_return constantVarStatement122 = null; AS3_exParser.namespaceDirective_return namespaceDirective123 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 50) ) { return retval; } // AS3_ex.g3:2135:2: ( ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) ) // AS3_ex.g3:2135:7: ( conditionalDirAndBindingDecls )? ( memberModifiers )? ( variableStatement | constantVarStatement | namespaceDirective ) { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { insertLines(mPrinter.getBlankLinesBeforeProperties());mPrinter.setBindingContext(ASPrettyPrinter.BindingContext_Property); } // AS3_ex.g3:2135:132: ( conditionalDirAndBindingDecls )? int alt67 = 2; switch ( input.LA(1) ) { case IDENTIFIER: { int LA67_1 = input.LA(2); if ( (LA67_1 == XML_NS_OP) ) { alt67 = 1; } } break; case NATIVE: case DYNAMIC: case FINAL: case OVERRIDE: case STATIC: { int LA67_2 = input.LA(2); if ( (LA67_2 == XML_NS_OP) ) { alt67 = 1; } } break; case NAMESPACE: { int LA67_3 = input.LA(2); if ( (LA67_3 == XML_NS_OP) ) { alt67 = 1; } } break; case TO: case EACH: case GET: case SET: { alt67 = 1; } break; } switch (alt67) { case 1 : // AS3_ex.g3:2135:133: conditionalDirAndBindingDecls { PushFollow(FOLLOW_conditionalDirAndBindingDecls_in_propertyDeclaration7406); conditionalDirAndBindingDecls119 = conditionalDirAndBindingDecls(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalDirAndBindingDecls119.Tree); } break; } if ( state.backtracking == 0 ) { insertCR(false); } if ( state.backtracking == 0 ) { pushLazyIndent(); } // AS3_ex.g3:2135:203: ( memberModifiers )? int alt68 = 2; int LA68_0 = input.LA(1); if ( (LA68_0 == IDENTIFIER) ) { int LA68_1 = input.LA(2); if ( (synpred152_AS3_ex()) ) { alt68 = 1; } } else if ( (LA68_0 == INTERNAL || LA68_0 == NATIVE || (LA68_0 >= PRIVATE && LA68_0 <= PUBLIC) || (LA68_0 >= DYNAMIC && LA68_0 <= STATIC)) ) { alt68 = 1; } switch (alt68) { case 1 : // AS3_ex.g3:0:0: memberModifiers { PushFollow(FOLLOW_memberModifiers_in_propertyDeclaration7413); memberModifiers120 = memberModifiers(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, memberModifiers120.Tree); } break; } // AS3_ex.g3:2135:220: ( variableStatement | constantVarStatement | namespaceDirective ) int alt69 = 3; switch ( input.LA(1) ) { case VAR: case IDENTIFIER: { alt69 = 1; } break; case CONST: { alt69 = 2; } break; case NAMESPACE: { alt69 = 3; } break; default: if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d69s0 = new NoViableAltException("", 69, 0, input); throw nvae_d69s0; } switch (alt69) { case 1 : // AS3_ex.g3:2135:221: variableStatement { PushFollow(FOLLOW_variableStatement_in_propertyDeclaration7417); variableStatement121 = variableStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, variableStatement121.Tree); } break; case 2 : // AS3_ex.g3:2135:241: constantVarStatement { PushFollow(FOLLOW_constantVarStatement_in_propertyDeclaration7421); constantVarStatement122 = constantVarStatement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, constantVarStatement122.Tree); } break; case 3 : // AS3_ex.g3:2135:264: namespaceDirective { PushFollow(FOLLOW_namespaceDirective_in_propertyDeclaration7425); namespaceDirective123 = namespaceDirective(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, namespaceDirective123.Tree); } break; } if ( state.backtracking == 0 ) { popIndent(); } if ( state.backtracking == 0 ) { mPrinter.adjustLastLineIndent(); } } 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, 50, propertyDeclaration_StartIndex); } } return retval; }