diff --git a/.classpath b/.classpath
index 17791a799..3ee1187b6 100644
--- a/.classpath
+++ b/.classpath
@@ -1,6 +1,11 @@
+ * Run 'java Main [-showtree] directory-full-of-java-files' + * + * [The -showtree option pops up a Swing frame that shows + * the AST constructed from the parser.] + * + * Run 'java Main+ */ +public class JavaRecognizer extends antlr.LLkParser implements JavaTokenTypes + { + +protected JavaRecognizer(TokenBuffer tokenBuf, int k) { + super(tokenBuf,k); + tokenNames = _tokenNames; + buildTokenTypeASTClassMap(); + astFactory = new ASTFactory(getTokenTypeToASTClassMap()); +} + +public JavaRecognizer(TokenBuffer tokenBuf) { + this(tokenBuf,2); +} + +protected JavaRecognizer(TokenStream lexer, int k) { + super(lexer,k); + tokenNames = _tokenNames; + buildTokenTypeASTClassMap(); + astFactory = new ASTFactory(getTokenTypeToASTClassMap()); +} + +public JavaRecognizer(TokenStream lexer) { + this(lexer,2); +} + +public JavaRecognizer(ParserSharedInputState state) { + super(state,2); + tokenNames = _tokenNames; + buildTokenTypeASTClassMap(); + astFactory = new ASTFactory(getTokenTypeToASTClassMap()); +} + + public final void compilationUnit() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST compilationUnit_AST = null; + + { + switch ( LA(1)) { + case LITERAL_package: + { + packageDefinition(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case EOF: + case FINAL: + case ABSTRACT: + case STRICTFP: + case SEMI: + case LITERAL_import: + case LITERAL_private: + case LITERAL_public: + case LITERAL_protected: + case LITERAL_static: + case LITERAL_transient: + case LITERAL_native: + case LITERAL_threadsafe: + case LITERAL_synchronized: + case LITERAL_volatile: + case LITERAL_class: + case LITERAL_interface: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + { + _loop4: + do { + if ((LA(1)==LITERAL_import)) { + importDefinition(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop4; + } + + } while (true); + } + { + _loop6: + do { + if ((_tokenSet_0.member(LA(1)))) { + typeDefinition(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop6; + } + + } while (true); + } + match(Token.EOF_TYPE); + compilationUnit_AST = (AST)currentAST.root; + returnAST = compilationUnit_AST; + } + + public final void packageDefinition() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST packageDefinition_AST = null; + Token p = null; + AST p_AST = null; + + try { // for error handling + p = LT(1); + p_AST = astFactory.create(p); + astFactory.makeASTRoot(currentAST, p_AST); + match(LITERAL_package); + if ( inputState.guessing==0 ) { + p_AST.setType(PACKAGE_DEF); + } + identifier(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + packageDefinition_AST = (AST)currentAST.root; + } + catch (RecognitionException ex) { + if (inputState.guessing==0) { + reportError(ex); + recover(ex,_tokenSet_1); + } else { + throw ex; + } + } + returnAST = packageDefinition_AST; + } + + public final void importDefinition() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST importDefinition_AST = null; + Token i = null; + AST i_AST = null; + + try { // for error handling + i = LT(1); + i_AST = astFactory.create(i); + astFactory.makeASTRoot(currentAST, i_AST); + match(LITERAL_import); + if ( inputState.guessing==0 ) { + i_AST.setType(IMPORT); + } + identifierStar(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + importDefinition_AST = (AST)currentAST.root; + } + catch (RecognitionException ex) { + if (inputState.guessing==0) { + reportError(ex); + recover(ex,_tokenSet_1); + } else { + throw ex; + } + } + returnAST = importDefinition_AST; + } + + public final void typeDefinition() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST typeDefinition_AST = null; + AST m_AST = null; + + try { // for error handling + switch ( LA(1)) { + case FINAL: + case ABSTRACT: + case STRICTFP: + case LITERAL_private: + case LITERAL_public: + case LITERAL_protected: + case LITERAL_static: + case LITERAL_transient: + case LITERAL_native: + case LITERAL_threadsafe: + case LITERAL_synchronized: + case LITERAL_volatile: + case LITERAL_class: + case LITERAL_interface: + { + modifiers(); + m_AST = (AST)returnAST; + { + switch ( LA(1)) { + case LITERAL_class: + { + classDefinition(m_AST); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case LITERAL_interface: + { + interfaceDefinition(m_AST); + astFactory.addASTChild(currentAST, returnAST); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + typeDefinition_AST = (AST)currentAST.root; + break; + } + case SEMI: + { + match(SEMI); + typeDefinition_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + catch (RecognitionException ex) { + if (inputState.guessing==0) { + reportError(ex); + recover(ex,_tokenSet_2); + } else { + throw ex; + } + } + returnAST = typeDefinition_AST; + } + + public final void identifier() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST identifier_AST = null; + + AST tmp5_AST = null; + tmp5_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp5_AST); + match(IDENT); + { + _loop23: + do { + if ((LA(1)==DOT)) { + AST tmp6_AST = null; + tmp6_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp6_AST); + match(DOT); + AST tmp7_AST = null; + tmp7_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp7_AST); + match(IDENT); + } + else { + break _loop23; + } + + } while (true); + } + identifier_AST = (AST)currentAST.root; + returnAST = identifier_AST; + } + + public final void identifierStar() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST identifierStar_AST = null; + + AST tmp8_AST = null; + tmp8_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp8_AST); + match(IDENT); + { + _loop26: + do { + if ((LA(1)==DOT) && (LA(2)==IDENT)) { + AST tmp9_AST = null; + tmp9_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp9_AST); + match(DOT); + AST tmp10_AST = null; + tmp10_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp10_AST); + match(IDENT); + } + else { + break _loop26; + } + + } while (true); + } + { + switch ( LA(1)) { + case DOT: + { + AST tmp11_AST = null; + tmp11_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp11_AST); + match(DOT); + AST tmp12_AST = null; + tmp12_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp12_AST); + match(STAR); + break; + } + case SEMI: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + identifierStar_AST = (AST)currentAST.root; + returnAST = identifierStar_AST; + } + + public final void modifiers() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST modifiers_AST = null; + + { + _loop30: + do { + if ((_tokenSet_3.member(LA(1)))) { + modifier(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop30; + } + + } while (true); + } + if ( inputState.guessing==0 ) { + modifiers_AST = (AST)currentAST.root; + modifiers_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(MODIFIERS,"MODIFIERS")).add(modifiers_AST)); + currentAST.root = modifiers_AST; + currentAST.child = modifiers_AST!=null &&modifiers_AST.getFirstChild()!=null ? + modifiers_AST.getFirstChild() : modifiers_AST; + currentAST.advanceChildToEnd(); + } + modifiers_AST = (AST)currentAST.root; + returnAST = modifiers_AST; + } + + public final void classDefinition( + AST modifiers + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST classDefinition_AST = null; + AST sc_AST = null; + AST ic_AST = null; + AST cb_AST = null; + + match(LITERAL_class); + AST tmp14_AST = null; + tmp14_AST = astFactory.create(LT(1)); + match(IDENT); + superClassClause(); + sc_AST = (AST)returnAST; + implementsClause(); + ic_AST = (AST)returnAST; + classBlock(); + cb_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + classDefinition_AST = (AST)currentAST.root; + classDefinition_AST = (AST)astFactory.make( (new ASTArray(6)).add(astFactory.create(CLASS_DEF,"CLASS_DEF")).add(modifiers).add(tmp14_AST).add(sc_AST).add(ic_AST).add(cb_AST)); + currentAST.root = classDefinition_AST; + currentAST.child = classDefinition_AST!=null &&classDefinition_AST.getFirstChild()!=null ? + classDefinition_AST.getFirstChild() : classDefinition_AST; + currentAST.advanceChildToEnd(); + } + returnAST = classDefinition_AST; + } + + public final void interfaceDefinition( + AST modifiers + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST interfaceDefinition_AST = null; + AST ie_AST = null; + AST cb_AST = null; + + match(LITERAL_interface); + AST tmp16_AST = null; + tmp16_AST = astFactory.create(LT(1)); + match(IDENT); + interfaceExtends(); + ie_AST = (AST)returnAST; + classBlock(); + cb_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + interfaceDefinition_AST = (AST)currentAST.root; + interfaceDefinition_AST = (AST)astFactory.make( (new ASTArray(5)).add(astFactory.create(INTERFACE_DEF,"INTERFACE_DEF")).add(modifiers).add(tmp16_AST).add(ie_AST).add(cb_AST)); + currentAST.root = interfaceDefinition_AST; + currentAST.child = interfaceDefinition_AST!=null &&interfaceDefinition_AST.getFirstChild()!=null ? + interfaceDefinition_AST.getFirstChild() : interfaceDefinition_AST; + currentAST.advanceChildToEnd(); + } + returnAST = interfaceDefinition_AST; + } + +/** A declaration is the creation of a reference or primitive-type variable + * Create a separate Type/Var tree for each var in the var list. + */ + public final void declaration() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST declaration_AST = null; + AST m_AST = null; + AST t_AST = null; + AST v_AST = null; + + modifiers(); + m_AST = (AST)returnAST; + typeSpec(false); + t_AST = (AST)returnAST; + variableDefinitions(m_AST,t_AST); + v_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + declaration_AST = (AST)currentAST.root; + declaration_AST = v_AST; + currentAST.root = declaration_AST; + currentAST.child = declaration_AST!=null &&declaration_AST.getFirstChild()!=null ? + declaration_AST.getFirstChild() : declaration_AST; + currentAST.advanceChildToEnd(); + } + returnAST = declaration_AST; + } + + public final void typeSpec( + boolean addImagNode + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST typeSpec_AST = null; + + switch ( LA(1)) { + case IDENT: + { + classTypeSpec(addImagNode); + astFactory.addASTChild(currentAST, returnAST); + typeSpec_AST = (AST)currentAST.root; + break; + } + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + { + builtInTypeSpec(addImagNode); + astFactory.addASTChild(currentAST, returnAST); + typeSpec_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = typeSpec_AST; + } + + public final void variableDefinitions( + AST mods, AST t + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST variableDefinitions_AST = null; + + variableDeclarator(getASTFactory().dupTree(mods), + getASTFactory().dupTree(t)); + astFactory.addASTChild(currentAST, returnAST); + { + _loop59: + do { + if ((LA(1)==COMMA)) { + match(COMMA); + variableDeclarator(getASTFactory().dupTree(mods), + getASTFactory().dupTree(t)); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop59; + } + + } while (true); + } + variableDefinitions_AST = (AST)currentAST.root; + returnAST = variableDefinitions_AST; + } + + public final void classTypeSpec( + boolean addImagNode + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST classTypeSpec_AST = null; + Token lb = null; + AST lb_AST = null; + + identifier(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop15: + do { + if ((LA(1)==LBRACK)) { + lb = LT(1); + lb_AST = astFactory.create(lb); + astFactory.makeASTRoot(currentAST, lb_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lb_AST.setType(ARRAY_DECLARATOR); + } + match(RBRACK); + } + else { + break _loop15; + } + + } while (true); + } + if ( inputState.guessing==0 ) { + classTypeSpec_AST = (AST)currentAST.root; + + if ( addImagNode ) { + classTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(classTypeSpec_AST)); + } + + currentAST.root = classTypeSpec_AST; + currentAST.child = classTypeSpec_AST!=null &&classTypeSpec_AST.getFirstChild()!=null ? + classTypeSpec_AST.getFirstChild() : classTypeSpec_AST; + currentAST.advanceChildToEnd(); + } + classTypeSpec_AST = (AST)currentAST.root; + returnAST = classTypeSpec_AST; + } + + public final void builtInTypeSpec( + boolean addImagNode + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST builtInTypeSpec_AST = null; + Token lb = null; + AST lb_AST = null; + + builtInType(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop18: + do { + if ((LA(1)==LBRACK)) { + lb = LT(1); + lb_AST = astFactory.create(lb); + astFactory.makeASTRoot(currentAST, lb_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lb_AST.setType(ARRAY_DECLARATOR); + } + match(RBRACK); + } + else { + break _loop18; + } + + } while (true); + } + if ( inputState.guessing==0 ) { + builtInTypeSpec_AST = (AST)currentAST.root; + + if ( addImagNode ) { + builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST)); + } + + currentAST.root = builtInTypeSpec_AST; + currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ? + builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST; + currentAST.advanceChildToEnd(); + } + builtInTypeSpec_AST = (AST)currentAST.root; + returnAST = builtInTypeSpec_AST; + } + + public final void builtInType() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST builtInType_AST = null; + + switch ( LA(1)) { + case LITERAL_void: + { + AST tmp20_AST = null; + tmp20_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp20_AST); + match(LITERAL_void); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_boolean: + { + AST tmp21_AST = null; + tmp21_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp21_AST); + match(LITERAL_boolean); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_byte: + { + AST tmp22_AST = null; + tmp22_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp22_AST); + match(LITERAL_byte); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_char: + { + AST tmp23_AST = null; + tmp23_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp23_AST); + match(LITERAL_char); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_short: + { + AST tmp24_AST = null; + tmp24_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp24_AST); + match(LITERAL_short); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_int: + { + AST tmp25_AST = null; + tmp25_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp25_AST); + match(LITERAL_int); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_float: + { + AST tmp26_AST = null; + tmp26_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp26_AST); + match(LITERAL_float); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_long: + { + AST tmp27_AST = null; + tmp27_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp27_AST); + match(LITERAL_long); + builtInType_AST = (AST)currentAST.root; + break; + } + case LITERAL_double: + { + AST tmp28_AST = null; + tmp28_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp28_AST); + match(LITERAL_double); + builtInType_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = builtInType_AST; + } + + public final void type() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST type_AST = null; + + switch ( LA(1)) { + case IDENT: + { + identifier(); + astFactory.addASTChild(currentAST, returnAST); + type_AST = (AST)currentAST.root; + break; + } + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + { + builtInType(); + astFactory.addASTChild(currentAST, returnAST); + type_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = type_AST; + } + + public final void modifier() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST modifier_AST = null; + + switch ( LA(1)) { + case LITERAL_private: + { + AST tmp29_AST = null; + tmp29_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp29_AST); + match(LITERAL_private); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_public: + { + AST tmp30_AST = null; + tmp30_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp30_AST); + match(LITERAL_public); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_protected: + { + AST tmp31_AST = null; + tmp31_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp31_AST); + match(LITERAL_protected); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_static: + { + AST tmp32_AST = null; + tmp32_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp32_AST); + match(LITERAL_static); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_transient: + { + AST tmp33_AST = null; + tmp33_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp33_AST); + match(LITERAL_transient); + modifier_AST = (AST)currentAST.root; + break; + } + case FINAL: + { + AST tmp34_AST = null; + tmp34_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp34_AST); + match(FINAL); + modifier_AST = (AST)currentAST.root; + break; + } + case ABSTRACT: + { + AST tmp35_AST = null; + tmp35_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp35_AST); + match(ABSTRACT); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_native: + { + AST tmp36_AST = null; + tmp36_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp36_AST); + match(LITERAL_native); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_threadsafe: + { + AST tmp37_AST = null; + tmp37_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp37_AST); + match(LITERAL_threadsafe); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_synchronized: + { + AST tmp38_AST = null; + tmp38_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp38_AST); + match(LITERAL_synchronized); + modifier_AST = (AST)currentAST.root; + break; + } + case LITERAL_volatile: + { + AST tmp39_AST = null; + tmp39_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp39_AST); + match(LITERAL_volatile); + modifier_AST = (AST)currentAST.root; + break; + } + case STRICTFP: + { + AST tmp40_AST = null; + tmp40_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp40_AST); + match(STRICTFP); + modifier_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = modifier_AST; + } + + public final void superClassClause() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST superClassClause_AST = null; + AST id_AST = null; + + { + switch ( LA(1)) { + case LITERAL_extends: + { + match(LITERAL_extends); + identifier(); + id_AST = (AST)returnAST; + break; + } + case LCURLY: + case LITERAL_implements: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + superClassClause_AST = (AST)currentAST.root; + superClassClause_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(EXTENDS_CLAUSE,"EXTENDS_CLAUSE")).add(id_AST)); + currentAST.root = superClassClause_AST; + currentAST.child = superClassClause_AST!=null &&superClassClause_AST.getFirstChild()!=null ? + superClassClause_AST.getFirstChild() : superClassClause_AST; + currentAST.advanceChildToEnd(); + } + returnAST = superClassClause_AST; + } + + public final void implementsClause() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST implementsClause_AST = null; + Token i = null; + AST i_AST = null; + + { + switch ( LA(1)) { + case LITERAL_implements: + { + i = LT(1); + i_AST = astFactory.create(i); + match(LITERAL_implements); + identifier(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop46: + do { + if ((LA(1)==COMMA)) { + match(COMMA); + identifier(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop46; + } + + } while (true); + } + break; + } + case LCURLY: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + implementsClause_AST = (AST)currentAST.root; + implementsClause_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(IMPLEMENTS_CLAUSE,"IMPLEMENTS_CLAUSE")).add(implementsClause_AST)); + currentAST.root = implementsClause_AST; + currentAST.child = implementsClause_AST!=null &&implementsClause_AST.getFirstChild()!=null ? + implementsClause_AST.getFirstChild() : implementsClause_AST; + currentAST.advanceChildToEnd(); + } + implementsClause_AST = (AST)currentAST.root; + returnAST = implementsClause_AST; + } + + public final void classBlock() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST classBlock_AST = null; + + match(LCURLY); + { + _loop38: + do { + switch ( LA(1)) { + case FINAL: + case ABSTRACT: + case STRICTFP: + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LITERAL_private: + case LITERAL_public: + case LITERAL_protected: + case LITERAL_static: + case LITERAL_transient: + case LITERAL_native: + case LITERAL_threadsafe: + case LITERAL_synchronized: + case LITERAL_volatile: + case LITERAL_class: + case LITERAL_interface: + case LCURLY: + { + field(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + { + match(SEMI); + break; + } + default: + { + break _loop38; + } + } + } while (true); + } + match(RCURLY); + if ( inputState.guessing==0 ) { + classBlock_AST = (AST)currentAST.root; + classBlock_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(OBJBLOCK,"OBJBLOCK")).add(classBlock_AST)); + currentAST.root = classBlock_AST; + currentAST.child = classBlock_AST!=null &&classBlock_AST.getFirstChild()!=null ? + classBlock_AST.getFirstChild() : classBlock_AST; + currentAST.advanceChildToEnd(); + } + classBlock_AST = (AST)currentAST.root; + returnAST = classBlock_AST; + } + + public final void interfaceExtends() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST interfaceExtends_AST = null; + Token e = null; + AST e_AST = null; + + { + switch ( LA(1)) { + case LITERAL_extends: + { + e = LT(1); + e_AST = astFactory.create(e); + match(LITERAL_extends); + identifier(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop42: + do { + if ((LA(1)==COMMA)) { + match(COMMA); + identifier(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop42; + } + + } while (true); + } + break; + } + case LCURLY: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + interfaceExtends_AST = (AST)currentAST.root; + interfaceExtends_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(EXTENDS_CLAUSE,"EXTENDS_CLAUSE")).add(interfaceExtends_AST)); + currentAST.root = interfaceExtends_AST; + currentAST.child = interfaceExtends_AST!=null &&interfaceExtends_AST.getFirstChild()!=null ? + interfaceExtends_AST.getFirstChild() : interfaceExtends_AST; + currentAST.advanceChildToEnd(); + } + interfaceExtends_AST = (AST)currentAST.root; + returnAST = interfaceExtends_AST; + } + + public final void field() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST field_AST = null; + AST mods_AST = null; + AST h_AST = null; + AST s_AST = null; + AST cd_AST = null; + AST id_AST = null; + AST t_AST = null; + AST param_AST = null; + AST rt_AST = null; + AST tc_AST = null; + AST s2_AST = null; + AST v_AST = null; + AST s3_AST = null; + AST s4_AST = null; + + if ((_tokenSet_4.member(LA(1))) && (_tokenSet_5.member(LA(2)))) { + modifiers(); + mods_AST = (AST)returnAST; + { + switch ( LA(1)) { + case LITERAL_class: + { + classDefinition(mods_AST); + cd_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = cd_AST; + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + break; + } + case LITERAL_interface: + { + interfaceDefinition(mods_AST); + id_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = id_AST; + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + break; + } + default: + if ((LA(1)==IDENT) && (LA(2)==LPAREN)) { + ctorHead(); + h_AST = (AST)returnAST; + constructorBody(); + s_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = (AST)astFactory.make( (new ASTArray(4)).add(astFactory.create(CTOR_DEF,"CTOR_DEF")).add(mods_AST).add(h_AST).add(s_AST)); + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + } + else if (((LA(1) >= LITERAL_void && LA(1) <= IDENT)) && (_tokenSet_6.member(LA(2)))) { + typeSpec(false); + t_AST = (AST)returnAST; + { + if ((LA(1)==IDENT) && (LA(2)==LPAREN)) { + AST tmp47_AST = null; + tmp47_AST = astFactory.create(LT(1)); + match(IDENT); + match(LPAREN); + parameterDeclarationList(); + param_AST = (AST)returnAST; + match(RPAREN); + declaratorBrackets(t_AST); + rt_AST = (AST)returnAST; + { + switch ( LA(1)) { + case LITERAL_throws: + { + throwsClause(); + tc_AST = (AST)returnAST; + break; + } + case SEMI: + case LCURLY: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + { + switch ( LA(1)) { + case LCURLY: + { + compoundStatement(); + s2_AST = (AST)returnAST; + break; + } + case SEMI: + { + AST tmp50_AST = null; + tmp50_AST = astFactory.create(LT(1)); + match(SEMI); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = (AST)astFactory.make( (new ASTArray(7)).add(astFactory.create(METHOD_DEF,"METHOD_DEF")).add(mods_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(rt_AST))).add(tmp47_AST).add(param_AST).add(tc_AST).add(s2_AST)); + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + } + else if ((LA(1)==IDENT) && (_tokenSet_7.member(LA(2)))) { + variableDefinitions(mods_AST,t_AST); + v_AST = (AST)returnAST; + AST tmp51_AST = null; + tmp51_AST = astFactory.create(LT(1)); + match(SEMI); + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = v_AST; + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + } + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + } + else if ((LA(1)==LITERAL_static) && (LA(2)==LCURLY)) { + match(LITERAL_static); + compoundStatement(); + s3_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(STATIC_INIT,"STATIC_INIT")).add(s3_AST)); + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + } + else if ((LA(1)==LCURLY)) { + compoundStatement(); + s4_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + field_AST = (AST)currentAST.root; + field_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(INSTANCE_INIT,"INSTANCE_INIT")).add(s4_AST)); + currentAST.root = field_AST; + currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ? + field_AST.getFirstChild() : field_AST; + currentAST.advanceChildToEnd(); + } + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + returnAST = field_AST; + } + + public final void ctorHead() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST ctorHead_AST = null; + + AST tmp53_AST = null; + tmp53_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp53_AST); + match(IDENT); + match(LPAREN); + parameterDeclarationList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + { + switch ( LA(1)) { + case LITERAL_throws: + { + throwsClause(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case LCURLY: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + ctorHead_AST = (AST)currentAST.root; + returnAST = ctorHead_AST; + } + + public final void constructorBody() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST constructorBody_AST = null; + Token lc = null; + AST lc_AST = null; + + lc = LT(1); + lc_AST = astFactory.create(lc); + astFactory.makeASTRoot(currentAST, lc_AST); + match(LCURLY); + if ( inputState.guessing==0 ) { + lc_AST.setType(SLIST); + } + { + if ((LA(1)==LITERAL_this||LA(1)==LITERAL_super) && (LA(2)==LPAREN)) { + explicitConstructorInvocation(); + astFactory.addASTChild(currentAST, returnAST); + } + else if ((_tokenSet_8.member(LA(1))) && (_tokenSet_9.member(LA(2)))) { + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + } + { + _loop55: + do { + if ((_tokenSet_10.member(LA(1)))) { + statement(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop55; + } + + } while (true); + } + match(RCURLY); + constructorBody_AST = (AST)currentAST.root; + returnAST = constructorBody_AST; + } + + public final void parameterDeclarationList() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST parameterDeclarationList_AST = null; + + { + switch ( LA(1)) { + case FINAL: + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + { + parameterDeclaration(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop80: + do { + if ((LA(1)==COMMA)) { + match(COMMA); + parameterDeclaration(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop80; + } + + } while (true); + } + break; + } + case RPAREN: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + parameterDeclarationList_AST = (AST)currentAST.root; + parameterDeclarationList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(PARAMETERS,"PARAMETERS")).add(parameterDeclarationList_AST)); + currentAST.root = parameterDeclarationList_AST; + currentAST.child = parameterDeclarationList_AST!=null &¶meterDeclarationList_AST.getFirstChild()!=null ? + parameterDeclarationList_AST.getFirstChild() : parameterDeclarationList_AST; + currentAST.advanceChildToEnd(); + } + parameterDeclarationList_AST = (AST)currentAST.root; + returnAST = parameterDeclarationList_AST; + } + + public final void declaratorBrackets( + AST typ + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST declaratorBrackets_AST = null; + Token lb = null; + AST lb_AST = null; + + if ( inputState.guessing==0 ) { + declaratorBrackets_AST = (AST)currentAST.root; + declaratorBrackets_AST=typ; + currentAST.root = declaratorBrackets_AST; + currentAST.child = declaratorBrackets_AST!=null &&declaratorBrackets_AST.getFirstChild()!=null ? + declaratorBrackets_AST.getFirstChild() : declaratorBrackets_AST; + currentAST.advanceChildToEnd(); + } + { + _loop63: + do { + if ((LA(1)==LBRACK)) { + lb = LT(1); + lb_AST = astFactory.create(lb); + astFactory.makeASTRoot(currentAST, lb_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lb_AST.setType(ARRAY_DECLARATOR); + } + match(RBRACK); + } + else { + break _loop63; + } + + } while (true); + } + declaratorBrackets_AST = (AST)currentAST.root; + returnAST = declaratorBrackets_AST; + } + + public final void throwsClause() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST throwsClause_AST = null; + + AST tmp59_AST = null; + tmp59_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp59_AST); + match(LITERAL_throws); + identifier(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop76: + do { + if ((LA(1)==COMMA)) { + match(COMMA); + identifier(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop76; + } + + } while (true); + } + throwsClause_AST = (AST)currentAST.root; + returnAST = throwsClause_AST; + } + + public final void compoundStatement() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST compoundStatement_AST = null; + Token lc = null; + AST lc_AST = null; + + lc = LT(1); + lc_AST = astFactory.create(lc); + astFactory.makeASTRoot(currentAST, lc_AST); + match(LCURLY); + if ( inputState.guessing==0 ) { + lc_AST.setType(SLIST); + } + { + _loop86: + do { + if ((_tokenSet_10.member(LA(1)))) { + statement(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop86; + } + + } while (true); + } + match(RCURLY); + compoundStatement_AST = (AST)currentAST.root; + returnAST = compoundStatement_AST; + } + +/** Catch obvious constructor calls, but not the expr.super(...) calls */ + public final void explicitConstructorInvocation() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST explicitConstructorInvocation_AST = null; + Token lp1 = null; + AST lp1_AST = null; + Token lp2 = null; + AST lp2_AST = null; + + switch ( LA(1)) { + case LITERAL_this: + { + match(LITERAL_this); + lp1 = LT(1); + lp1_AST = astFactory.create(lp1); + astFactory.makeASTRoot(currentAST, lp1_AST); + match(LPAREN); + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + match(SEMI); + if ( inputState.guessing==0 ) { + lp1_AST.setType(CTOR_CALL); + } + explicitConstructorInvocation_AST = (AST)currentAST.root; + break; + } + case LITERAL_super: + { + match(LITERAL_super); + lp2 = LT(1); + lp2_AST = astFactory.create(lp2); + astFactory.makeASTRoot(currentAST, lp2_AST); + match(LPAREN); + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + match(SEMI); + if ( inputState.guessing==0 ) { + lp2_AST.setType(SUPER_CTOR_CALL); + } + explicitConstructorInvocation_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = explicitConstructorInvocation_AST; + } + + public final void statement() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST statement_AST = null; + AST m_AST = null; + Token c = null; + AST c_AST = null; + Token s = null; + AST s_AST = null; + + switch ( LA(1)) { + case LCURLY: + { + compoundStatement(); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_if: + { + AST tmp68_AST = null; + tmp68_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp68_AST); + match(LITERAL_if); + match(LPAREN); + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + statement(); + astFactory.addASTChild(currentAST, returnAST); + { + if ((LA(1)==LITERAL_else) && (_tokenSet_10.member(LA(2)))) { + match(LITERAL_else); + statement(); + astFactory.addASTChild(currentAST, returnAST); + } + else if ((_tokenSet_11.member(LA(1))) && (_tokenSet_12.member(LA(2)))) { + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + } + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_for: + { + AST tmp72_AST = null; + tmp72_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp72_AST); + match(LITERAL_for); + match(LPAREN); + forInit(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + forCond(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + forIter(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + statement(); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_while: + { + AST tmp77_AST = null; + tmp77_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp77_AST); + match(LITERAL_while); + match(LPAREN); + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + statement(); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_do: + { + AST tmp80_AST = null; + tmp80_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp80_AST); + match(LITERAL_do); + statement(); + astFactory.addASTChild(currentAST, returnAST); + match(LITERAL_while); + match(LPAREN); + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + match(SEMI); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_break: + { + AST tmp85_AST = null; + tmp85_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp85_AST); + match(LITERAL_break); + { + switch ( LA(1)) { + case IDENT: + { + AST tmp86_AST = null; + tmp86_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp86_AST); + match(IDENT); + break; + } + case SEMI: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(SEMI); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_continue: + { + AST tmp88_AST = null; + tmp88_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp88_AST); + match(LITERAL_continue); + { + switch ( LA(1)) { + case IDENT: + { + AST tmp89_AST = null; + tmp89_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp89_AST); + match(IDENT); + break; + } + case SEMI: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(SEMI); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_return: + { + AST tmp91_AST = null; + tmp91_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp91_AST); + match(LITERAL_return); + { + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + expression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(SEMI); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_switch: + { + AST tmp93_AST = null; + tmp93_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp93_AST); + match(LITERAL_switch); + match(LPAREN); + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + match(LCURLY); + { + _loop95: + do { + if ((LA(1)==LITERAL_case||LA(1)==LITERAL_default)) { + casesGroup(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop95; + } + + } while (true); + } + match(RCURLY); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_try: + { + tryBlock(); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_throw: + { + AST tmp98_AST = null; + tmp98_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp98_AST); + match(LITERAL_throw); + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + statement_AST = (AST)currentAST.root; + break; + } + case LITERAL_assert: + { + AST tmp100_AST = null; + tmp100_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp100_AST); + match(LITERAL_assert); + expression(); + astFactory.addASTChild(currentAST, returnAST); + { + switch ( LA(1)) { + case COLON: + { + match(COLON); + expression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(SEMI); + statement_AST = (AST)currentAST.root; + break; + } + case SEMI: + { + s = LT(1); + s_AST = astFactory.create(s); + astFactory.addASTChild(currentAST, s_AST); + match(SEMI); + if ( inputState.guessing==0 ) { + s_AST.setType(EMPTY_STAT); + } + statement_AST = (AST)currentAST.root; + break; + } + default: + boolean synPredMatched89 = false; + if (((_tokenSet_13.member(LA(1))) && (_tokenSet_14.member(LA(2))))) { + int _m89 = mark(); + synPredMatched89 = true; + inputState.guessing++; + try { + { + declaration(); + } + } + catch (RecognitionException pe) { + synPredMatched89 = false; + } + rewind(_m89); +inputState.guessing--; + } + if ( synPredMatched89 ) { + declaration(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + statement_AST = (AST)currentAST.root; + } + else if ((_tokenSet_15.member(LA(1))) && (_tokenSet_16.member(LA(2)))) { + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(SEMI); + statement_AST = (AST)currentAST.root; + } + else if ((_tokenSet_17.member(LA(1))) && (_tokenSet_18.member(LA(2)))) { + modifiers(); + m_AST = (AST)returnAST; + classDefinition(m_AST); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + } + else if ((LA(1)==IDENT) && (LA(2)==COLON)) { + AST tmp105_AST = null; + tmp105_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp105_AST); + match(IDENT); + c = LT(1); + c_AST = astFactory.create(c); + astFactory.makeASTRoot(currentAST, c_AST); + match(COLON); + if ( inputState.guessing==0 ) { + c_AST.setType(LABELED_STAT); + } + statement(); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + } + else if ((LA(1)==LITERAL_synchronized) && (LA(2)==LPAREN)) { + AST tmp106_AST = null; + tmp106_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp106_AST); + match(LITERAL_synchronized); + match(LPAREN); + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + compoundStatement(); + astFactory.addASTChild(currentAST, returnAST); + statement_AST = (AST)currentAST.root; + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = statement_AST; + } + + public final void argList() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST argList_AST = null; + + { + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + expressionList(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case RPAREN: + { + if ( inputState.guessing==0 ) { + argList_AST = (AST)currentAST.root; + argList_AST = astFactory.create(ELIST,"ELIST"); + currentAST.root = argList_AST; + currentAST.child = argList_AST!=null &&argList_AST.getFirstChild()!=null ? + argList_AST.getFirstChild() : argList_AST; + currentAST.advanceChildToEnd(); + } + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + argList_AST = (AST)currentAST.root; + returnAST = argList_AST; + } + +/** Declaration of a variable. This can be a class/instance variable, + * or a local variable in a method + * It can also include possible initialization. + */ + public final void variableDeclarator( + AST mods, AST t + ) throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST variableDeclarator_AST = null; + Token id = null; + AST id_AST = null; + AST d_AST = null; + AST v_AST = null; + + id = LT(1); + id_AST = astFactory.create(id); + match(IDENT); + declaratorBrackets(t); + d_AST = (AST)returnAST; + varInitializer(); + v_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + variableDeclarator_AST = (AST)currentAST.root; + variableDeclarator_AST = (AST)astFactory.make( (new ASTArray(5)).add(astFactory.create(VARIABLE_DEF,"VARIABLE_DEF")).add(mods).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(d_AST))).add(id_AST).add(v_AST)); + currentAST.root = variableDeclarator_AST; + currentAST.child = variableDeclarator_AST!=null &&variableDeclarator_AST.getFirstChild()!=null ? + variableDeclarator_AST.getFirstChild() : variableDeclarator_AST; + currentAST.advanceChildToEnd(); + } + returnAST = variableDeclarator_AST; + } + + public final void varInitializer() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST varInitializer_AST = null; + + { + switch ( LA(1)) { + case ASSIGN: + { + AST tmp109_AST = null; + tmp109_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp109_AST); + match(ASSIGN); + initializer(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + case COMMA: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + varInitializer_AST = (AST)currentAST.root; + returnAST = varInitializer_AST; + } + + public final void initializer() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST initializer_AST = null; + + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + expression(); + astFactory.addASTChild(currentAST, returnAST); + initializer_AST = (AST)currentAST.root; + break; + } + case LCURLY: + { + arrayInitializer(); + astFactory.addASTChild(currentAST, returnAST); + initializer_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = initializer_AST; + } + + public final void arrayInitializer() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST arrayInitializer_AST = null; + Token lc = null; + AST lc_AST = null; + + lc = LT(1); + lc_AST = astFactory.create(lc); + astFactory.makeASTRoot(currentAST, lc_AST); + match(LCURLY); + if ( inputState.guessing==0 ) { + lc_AST.setType(ARRAY_INIT); + } + { + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LCURLY: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + initializer(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop69: + do { + if ((LA(1)==COMMA) && (_tokenSet_19.member(LA(2)))) { + match(COMMA); + initializer(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop69; + } + + } while (true); + } + { + switch ( LA(1)) { + case COMMA: + { + match(COMMA); + break; + } + case RCURLY: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + break; + } + case RCURLY: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(RCURLY); + arrayInitializer_AST = (AST)currentAST.root; + returnAST = arrayInitializer_AST; + } + + public final void expression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST expression_AST = null; + + assignmentExpression(); + astFactory.addASTChild(currentAST, returnAST); + if ( inputState.guessing==0 ) { + expression_AST = (AST)currentAST.root; + expression_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(EXPR,"EXPR")).add(expression_AST)); + currentAST.root = expression_AST; + currentAST.child = expression_AST!=null &&expression_AST.getFirstChild()!=null ? + expression_AST.getFirstChild() : expression_AST; + currentAST.advanceChildToEnd(); + } + expression_AST = (AST)currentAST.root; + returnAST = expression_AST; + } + + public final void parameterDeclaration() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST parameterDeclaration_AST = null; + AST pm_AST = null; + AST t_AST = null; + Token id = null; + AST id_AST = null; + AST pd_AST = null; + + parameterModifier(); + pm_AST = (AST)returnAST; + typeSpec(false); + t_AST = (AST)returnAST; + id = LT(1); + id_AST = astFactory.create(id); + match(IDENT); + declaratorBrackets(t_AST); + pd_AST = (AST)returnAST; + if ( inputState.guessing==0 ) { + parameterDeclaration_AST = (AST)currentAST.root; + parameterDeclaration_AST = (AST)astFactory.make( (new ASTArray(4)).add(astFactory.create(PARAMETER_DEF,"PARAMETER_DEF")).add(pm_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(pd_AST))).add(id_AST)); + currentAST.root = parameterDeclaration_AST; + currentAST.child = parameterDeclaration_AST!=null &¶meterDeclaration_AST.getFirstChild()!=null ? + parameterDeclaration_AST.getFirstChild() : parameterDeclaration_AST; + currentAST.advanceChildToEnd(); + } + returnAST = parameterDeclaration_AST; + } + + public final void parameterModifier() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST parameterModifier_AST = null; + Token f = null; + AST f_AST = null; + + { + switch ( LA(1)) { + case FINAL: + { + f = LT(1); + f_AST = astFactory.create(f); + astFactory.addASTChild(currentAST, f_AST); + match(FINAL); + break; + } + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + parameterModifier_AST = (AST)currentAST.root; + parameterModifier_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(MODIFIERS,"MODIFIERS")).add(f_AST)); + currentAST.root = parameterModifier_AST; + currentAST.child = parameterModifier_AST!=null &¶meterModifier_AST.getFirstChild()!=null ? + parameterModifier_AST.getFirstChild() : parameterModifier_AST; + currentAST.advanceChildToEnd(); + } + parameterModifier_AST = (AST)currentAST.root; + returnAST = parameterModifier_AST; + } + + public final void forInit() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST forInit_AST = null; + + { + boolean synPredMatched108 = false; + if (((_tokenSet_13.member(LA(1))) && (_tokenSet_14.member(LA(2))))) { + int _m108 = mark(); + synPredMatched108 = true; + inputState.guessing++; + try { + { + declaration(); + } + } + catch (RecognitionException pe) { + synPredMatched108 = false; + } + rewind(_m108); +inputState.guessing--; + } + if ( synPredMatched108 ) { + declaration(); + astFactory.addASTChild(currentAST, returnAST); + } + else if ((_tokenSet_15.member(LA(1))) && (_tokenSet_20.member(LA(2)))) { + expressionList(); + astFactory.addASTChild(currentAST, returnAST); + } + else if ((LA(1)==SEMI)) { + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + } + if ( inputState.guessing==0 ) { + forInit_AST = (AST)currentAST.root; + forInit_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_INIT,"FOR_INIT")).add(forInit_AST)); + currentAST.root = forInit_AST; + currentAST.child = forInit_AST!=null &&forInit_AST.getFirstChild()!=null ? + forInit_AST.getFirstChild() : forInit_AST; + currentAST.advanceChildToEnd(); + } + forInit_AST = (AST)currentAST.root; + returnAST = forInit_AST; + } + + public final void forCond() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST forCond_AST = null; + + { + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + expression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + forCond_AST = (AST)currentAST.root; + forCond_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_CONDITION,"FOR_CONDITION")).add(forCond_AST)); + currentAST.root = forCond_AST; + currentAST.child = forCond_AST!=null &&forCond_AST.getFirstChild()!=null ? + forCond_AST.getFirstChild() : forCond_AST; + currentAST.advanceChildToEnd(); + } + forCond_AST = (AST)currentAST.root; + returnAST = forCond_AST; + } + + public final void forIter() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST forIter_AST = null; + + { + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + expressionList(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case RPAREN: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState.guessing==0 ) { + forIter_AST = (AST)currentAST.root; + forIter_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_ITERATOR,"FOR_ITERATOR")).add(forIter_AST)); + currentAST.root = forIter_AST; + currentAST.child = forIter_AST!=null &&forIter_AST.getFirstChild()!=null ? + forIter_AST.getFirstChild() : forIter_AST; + currentAST.advanceChildToEnd(); + } + forIter_AST = (AST)currentAST.root; + returnAST = forIter_AST; + } + + public final void casesGroup() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST casesGroup_AST = null; + + { + int _cnt99=0; + _loop99: + do { + if ((LA(1)==LITERAL_case||LA(1)==LITERAL_default) && (_tokenSet_21.member(LA(2)))) { + aCase(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + if ( _cnt99>=1 ) { break _loop99; } else {throw new NoViableAltException(LT(1), getFilename());} + } + + _cnt99++; + } while (true); + } + caseSList(); + astFactory.addASTChild(currentAST, returnAST); + if ( inputState.guessing==0 ) { + casesGroup_AST = (AST)currentAST.root; + casesGroup_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(CASE_GROUP,"CASE_GROUP")).add(casesGroup_AST)); + currentAST.root = casesGroup_AST; + currentAST.child = casesGroup_AST!=null &&casesGroup_AST.getFirstChild()!=null ? + casesGroup_AST.getFirstChild() : casesGroup_AST; + currentAST.advanceChildToEnd(); + } + casesGroup_AST = (AST)currentAST.root; + returnAST = casesGroup_AST; + } + + public final void tryBlock() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST tryBlock_AST = null; + + AST tmp113_AST = null; + tmp113_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp113_AST); + match(LITERAL_try); + compoundStatement(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop115: + do { + if ((LA(1)==LITERAL_catch)) { + handler(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop115; + } + + } while (true); + } + { + switch ( LA(1)) { + case LITERAL_finally: + { + finallyClause(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case FINAL: + case ABSTRACT: + case STRICTFP: + case SEMI: + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LITERAL_private: + case LITERAL_public: + case LITERAL_protected: + case LITERAL_static: + case LITERAL_transient: + case LITERAL_native: + case LITERAL_threadsafe: + case LITERAL_synchronized: + case LITERAL_volatile: + case LITERAL_class: + case LCURLY: + case RCURLY: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case LITERAL_if: + case LITERAL_else: + case LITERAL_for: + case LITERAL_while: + case LITERAL_do: + case LITERAL_break: + case LITERAL_continue: + case LITERAL_return: + case LITERAL_switch: + case LITERAL_throw: + case LITERAL_assert: + case LITERAL_case: + case LITERAL_default: + case LITERAL_try: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + tryBlock_AST = (AST)currentAST.root; + returnAST = tryBlock_AST; + } + + public final void aCase() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST aCase_AST = null; + + { + switch ( LA(1)) { + case LITERAL_case: + { + AST tmp114_AST = null; + tmp114_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp114_AST); + match(LITERAL_case); + expression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case LITERAL_default: + { + AST tmp115_AST = null; + tmp115_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp115_AST); + match(LITERAL_default); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(COLON); + aCase_AST = (AST)currentAST.root; + returnAST = aCase_AST; + } + + public final void caseSList() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST caseSList_AST = null; + + { + _loop104: + do { + if ((_tokenSet_10.member(LA(1)))) { + statement(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop104; + } + + } while (true); + } + if ( inputState.guessing==0 ) { + caseSList_AST = (AST)currentAST.root; + caseSList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(SLIST,"SLIST")).add(caseSList_AST)); + currentAST.root = caseSList_AST; + currentAST.child = caseSList_AST!=null &&caseSList_AST.getFirstChild()!=null ? + caseSList_AST.getFirstChild() : caseSList_AST; + currentAST.advanceChildToEnd(); + } + caseSList_AST = (AST)currentAST.root; + returnAST = caseSList_AST; + } + + public final void expressionList() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST expressionList_AST = null; + + expression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop122: + do { + if ((LA(1)==COMMA)) { + match(COMMA); + expression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop122; + } + + } while (true); + } + if ( inputState.guessing==0 ) { + expressionList_AST = (AST)currentAST.root; + expressionList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(ELIST,"ELIST")).add(expressionList_AST)); + currentAST.root = expressionList_AST; + currentAST.child = expressionList_AST!=null &&expressionList_AST.getFirstChild()!=null ? + expressionList_AST.getFirstChild() : expressionList_AST; + currentAST.advanceChildToEnd(); + } + expressionList_AST = (AST)currentAST.root; + returnAST = expressionList_AST; + } + + public final void handler() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST handler_AST = null; + + AST tmp118_AST = null; + tmp118_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp118_AST); + match(LITERAL_catch); + match(LPAREN); + parameterDeclaration(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + compoundStatement(); + astFactory.addASTChild(currentAST, returnAST); + handler_AST = (AST)currentAST.root; + returnAST = handler_AST; + } + + public final void finallyClause() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST finallyClause_AST = null; + + AST tmp121_AST = null; + tmp121_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp121_AST); + match(LITERAL_finally); + compoundStatement(); + astFactory.addASTChild(currentAST, returnAST); + finallyClause_AST = (AST)currentAST.root; + returnAST = finallyClause_AST; + } + + public final void assignmentExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST assignmentExpression_AST = null; + + conditionalExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + switch ( LA(1)) { + case ASSIGN: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + { + { + switch ( LA(1)) { + case ASSIGN: + { + AST tmp122_AST = null; + tmp122_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp122_AST); + match(ASSIGN); + break; + } + case PLUS_ASSIGN: + { + AST tmp123_AST = null; + tmp123_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp123_AST); + match(PLUS_ASSIGN); + break; + } + case MINUS_ASSIGN: + { + AST tmp124_AST = null; + tmp124_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp124_AST); + match(MINUS_ASSIGN); + break; + } + case STAR_ASSIGN: + { + AST tmp125_AST = null; + tmp125_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp125_AST); + match(STAR_ASSIGN); + break; + } + case DIV_ASSIGN: + { + AST tmp126_AST = null; + tmp126_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp126_AST); + match(DIV_ASSIGN); + break; + } + case MOD_ASSIGN: + { + AST tmp127_AST = null; + tmp127_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp127_AST); + match(MOD_ASSIGN); + break; + } + case SR_ASSIGN: + { + AST tmp128_AST = null; + tmp128_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp128_AST); + match(SR_ASSIGN); + break; + } + case BSR_ASSIGN: + { + AST tmp129_AST = null; + tmp129_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp129_AST); + match(BSR_ASSIGN); + break; + } + case SL_ASSIGN: + { + AST tmp130_AST = null; + tmp130_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp130_AST); + match(SL_ASSIGN); + break; + } + case BAND_ASSIGN: + { + AST tmp131_AST = null; + tmp131_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp131_AST); + match(BAND_ASSIGN); + break; + } + case BXOR_ASSIGN: + { + AST tmp132_AST = null; + tmp132_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp132_AST); + match(BXOR_ASSIGN); + break; + } + case BOR_ASSIGN: + { + AST tmp133_AST = null; + tmp133_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp133_AST); + match(BOR_ASSIGN); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + assignmentExpression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + case RBRACK: + case RCURLY: + case COMMA: + case RPAREN: + case COLON: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + assignmentExpression_AST = (AST)currentAST.root; + returnAST = assignmentExpression_AST; + } + + public final void conditionalExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST conditionalExpression_AST = null; + + logicalOrExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + switch ( LA(1)) { + case QUESTION: + { + AST tmp134_AST = null; + tmp134_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp134_AST); + match(QUESTION); + assignmentExpression(); + astFactory.addASTChild(currentAST, returnAST); + match(COLON); + conditionalExpression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + case RBRACK: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + conditionalExpression_AST = (AST)currentAST.root; + returnAST = conditionalExpression_AST; + } + + public final void logicalOrExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST logicalOrExpression_AST = null; + + logicalAndExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop130: + do { + if ((LA(1)==LOR)) { + AST tmp136_AST = null; + tmp136_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp136_AST); + match(LOR); + logicalAndExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop130; + } + + } while (true); + } + logicalOrExpression_AST = (AST)currentAST.root; + returnAST = logicalOrExpression_AST; + } + + public final void logicalAndExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST logicalAndExpression_AST = null; + + inclusiveOrExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop133: + do { + if ((LA(1)==LAND)) { + AST tmp137_AST = null; + tmp137_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp137_AST); + match(LAND); + inclusiveOrExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop133; + } + + } while (true); + } + logicalAndExpression_AST = (AST)currentAST.root; + returnAST = logicalAndExpression_AST; + } + + public final void inclusiveOrExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST inclusiveOrExpression_AST = null; + + exclusiveOrExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop136: + do { + if ((LA(1)==BOR)) { + AST tmp138_AST = null; + tmp138_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp138_AST); + match(BOR); + exclusiveOrExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop136; + } + + } while (true); + } + inclusiveOrExpression_AST = (AST)currentAST.root; + returnAST = inclusiveOrExpression_AST; + } + + public final void exclusiveOrExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST exclusiveOrExpression_AST = null; + + andExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop139: + do { + if ((LA(1)==BXOR)) { + AST tmp139_AST = null; + tmp139_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp139_AST); + match(BXOR); + andExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop139; + } + + } while (true); + } + exclusiveOrExpression_AST = (AST)currentAST.root; + returnAST = exclusiveOrExpression_AST; + } + + public final void andExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST andExpression_AST = null; + + equalityExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop142: + do { + if ((LA(1)==BAND)) { + AST tmp140_AST = null; + tmp140_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp140_AST); + match(BAND); + equalityExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop142; + } + + } while (true); + } + andExpression_AST = (AST)currentAST.root; + returnAST = andExpression_AST; + } + + public final void equalityExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST equalityExpression_AST = null; + + relationalExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop146: + do { + if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) { + { + switch ( LA(1)) { + case NOT_EQUAL: + { + AST tmp141_AST = null; + tmp141_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp141_AST); + match(NOT_EQUAL); + break; + } + case EQUAL: + { + AST tmp142_AST = null; + tmp142_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp142_AST); + match(EQUAL); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + relationalExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop146; + } + + } while (true); + } + equalityExpression_AST = (AST)currentAST.root; + returnAST = equalityExpression_AST; + } + + public final void relationalExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST relationalExpression_AST = null; + + shiftExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + switch ( LA(1)) { + case SEMI: + case RBRACK: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + case QUESTION: + case LOR: + case LAND: + case BOR: + case BXOR: + case BAND: + case NOT_EQUAL: + case EQUAL: + case LT: + case GT: + case LE: + case GE: + { + { + _loop151: + do { + if (((LA(1) >= LT && LA(1) <= GE))) { + { + switch ( LA(1)) { + case LT: + { + AST tmp143_AST = null; + tmp143_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp143_AST); + match(LT); + break; + } + case GT: + { + AST tmp144_AST = null; + tmp144_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp144_AST); + match(GT); + break; + } + case LE: + { + AST tmp145_AST = null; + tmp145_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp145_AST); + match(LE); + break; + } + case GE: + { + AST tmp146_AST = null; + tmp146_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp146_AST); + match(GE); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + shiftExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop151; + } + + } while (true); + } + break; + } + case LITERAL_instanceof: + { + AST tmp147_AST = null; + tmp147_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp147_AST); + match(LITERAL_instanceof); + typeSpec(true); + astFactory.addASTChild(currentAST, returnAST); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + relationalExpression_AST = (AST)currentAST.root; + returnAST = relationalExpression_AST; + } + + public final void shiftExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST shiftExpression_AST = null; + + additiveExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop155: + do { + if (((LA(1) >= SL && LA(1) <= BSR))) { + { + switch ( LA(1)) { + case SL: + { + AST tmp148_AST = null; + tmp148_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp148_AST); + match(SL); + break; + } + case SR: + { + AST tmp149_AST = null; + tmp149_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp149_AST); + match(SR); + break; + } + case BSR: + { + AST tmp150_AST = null; + tmp150_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp150_AST); + match(BSR); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + additiveExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop155; + } + + } while (true); + } + shiftExpression_AST = (AST)currentAST.root; + returnAST = shiftExpression_AST; + } + + public final void additiveExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST additiveExpression_AST = null; + + multiplicativeExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop159: + do { + if ((LA(1)==PLUS||LA(1)==MINUS)) { + { + switch ( LA(1)) { + case PLUS: + { + AST tmp151_AST = null; + tmp151_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp151_AST); + match(PLUS); + break; + } + case MINUS: + { + AST tmp152_AST = null; + tmp152_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp152_AST); + match(MINUS); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + multiplicativeExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop159; + } + + } while (true); + } + additiveExpression_AST = (AST)currentAST.root; + returnAST = additiveExpression_AST; + } + + public final void multiplicativeExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST multiplicativeExpression_AST = null; + + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop163: + do { + if ((_tokenSet_22.member(LA(1)))) { + { + switch ( LA(1)) { + case STAR: + { + AST tmp153_AST = null; + tmp153_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp153_AST); + match(STAR); + break; + } + case DIV: + { + AST tmp154_AST = null; + tmp154_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp154_AST); + match(DIV); + break; + } + case MOD: + { + AST tmp155_AST = null; + tmp155_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp155_AST); + match(MOD); + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + break _loop163; + } + + } while (true); + } + multiplicativeExpression_AST = (AST)currentAST.root; + returnAST = multiplicativeExpression_AST; + } + + public final void unaryExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST unaryExpression_AST = null; + + switch ( LA(1)) { + case INC: + { + AST tmp156_AST = null; + tmp156_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp156_AST); + match(INC); + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpression_AST = (AST)currentAST.root; + break; + } + case DEC: + { + AST tmp157_AST = null; + tmp157_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp157_AST); + match(DEC); + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpression_AST = (AST)currentAST.root; + break; + } + case MINUS: + { + AST tmp158_AST = null; + tmp158_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp158_AST); + match(MINUS); + if ( inputState.guessing==0 ) { + tmp158_AST.setType(UNARY_MINUS); + } + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpression_AST = (AST)currentAST.root; + break; + } + case PLUS: + { + AST tmp159_AST = null; + tmp159_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp159_AST); + match(PLUS); + if ( inputState.guessing==0 ) { + tmp159_AST.setType(UNARY_PLUS); + } + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + unaryExpressionNotPlusMinus(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpression_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = unaryExpression_AST; + } + + public final void unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST unaryExpressionNotPlusMinus_AST = null; + Token lpb = null; + AST lpb_AST = null; + Token lp = null; + AST lp_AST = null; + + switch ( LA(1)) { + case BNOT: + { + AST tmp160_AST = null; + tmp160_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp160_AST); + match(BNOT); + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpressionNotPlusMinus_AST = (AST)currentAST.root; + break; + } + case LNOT: + { + AST tmp161_AST = null; + tmp161_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp161_AST); + match(LNOT); + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + unaryExpressionNotPlusMinus_AST = (AST)currentAST.root; + break; + } + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + { + if ((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_double))) { + lpb = LT(1); + lpb_AST = astFactory.create(lpb); + astFactory.makeASTRoot(currentAST, lpb_AST); + match(LPAREN); + if ( inputState.guessing==0 ) { + lpb_AST.setType(TYPECAST); + } + builtInTypeSpec(true); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + unaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + boolean synPredMatched168 = false; + if (((LA(1)==LPAREN) && (LA(2)==IDENT))) { + int _m168 = mark(); + synPredMatched168 = true; + inputState.guessing++; + try { + { + match(LPAREN); + classTypeSpec(true); + match(RPAREN); + unaryExpressionNotPlusMinus(); + } + } + catch (RecognitionException pe) { + synPredMatched168 = false; + } + rewind(_m168); +inputState.guessing--; + } + if ( synPredMatched168 ) { + lp = LT(1); + lp_AST = astFactory.create(lp); + astFactory.makeASTRoot(currentAST, lp_AST); + match(LPAREN); + if ( inputState.guessing==0 ) { + lp_AST.setType(TYPECAST); + } + classTypeSpec(true); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + unaryExpressionNotPlusMinus(); + astFactory.addASTChild(currentAST, returnAST); + } + else if ((_tokenSet_23.member(LA(1))) && (_tokenSet_24.member(LA(2)))) { + postfixExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + unaryExpressionNotPlusMinus_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = unaryExpressionNotPlusMinus_AST; + } + + public final void postfixExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST postfixExpression_AST = null; + Token lp = null; + AST lp_AST = null; + Token lp3 = null; + AST lp3_AST = null; + Token lps = null; + AST lps_AST = null; + Token lb = null; + AST lb_AST = null; + Token in = null; + AST in_AST = null; + Token de = null; + AST de_AST = null; + + primaryExpression(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop174: + do { + if ((LA(1)==DOT) && (LA(2)==IDENT)) { + AST tmp164_AST = null; + tmp164_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp164_AST); + match(DOT); + AST tmp165_AST = null; + tmp165_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp165_AST); + match(IDENT); + { + switch ( LA(1)) { + case LPAREN: + { + lp = LT(1); + lp_AST = astFactory.create(lp); + astFactory.makeASTRoot(currentAST, lp_AST); + match(LPAREN); + if ( inputState.guessing==0 ) { + lp_AST.setType(METHOD_CALL); + } + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + break; + } + case SEMI: + case LBRACK: + case RBRACK: + case DOT: + case STAR: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + case QUESTION: + case LOR: + case LAND: + case BOR: + case BXOR: + case BAND: + case NOT_EQUAL: + case EQUAL: + case LT: + case GT: + case LE: + case GE: + case LITERAL_instanceof: + case SL: + case SR: + case BSR: + case PLUS: + case MINUS: + case DIV: + case MOD: + case INC: + case DEC: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + } + else if ((LA(1)==DOT) && (LA(2)==LITERAL_this)) { + AST tmp167_AST = null; + tmp167_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp167_AST); + match(DOT); + AST tmp168_AST = null; + tmp168_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp168_AST); + match(LITERAL_this); + } + else if ((LA(1)==DOT) && (LA(2)==LITERAL_super)) { + AST tmp169_AST = null; + tmp169_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp169_AST); + match(DOT); + AST tmp170_AST = null; + tmp170_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp170_AST); + match(LITERAL_super); + { + switch ( LA(1)) { + case LPAREN: + { + lp3 = LT(1); + lp3_AST = astFactory.create(lp3); + astFactory.makeASTRoot(currentAST, lp3_AST); + match(LPAREN); + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + if ( inputState.guessing==0 ) { + lp3_AST.setType(SUPER_CTOR_CALL); + } + break; + } + case DOT: + { + AST tmp172_AST = null; + tmp172_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp172_AST); + match(DOT); + AST tmp173_AST = null; + tmp173_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp173_AST); + match(IDENT); + { + switch ( LA(1)) { + case LPAREN: + { + lps = LT(1); + lps_AST = astFactory.create(lps); + astFactory.makeASTRoot(currentAST, lps_AST); + match(LPAREN); + if ( inputState.guessing==0 ) { + lps_AST.setType(METHOD_CALL); + } + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + break; + } + case SEMI: + case LBRACK: + case RBRACK: + case DOT: + case STAR: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + case QUESTION: + case LOR: + case LAND: + case BOR: + case BXOR: + case BAND: + case NOT_EQUAL: + case EQUAL: + case LT: + case GT: + case LE: + case GE: + case LITERAL_instanceof: + case SL: + case SR: + case BSR: + case PLUS: + case MINUS: + case DIV: + case MOD: + case INC: + case DEC: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + } + else if ((LA(1)==DOT) && (LA(2)==LITERAL_new)) { + AST tmp175_AST = null; + tmp175_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp175_AST); + match(DOT); + newExpression(); + astFactory.addASTChild(currentAST, returnAST); + } + else if ((LA(1)==LBRACK)) { + lb = LT(1); + lb_AST = astFactory.create(lb); + astFactory.makeASTRoot(currentAST, lb_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lb_AST.setType(INDEX_OP); + } + expression(); + astFactory.addASTChild(currentAST, returnAST); + match(RBRACK); + } + else { + break _loop174; + } + + } while (true); + } + { + switch ( LA(1)) { + case INC: + { + in = LT(1); + in_AST = astFactory.create(in); + astFactory.makeASTRoot(currentAST, in_AST); + match(INC); + if ( inputState.guessing==0 ) { + in_AST.setType(POST_INC); + } + break; + } + case DEC: + { + de = LT(1); + de_AST = astFactory.create(de); + astFactory.makeASTRoot(currentAST, de_AST); + match(DEC); + if ( inputState.guessing==0 ) { + de_AST.setType(POST_DEC); + } + break; + } + case SEMI: + case RBRACK: + case STAR: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + case QUESTION: + case LOR: + case LAND: + case BOR: + case BXOR: + case BAND: + case NOT_EQUAL: + case EQUAL: + case LT: + case GT: + case LE: + case GE: + case LITERAL_instanceof: + case SL: + case SR: + case BSR: + case PLUS: + case MINUS: + case DIV: + case MOD: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + postfixExpression_AST = (AST)currentAST.root; + returnAST = postfixExpression_AST; + } + + public final void primaryExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST primaryExpression_AST = null; + Token lbt = null; + AST lbt_AST = null; + + switch ( LA(1)) { + case IDENT: + { + identPrimary(); + astFactory.addASTChild(currentAST, returnAST); + { + if ((LA(1)==DOT) && (LA(2)==LITERAL_class)) { + AST tmp177_AST = null; + tmp177_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp177_AST); + match(DOT); + AST tmp178_AST = null; + tmp178_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp178_AST); + match(LITERAL_class); + } + else if ((_tokenSet_25.member(LA(1))) && (_tokenSet_26.member(LA(2)))) { + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + } + primaryExpression_AST = (AST)currentAST.root; + break; + } + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + constant(); + astFactory.addASTChild(currentAST, returnAST); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_true: + { + AST tmp179_AST = null; + tmp179_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp179_AST); + match(LITERAL_true); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_false: + { + AST tmp180_AST = null; + tmp180_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp180_AST); + match(LITERAL_false); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_null: + { + AST tmp181_AST = null; + tmp181_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp181_AST); + match(LITERAL_null); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_new: + { + newExpression(); + astFactory.addASTChild(currentAST, returnAST); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_this: + { + AST tmp182_AST = null; + tmp182_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp182_AST); + match(LITERAL_this); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_super: + { + AST tmp183_AST = null; + tmp183_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp183_AST); + match(LITERAL_super); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LPAREN: + { + match(LPAREN); + assignmentExpression(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + primaryExpression_AST = (AST)currentAST.root; + break; + } + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + { + builtInType(); + astFactory.addASTChild(currentAST, returnAST); + { + _loop179: + do { + if ((LA(1)==LBRACK)) { + lbt = LT(1); + lbt_AST = astFactory.create(lbt); + astFactory.makeASTRoot(currentAST, lbt_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lbt_AST.setType(ARRAY_DECLARATOR); + } + match(RBRACK); + } + else { + break _loop179; + } + + } while (true); + } + AST tmp187_AST = null; + tmp187_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp187_AST); + match(DOT); + AST tmp188_AST = null; + tmp188_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp188_AST); + match(LITERAL_class); + primaryExpression_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = primaryExpression_AST; + } + +/** object instantiation. + * Trees are built as illustrated by the following input/tree pairs: + * + * new T() + * + * new + * | + * T -- ELIST + * | + * arg1 -- arg2 -- .. -- argn + * + * new int[] + * + * new + * | + * int -- ARRAY_DECLARATOR + * + * new int[] {1,2} + * + * new + * | + * int -- ARRAY_DECLARATOR -- ARRAY_INIT + * | + * EXPR -- EXPR + * | | + * 1 2 + * + * new int[3] + * new + * | + * int -- ARRAY_DECLARATOR + * | + * EXPR + * | + * 3 + * + * new int[1][2] + * + * new + * | + * int -- ARRAY_DECLARATOR + * | + * ARRAY_DECLARATOR -- EXPR + * | | + * EXPR 1 + * | + * 2 + * + */ + public final void newExpression() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST newExpression_AST = null; + + AST tmp189_AST = null; + tmp189_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp189_AST); + match(LITERAL_new); + type(); + astFactory.addASTChild(currentAST, returnAST); + { + switch ( LA(1)) { + case LPAREN: + { + match(LPAREN); + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + { + switch ( LA(1)) { + case LCURLY: + { + classBlock(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + case LBRACK: + case RBRACK: + case DOT: + case STAR: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + case QUESTION: + case LOR: + case LAND: + case BOR: + case BXOR: + case BAND: + case NOT_EQUAL: + case EQUAL: + case LT: + case GT: + case LE: + case GE: + case LITERAL_instanceof: + case SL: + case SR: + case BSR: + case PLUS: + case MINUS: + case DIV: + case MOD: + case INC: + case DEC: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + break; + } + case LBRACK: + { + newArrayDeclarator(); + astFactory.addASTChild(currentAST, returnAST); + { + switch ( LA(1)) { + case LCURLY: + { + arrayInitializer(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case SEMI: + case LBRACK: + case RBRACK: + case DOT: + case STAR: + case RCURLY: + case COMMA: + case RPAREN: + case ASSIGN: + case COLON: + case PLUS_ASSIGN: + case MINUS_ASSIGN: + case STAR_ASSIGN: + case DIV_ASSIGN: + case MOD_ASSIGN: + case SR_ASSIGN: + case BSR_ASSIGN: + case SL_ASSIGN: + case BAND_ASSIGN: + case BXOR_ASSIGN: + case BOR_ASSIGN: + case QUESTION: + case LOR: + case LAND: + case BOR: + case BXOR: + case BAND: + case NOT_EQUAL: + case EQUAL: + case LT: + case GT: + case LE: + case GE: + case LITERAL_instanceof: + case SL: + case SR: + case BSR: + case PLUS: + case MINUS: + case DIV: + case MOD: + case INC: + case DEC: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + newExpression_AST = (AST)currentAST.root; + returnAST = newExpression_AST; + } + +/** Match a, a.b.c refs, a.b.c(...) refs, a.b.c[], a.b.c[].class, + * and a.b.c.class refs. Also this(...) and super(...). Match + * this or super. + */ + public final void identPrimary() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST identPrimary_AST = null; + Token lp = null; + AST lp_AST = null; + Token lbc = null; + AST lbc_AST = null; + + AST tmp192_AST = null; + tmp192_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp192_AST); + match(IDENT); + { + _loop182: + do { + if ((LA(1)==DOT) && (LA(2)==IDENT)) { + AST tmp193_AST = null; + tmp193_AST = astFactory.create(LT(1)); + astFactory.makeASTRoot(currentAST, tmp193_AST); + match(DOT); + AST tmp194_AST = null; + tmp194_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp194_AST); + match(IDENT); + } + else { + break _loop182; + } + + } while (true); + } + { + if ((LA(1)==LPAREN)) { + { + lp = LT(1); + lp_AST = astFactory.create(lp); + astFactory.makeASTRoot(currentAST, lp_AST); + match(LPAREN); + if ( inputState.guessing==0 ) { + lp_AST.setType(METHOD_CALL); + } + argList(); + astFactory.addASTChild(currentAST, returnAST); + match(RPAREN); + } + } + else if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) { + { + int _cnt186=0; + _loop186: + do { + if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) { + lbc = LT(1); + lbc_AST = astFactory.create(lbc); + astFactory.makeASTRoot(currentAST, lbc_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lbc_AST.setType(ARRAY_DECLARATOR); + } + match(RBRACK); + } + else { + if ( _cnt186>=1 ) { break _loop186; } else {throw new NoViableAltException(LT(1), getFilename());} + } + + _cnt186++; + } while (true); + } + } + else if ((_tokenSet_25.member(LA(1))) && (_tokenSet_26.member(LA(2)))) { + } + else { + throw new NoViableAltException(LT(1), getFilename()); + } + + } + identPrimary_AST = (AST)currentAST.root; + returnAST = identPrimary_AST; + } + + public final void constant() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST constant_AST = null; + + switch ( LA(1)) { + case NUM_INT: + { + AST tmp197_AST = null; + tmp197_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp197_AST); + match(NUM_INT); + constant_AST = (AST)currentAST.root; + break; + } + case CHAR_LITERAL: + { + AST tmp198_AST = null; + tmp198_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp198_AST); + match(CHAR_LITERAL); + constant_AST = (AST)currentAST.root; + break; + } + case STRING_LITERAL: + { + AST tmp199_AST = null; + tmp199_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp199_AST); + match(STRING_LITERAL); + constant_AST = (AST)currentAST.root; + break; + } + case NUM_FLOAT: + { + AST tmp200_AST = null; + tmp200_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp200_AST); + match(NUM_FLOAT); + constant_AST = (AST)currentAST.root; + break; + } + case NUM_LONG: + { + AST tmp201_AST = null; + tmp201_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp201_AST); + match(NUM_LONG); + constant_AST = (AST)currentAST.root; + break; + } + case NUM_DOUBLE: + { + AST tmp202_AST = null; + tmp202_AST = astFactory.create(LT(1)); + astFactory.addASTChild(currentAST, tmp202_AST); + match(NUM_DOUBLE); + constant_AST = (AST)currentAST.root; + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + returnAST = constant_AST; + } + + public final void newArrayDeclarator() throws RecognitionException, TokenStreamException { + + returnAST = null; + ASTPair currentAST = new ASTPair(); + AST newArrayDeclarator_AST = null; + Token lb = null; + AST lb_AST = null; + + { + int _cnt196=0; + _loop196: + do { + if ((LA(1)==LBRACK) && (_tokenSet_27.member(LA(2)))) { + lb = LT(1); + lb_AST = astFactory.create(lb); + astFactory.makeASTRoot(currentAST, lb_AST); + match(LBRACK); + if ( inputState.guessing==0 ) { + lb_AST.setType(ARRAY_DECLARATOR); + } + { + switch ( LA(1)) { + case LITERAL_void: + case LITERAL_boolean: + case LITERAL_byte: + case LITERAL_char: + case LITERAL_short: + case LITERAL_int: + case LITERAL_float: + case LITERAL_long: + case LITERAL_double: + case IDENT: + case LPAREN: + case LITERAL_this: + case LITERAL_super: + case PLUS: + case MINUS: + case INC: + case DEC: + case BNOT: + case LNOT: + case LITERAL_true: + case LITERAL_false: + case LITERAL_null: + case LITERAL_new: + case NUM_INT: + case CHAR_LITERAL: + case STRING_LITERAL: + case NUM_FLOAT: + case NUM_LONG: + case NUM_DOUBLE: + { + expression(); + astFactory.addASTChild(currentAST, returnAST); + break; + } + case RBRACK: + { + break; + } + default: + { + throw new NoViableAltException(LT(1), getFilename()); + } + } + } + match(RBRACK); + } + else { + if ( _cnt196>=1 ) { break _loop196; } else {throw new NoViableAltException(LT(1), getFilename());} + } + + _cnt196++; + } while (true); + } + newArrayDeclarator_AST = (AST)currentAST.root; + returnAST = newArrayDeclarator_AST; + } + + + public static final String[] _tokenNames = { + "<0>", + "EOF", + "<2>", + "NULL_TREE_LOOKAHEAD", + "BLOCK", + "MODIFIERS", + "OBJBLOCK", + "SLIST", + "CTOR_DEF", + "METHOD_DEF", + "VARIABLE_DEF", + "INSTANCE_INIT", + "STATIC_INIT", + "TYPE", + "CLASS_DEF", + "INTERFACE_DEF", + "PACKAGE_DEF", + "ARRAY_DECLARATOR", + "EXTENDS_CLAUSE", + "IMPLEMENTS_CLAUSE", + "PARAMETERS", + "PARAMETER_DEF", + "LABELED_STAT", + "TYPECAST", + "INDEX_OP", + "POST_INC", + "POST_DEC", + "METHOD_CALL", + "EXPR", + "ARRAY_INIT", + "IMPORT", + "UNARY_MINUS", + "UNARY_PLUS", + "CASE_GROUP", + "ELIST", + "FOR_INIT", + "FOR_CONDITION", + "FOR_ITERATOR", + "EMPTY_STAT", + "\"final\"", + "\"abstract\"", + "\"strictfp\"", + "SUPER_CTOR_CALL", + "CTOR_CALL", + "\"package\"", + "SEMI", + "\"import\"", + "LBRACK", + "RBRACK", + "\"void\"", + "\"boolean\"", + "\"byte\"", + "\"char\"", + "\"short\"", + "\"int\"", + "\"float\"", + "\"long\"", + "\"double\"", + "IDENT", + "DOT", + "STAR", + "\"private\"", + "\"public\"", + "\"protected\"", + "\"static\"", + "\"transient\"", + "\"native\"", + "\"threadsafe\"", + "\"synchronized\"", + "\"volatile\"", + "\"class\"", + "\"extends\"", + "\"interface\"", + "LCURLY", + "RCURLY", + "COMMA", + "\"implements\"", + "LPAREN", + "RPAREN", + "\"this\"", + "\"super\"", + "ASSIGN", + "\"throws\"", + "COLON", + "\"if\"", + "\"else\"", + "\"for\"", + "\"while\"", + "\"do\"", + "\"break\"", + "\"continue\"", + "\"return\"", + "\"switch\"", + "\"throw\"", + "\"assert\"", + "\"case\"", + "\"default\"", + "\"try\"", + "\"finally\"", + "\"catch\"", + "PLUS_ASSIGN", + "MINUS_ASSIGN", + "STAR_ASSIGN", + "DIV_ASSIGN", + "MOD_ASSIGN", + "SR_ASSIGN", + "BSR_ASSIGN", + "SL_ASSIGN", + "BAND_ASSIGN", + "BXOR_ASSIGN", + "BOR_ASSIGN", + "QUESTION", + "LOR", + "LAND", + "BOR", + "BXOR", + "BAND", + "NOT_EQUAL", + "EQUAL", + "LT", + "GT", + "LE", + "GE", + "\"instanceof\"", + "SL", + "SR", + "BSR", + "PLUS", + "MINUS", + "DIV", + "MOD", + "INC", + "DEC", + "BNOT", + "LNOT", + "\"true\"", + "\"false\"", + "\"null\"", + "\"new\"", + "NUM_INT", + "CHAR_LITERAL", + "STRING_LITERAL", + "NUM_FLOAT", + "NUM_LONG", + "NUM_DOUBLE", + "WS", + "SL_COMMENT", + "ML_COMMENT", + "ESC", + "HEX_DIGIT", + "VOCAB", + "EXPONENT", + "FLOAT_SUFFIX" + }; + + protected void buildTokenTypeASTClassMap() { + tokenTypeToASTClassMap=null; + }; + + private static final long[] mk_tokenSet_0() { + long[] data = { -2305803976550907904L, 383L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0()); + private static final long[] mk_tokenSet_1() { + long[] data = { -2305733607806730238L, 383L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); + private static final long[] mk_tokenSet_2() { + long[] data = { -2305803976550907902L, 383L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2()); + private static final long[] mk_tokenSet_3() { + long[] data = { -2305839160922996736L, 63L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3()); + private static final long[] mk_tokenSet_4() { + long[] data = { -1729941358572994560L, 383L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4()); + private static final long[] mk_tokenSet_5() { + long[] data = { -1153339868781215744L, 8575L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5()); + private static final long[] mk_tokenSet_6() { + long[] data = { 864831865943490560L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6()); + private static final long[] mk_tokenSet_7() { + long[] data = { 175921860444160L, 133120L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7()); + private static final long[] mk_tokenSet_8() { + long[] data = { -1729906174200905728L, -9223372026120395137L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8()); + private static final long[] mk_tokenSet_9() { + long[] data = { -383179802279936L, -57984440449L, 131071L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9()); + private static final long[] mk_tokenSet_10() { + long[] data = { -1729906174200905728L, -9223372026120396161L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10()); + private static final long[] mk_tokenSet_11() { + long[] data = { -1729906174200905728L, -9223372019675847041L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11()); + private static final long[] mk_tokenSet_12() { + long[] data = { -383179802279936L, -284801L, 131071L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_12 = new BitSet(mk_tokenSet_12()); + private static final long[] mk_tokenSet_13() { + long[] data = { -1729941358572994560L, 63L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_13 = new BitSet(mk_tokenSet_13()); + private static final long[] mk_tokenSet_14() { + long[] data = { -1153339868781215744L, 63L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_14 = new BitSet(mk_tokenSet_14()); + private static final long[] mk_tokenSet_15() { + long[] data = { 575897802350002176L, -9223372036854669312L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_15 = new BitSet(mk_tokenSet_15()); + private static final long[] mk_tokenSet_16() { + long[] data = { 2305455981120716800L, -68719239168L, 131071L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_16 = new BitSet(mk_tokenSet_16()); + private static final long[] mk_tokenSet_17() { + long[] data = { -2305839160922996736L, 127L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_17 = new BitSet(mk_tokenSet_17()); + private static final long[] mk_tokenSet_18() { + long[] data = { -2017608784771284992L, 127L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_18 = new BitSet(mk_tokenSet_18()); + private static final long[] mk_tokenSet_19() { + long[] data = { 575897802350002176L, -9223372036854668800L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_19 = new BitSet(mk_tokenSet_19()); + private static final long[] mk_tokenSet_20() { + long[] data = { 2305455981120716800L, -68719237120L, 131071L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_20 = new BitSet(mk_tokenSet_20()); + private static final long[] mk_tokenSet_21() { + long[] data = { 575897802350002176L, -9223372036854145024L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_21 = new BitSet(mk_tokenSet_21()); + private static final long[] mk_tokenSet_22() { + long[] data = { 1152921504606846976L, 0L, 6L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_22 = new BitSet(mk_tokenSet_22()); + private static final long[] mk_tokenSet_23() { + long[] data = { 575897802350002176L, 106496L, 130944L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_23 = new BitSet(mk_tokenSet_23()); + private static final long[] mk_tokenSet_24() { + long[] data = { 2305737456097427456L, -68718695424L, 131071L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_24 = new BitSet(mk_tokenSet_24()); + private static final long[] mk_tokenSet_25() { + long[] data = { 1729839653747425280L, -68718801920L, 31L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_25 = new BitSet(mk_tokenSet_25()); + private static final long[] mk_tokenSet_26() { + long[] data = { -101704825569280L, -51539873921L, 131071L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_26 = new BitSet(mk_tokenSet_26()); + private static final long[] mk_tokenSet_27() { + long[] data = { 576179277326712832L, -9223372036854669312L, 131065L, 0L, 0L, 0L}; + return data; + } + public static final BitSet _tokenSet_27 = new BitSet(mk_tokenSet_27()); + + } diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 62baeb1c5..4c9ddeea5 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1026,7 +1026,7 @@ public class Editor extends JFrame { /** * Show the About box. */ - static public void handleAbout() { + public void handleAbout() { final Image image = Base.getImage("about.jpg", this); final Window window = new Window(this) { public void paint(Graphics g) { @@ -1046,18 +1046,18 @@ public class Editor extends JFrame { window.dispose(); } }); - int w = image.getWidth(window); - int h = image.getHeight(window); + int w = image.getWidth(this); + int h = image.getHeight(this); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); window.setBounds((screen.width-w)/2, (screen.height-h)/2, w, h); - window.show(); + window.setVisible(true); } /** * Show the preferences window. */ - static public void handlePrefs() { + public void handlePrefs() { Preferences preferences = new Preferences(); preferences.showFrame(this);' + * + * Contributing authors: + * John Mitchell johnm@non.net + * Terence Parr parrt@magelang.com + * John Lilley jlilley@empathy.com + * Scott Stanchfield thetick@magelang.com + * Markus Mohnen mohnen@informatik.rwth-aachen.de + * Peter Williams pete.williams@sun.com + * Allan Jacobs Allan.Jacobs@eng.sun.com + * Steve Messick messick@redhills.com + * John Pybus john@pybus.org + * + * Version 1.00 December 9, 1997 -- initial release + * Version 1.01 December 10, 1997 + * fixed bug in octal def (0..7 not 0..8) + * Version 1.10 August 1998 (parrt) + * added tree construction + * fixed definition of WS,comments for mac,pc,unix newlines + * added unary plus + * Version 1.11 (Nov 20, 1998) + * Added "shutup" option to turn off last ambig warning. + * Fixed inner class def to allow named class defs as statements + * synchronized requires compound not simple statement + * add [] after builtInType DOT class in primaryExpression + * "const" is reserved but not valid..removed from modifiers + * Version 1.12 (Feb 2, 1999) + * Changed LITERAL_xxx to xxx in tree grammar. + * Updated java.g to use tokens {...} now for 2.6.0 (new feature). + * + * Version 1.13 (Apr 23, 1999) + * Didn't have (stat)? for else clause in tree parser. + * Didn't gen ASTs for interface extends. Updated tree parser too. + * Updated to 2.6.0. + * Version 1.14 (Jun 20, 1999) + * Allowed final/abstract on local classes. + * Removed local interfaces from methods + * Put instanceof precedence where it belongs...in relationalExpr + * It also had expr not type as arg; fixed it. + * Missing ! on SEMI in classBlock + * fixed: (expr) + "string" was parsed incorrectly (+ as unary plus). + * fixed: didn't like Object[].class in parser or tree parser + * Version 1.15 (Jun 26, 1999) + * Screwed up rule with instanceof in it. :( Fixed. + * Tree parser didn't like (expr).something; fixed. + * Allowed multiple inheritance in tree grammar. oops. + * Version 1.16 (August 22, 1999) + * Extending an interface built a wacky tree: had extra EXTENDS. + * Tree grammar didn't allow multiple superinterfaces. + * Tree grammar didn't allow empty var initializer: {} + * Version 1.17 (October 12, 1999) + * ESC lexer rule allowed 399 max not 377 max. + * java.tree.g didn't handle the expression of synchronized + * statements. + * Version 1.18 (August 12, 2001) + * Terence updated to Java 2 Version 1.3 by + * observing/combining work of Allan Jacobs and Steve + * Messick. Handles 1.3 src. Summary: + * o primary didn't include boolean.class kind of thing + * o constructor calls parsed explicitly now: + * see explicitConstructorInvocation + * o add strictfp modifier + * o missing objBlock after new expression in tree grammar + * o merged local class definition alternatives, moved after declaration + * o fixed problem with ClassName.super.field + * o reordered some alternatives to make things more efficient + * o long and double constants were not differentiated from int/float + * o whitespace rule was inefficient: matched only one char + * o add an examples directory with some nasty 1.3 cases + * o made Main.java use buffered IO and a Reader for Unicode support + * o supports UNICODE? + * Using Unicode charVocabulay makes code file big, but only + * in the bitsets at the end. I need to make ANTLR generate + * unicode bitsets more efficiently. + * Version 1.19 (April 25, 2002) + * Terence added in nice fixes by John Pybus concerning floating + * constants and problems with super() calls. John did a nice + * reorg of the primary/postfix expression stuff to read better + * and makes f.g.super() parse properly (it was METHOD_CALL not + * a SUPER_CTOR_CALL). Also: + * + * o "finally" clause was a root...made it a child of "try" + * o Added stuff for asserts too for Java 1.4, but *commented out* + * as it is not backward compatible. + * + * Version 1.20 (October 27, 2002) + * + * Terence ended up reorging John Pybus' stuff to + * remove some nondeterminisms and some syntactic predicates. + * Note that the grammar is stricter now; e.g., this(...) must + * be the first statement. + * + * Trinary ?: operator wasn't working as array name: + * (isBig ? bigDigits : digits)[i]; + * + * Checked parser/tree parser on source for + * Resin-2.0.5, jive-2.1.1, jdk 1.3.1, Lucene, antlr 2.7.2a4, + * and the 110k-line jGuru server source. + * + * This grammar is in the PUBLIC DOMAIN + *