// $ANTLR start "interfaceElement" // AS3_ex.g3:1659:1: interfaceElement : ( propertyDeclaration | interfaceFunctionDeclaration | statement | directive ); public AS3_exParser.interfaceElement_return interfaceElement() // throws RecognitionException [1] { AS3_exParser.interfaceElement_return retval = new AS3_exParser.interfaceElement_return(); retval.Start = input.LT(1); int interfaceElement_StartIndex = input.Index(); object root_0 = null; AS3_exParser.propertyDeclaration_return propertyDeclaration98 = null; AS3_exParser.interfaceFunctionDeclaration_return interfaceFunctionDeclaration99 = null; AS3_exParser.statement_return statement100 = null; AS3_exParser.directive_return directive101 = null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 48) ) { return retval; } // AS3_ex.g3:1660:5: ( propertyDeclaration | interfaceFunctionDeclaration | statement | directive ) int alt55 = 4; alt55 = dfa55.Predict(input); switch (alt55) { case 1 : // AS3_ex.g3:1660:9: propertyDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_propertyDeclaration_in_interfaceElement6835); propertyDeclaration98 = propertyDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyDeclaration98.Tree); } break; case 2 : // AS3_ex.g3:1660:31: interfaceFunctionDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_interfaceFunctionDeclaration_in_interfaceElement6839); interfaceFunctionDeclaration99 = interfaceFunctionDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, interfaceFunctionDeclaration99.Tree); } break; case 3 : // AS3_ex.g3:1660:62: statement { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_statement_in_interfaceElement6843); statement100 = statement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, statement100.Tree); } break; case 4 : // AS3_ex.g3:1660:73: directive { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_directive_in_interfaceElement6846); directive101 = directive(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive101.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, 48, interfaceElement_StartIndex); } } return retval; }
// $ANTLR start "interfaceElement" // AS3_ex.g3:2093:1: interfaceElement : ( ( conditionalCompilerOption LCURLY )=> conditionalCompilerOption l= LCURLY ( interfaceElement )* r= RCURLY | propertyDeclaration | interfaceFunctionDeclaration | statement | directive ); public AS3_exParser.interfaceElement_return interfaceElement() // throws RecognitionException [1] { AS3_exParser.interfaceElement_return retval = new AS3_exParser.interfaceElement_return(); retval.Start = input.LT(1); int interfaceElement_StartIndex = input.Index(); object root_0 = null; IToken l = null; IToken r = null; AS3_exParser.conditionalCompilerOption_return conditionalCompilerOption107 = null; AS3_exParser.interfaceElement_return interfaceElement108 = null; AS3_exParser.propertyDeclaration_return propertyDeclaration109 = null; AS3_exParser.interfaceFunctionDeclaration_return interfaceFunctionDeclaration110 = null; AS3_exParser.statement_return statement111 = null; AS3_exParser.directive_return directive112 = null; object l_tree=null; object r_tree=null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 48) ) { return retval; } // AS3_ex.g3:2094:5: ( ( conditionalCompilerOption LCURLY )=> conditionalCompilerOption l= LCURLY ( interfaceElement )* r= RCURLY | propertyDeclaration | interfaceFunctionDeclaration | statement | directive ) int alt61 = 5; alt61 = dfa61.Predict(input); switch (alt61) { case 1 : // AS3_ex.g3:2094:7: ( conditionalCompilerOption LCURLY )=> conditionalCompilerOption l= LCURLY ( interfaceElement )* r= RCURLY { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { insertCR(false); } PushFollow(FOLLOW_conditionalCompilerOption_in_interfaceElement7203); conditionalCompilerOption107 = conditionalCompilerOption(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalCompilerOption107.Tree); l=(IToken)Match(input,LCURLY,FOLLOW_LCURLY_in_interfaceElement7211); 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:2104:4: ( interfaceElement )* do { int alt60 = 2; int LA60_0 = input.LA(1); if ( ((LA60_0 >= AS && LA60_0 <= LCURLY) || LA60_0 == LPAREN || LA60_0 == LBRACK || LA60_0 == LT || (LA60_0 >= PLUS && LA60_0 <= STAR) || (LA60_0 >= INC && LA60_0 <= DEC) || (LA60_0 >= NOT && LA60_0 <= INV) || (LA60_0 >= XML_AT && LA60_0 <= XML_LS_STD) || (LA60_0 >= SINGLE_QUOTE_LITERAL && LA60_0 <= DOUBLE_QUOTE_LITERAL) || LA60_0 == REGULAR_EXPR_LITERAL || LA60_0 == HEX_NUMBER_LITERAL || LA60_0 == DEC_NUMBER_LITERAL || LA60_0 == IDENTIFIER || (LA60_0 >= XML_COMMENT && LA60_0 <= XML_PI)) ) { alt60 = 1; } switch (alt60) { case 1 : // AS3_ex.g3:0:0: interfaceElement { PushFollow(FOLLOW_interfaceElement_in_interfaceElement7221); interfaceElement108 = interfaceElement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, interfaceElement108.Tree); } break; default: goto loop60; } } while (true); loop60: ; // Stops C# compiler whining that label 'loop60' has no statements if ( state.backtracking == 0 ) { popIndent(); } if ( state.backtracking == 0 ) { mPrinter.popDeclEqualsBlock(); } r=(IToken)Match(input,RCURLY,FOLLOW_RCURLY_in_interfaceElement7240); 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:2108:7: propertyDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_propertyDeclaration_in_interfaceElement7254); propertyDeclaration109 = propertyDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyDeclaration109.Tree); } break; case 3 : // AS3_ex.g3:2108:29: interfaceFunctionDeclaration { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_interfaceFunctionDeclaration_in_interfaceElement7258); interfaceFunctionDeclaration110 = interfaceFunctionDeclaration(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, interfaceFunctionDeclaration110.Tree); } break; case 4 : // AS3_ex.g3:2108:60: statement { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_statement_in_interfaceElement7262); statement111 = statement(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, statement111.Tree); } break; case 5 : // AS3_ex.g3:2108:71: directive { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_directive_in_interfaceElement7265); directive112 = directive(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, directive112.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, 48, interfaceElement_StartIndex); } } return retval; }