JavaRecognizer

processing.mode.java.preproc

## Class JavaRecognizer

- Object
- - LLkParser
  - - JavaRecognizer

- All Implemented Interfaces:
    JavaTokenTypes

      public class JavaRecognizer
      extends LLkParser
      implements JavaTokenTypes

  Java 1.5 Recognizer /** Java 1.5 Recognizer 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 ' 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. Version 1.21 (October 17, 2003) Fixed lots of problems including: Ray Waldin: add typeDefinition to interfaceBlock in java.tree.g He found a problem/fix with floating point that start with 0 Ray also fixed problem that (int.class) was not recognized. Thorsten van Ellen noticed that \n are allowed incorrectly in strings. TJP fixed CHAR_LITERAL analogously. Version 1.21.2 (March, 2003) Changes by Matt Quail to support generics (as per JDK1.5/JSR14) Notes: o We only allow the "extends" keyword and not the "implements" keyword, since thats what JSR14 seems to imply. o Thanks to Monty Zukowski for his help on the antlr-interest mail list. o Thanks to Alan Eliasen for testing the grammar over his Fink source base Version 1.22 (July, 2004) Changes by Michael Studman to support Java 1.5 language extensions Notes: o Added support for annotations types o Finished off Matt Quail's generics enhancements to support bound type arguments o Added support for new for statement syntax o Added support for static import syntax o Added support for enum types o Tested against JDK 1.5 source base and source base of jdigraph project o Thanks to Matt Quail for doing the hard part by doing most of the generics work Version 1.22.1 (July 28, 2004) Bug/omission fixes for Java 1.5 language support o Fixed tree structure bug with classOrInterface - thanks to Pieter Vangorpto for spotting this o Fixed bug where incorrect handling of SR and BSR tokens would cause type parameters to be recognised as type arguments. o Enabled type parameters on constructors, annotations on enum constants and package definitions o Fixed problems when parsing if ((char.class.equals(c))) {} - solution by Matt Quail at Cenqua Version 1.22.2 (July 28, 2004) Slight refactoring of Java 1.5 language support o Refactored for/"foreach" productions so that original literal "for" literal is still used but the for sub-clauses vary by token type o Fixed bug where type parameter was not included in generic constructor's branch of AST Version 1.22.3 (August 26, 2004) Bug fixes as identified by Michael Stahl; clean up of tabs/spaces and other refactorings o Fixed typeParameters omission in identPrimary and newStatement o Replaced GT reconcilliation code with simple semantic predicate o Adapted enum/assert keyword checking support from Michael Stahl's java15 grammar o Refactored typeDefinition production and field productions to reduce duplication Version 1.22.4 (October 21, 2004) Small bux fixes o Added typeArguments to explicitConstructorInvocation, e.g. new MyParameterised() o Added typeArguments to postfixExpression productions for anonymous inner class super constructor invocation, e.g. new Outer().super() o Fixed bug in array declarations identified by Geoff Roy Version 1.22.5 (January 03, 2005) Small change to tree structure o Flattened classOrInterfaceType tree so IDENT no longer has children. TYPE_ARGUMENTS are now always siblings of IDENT rather than children. Fully.qualified.names trees now look a little less clean when TYPE_ARGUMENTS are present though. This grammar is in the PUBLIC DOMAIN

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String[]` | `_tokenNames`
    `static BitSet` | `_tokenSet_0`
    `static BitSet` | `_tokenSet_1`
    `static BitSet` | `_tokenSet_10`
    `static BitSet` | `_tokenSet_11`
    `static BitSet` | `_tokenSet_12`
    `static BitSet` | `_tokenSet_13`
    `static BitSet` | `_tokenSet_14`
    `static BitSet` | `_tokenSet_15`
    `static BitSet` | `_tokenSet_16`
    `static BitSet` | `_tokenSet_17`
    `static BitSet` | `_tokenSet_18`
    `static BitSet` | `_tokenSet_19`
    `static BitSet` | `_tokenSet_2`
    `static BitSet` | `_tokenSet_20`
    `static BitSet` | `_tokenSet_21`
    `static BitSet` | `_tokenSet_22`
    `static BitSet` | `_tokenSet_23`
    `static BitSet` | `_tokenSet_24`
    `static BitSet` | `_tokenSet_25`
    `static BitSet` | `_tokenSet_26`
    `static BitSet` | `_tokenSet_27`
    `static BitSet` | `_tokenSet_28`
    `static BitSet` | `_tokenSet_29`
    `static BitSet` | `_tokenSet_3`
    `static BitSet` | `_tokenSet_30`
    `static BitSet` | `_tokenSet_31`
    `static BitSet` | `_tokenSet_32`
    `static BitSet` | `_tokenSet_33`
    `static BitSet` | `_tokenSet_34`
    `static BitSet` | `_tokenSet_35`
    `static BitSet` | `_tokenSet_36`
    `static BitSet` | `_tokenSet_37`
    `static BitSet` | `_tokenSet_38`
    `static BitSet` | `_tokenSet_39`
    `static BitSet` | `_tokenSet_4`
    `static BitSet` | `_tokenSet_40`
    `static BitSet` | `_tokenSet_41`
    `static BitSet` | `_tokenSet_42`
    `static BitSet` | `_tokenSet_43`
    `static BitSet` | `_tokenSet_44`
    `static BitSet` | `_tokenSet_45`
    `static BitSet` | `_tokenSet_46`
    `static BitSet` | `_tokenSet_47`
    `static BitSet` | `_tokenSet_48`
    `static BitSet` | `_tokenSet_5`
    `static BitSet` | `_tokenSet_6`
    `static BitSet` | `_tokenSet_7`
    `static BitSet` | `_tokenSet_8`
    `static BitSet` | `_tokenSet_9`

    - ### Fields inherited from interface JavaTokenTypes

      `ABSTRACT, ANNOTATION, ANNOTATION_ARRAY_INIT, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ANNOTATION_MEMBER_VALUE_PAIR, ANNOTATIONS, ARRAY_DECLARATOR, ARRAY_INIT, ASSIGN, AT, BAND, BAND_ASSIGN, BLOCK, BNOT, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CASE_GROUP, CHAR_LITERAL, CLASS_DEF, COLON, COMMA, CTOR_CALL, CTOR_DEF, DEC, DIV, DIV_ASSIGN, DOT, ELIST, EMPTY_STAT, ENUM_CONSTANT_DEF, ENUM_DEF, EOF, EQUAL, ESC, EXPONENT, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FOR_CONDITION, FOR_EACH_CLAUSE, FOR_INIT, FOR_ITERATOR, GE, GT, HEX_DIGIT, IDENT, IMPLEMENTS_CLAUSE, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INTERFACE_DEF, LABELED_STAT, LAND, LBRACK, LCURLY, LE, LITERAL_assert, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_continue, LITERAL_default, LITERAL_do, LITERAL_double, LITERAL_else, LITERAL_enum, LITERAL_extends, LITERAL_false, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_long, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_package, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_volatile, LITERAL_while, LNOT, LOR, LPAREN, LT, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, NOT_EQUAL, NULL_TREE_LOOKAHEAD, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RBRACK, RCURLY, RPAREN, SEMI, SL, SL_ASSIGN, SL_COMMENT, SLIST, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STATIC_IMPORT, STATIC_INIT, STRICTFP, STRING_LITERAL, SUPER_CTOR_CALL, TRIPLE_DOT, TYPE, TYPE_ARGUMENT, TYPE_ARGUMENTS, TYPE_LOWER_BOUNDS, TYPE_PARAMETER, TYPE_PARAMETERS, TYPE_UPPER_BOUNDS, TYPECAST, UNARY_MINUS, UNARY_PLUS, VARIABLE_DEF, VARIABLE_PARAMETER_DEF, VOCAB, WILDCARD_TYPE, WS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JavaRecognizer(ParserSharedInputState state)`
    `JavaRecognizer(TokenBuffer tokenBuf)`
    `JavaRecognizer(TokenStream lexer)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `aCase()`
    `void` | `additiveExpression()`
    `void` | `andExpression()`
    `void` | `annotation()`
    `void` | `annotationArguments()`
    `void` | `annotationBlock()`
    `void` | `annotationDefinition(AST modifiers)`
    `void` | `annotationField()`
    `void` | `annotationMemberArrayInitializer()`
    `void` | `annotationMemberArrayValueInitializer()`
    `void` | `annotationMemberValueInitializer()`
    `void` | `annotationMemberValuePair()`
    `void` | `annotations()`
    `void` | `anntotationMemberValuePairs()`
    `void` | `argList()`
    `void` | `arrayInitializer()`
    `void` | `assignmentExpression()`
    `void` | `builtInType()`
    `void` | `builtInTypeArraySpec(boolean addImagNode)`
    `void` | `builtInTypeSpec(boolean addImagNode)`
    `void` | `casesGroup()`
    `void` | `caseSList()`
    `void` | `classBlock()`
    `void` | `classDefinition(AST modifiers)`
    `void` | `classField()`
    `void` | `classOrInterfaceType(boolean addImagNode)`
    `void` | `classTypeSpec(boolean addImagNode)`
    `void` | `compilationUnit()`
    `void` | `compoundStatement()`
    `void` | `conditionalExpression()`
    `void` | `constant()`
    `void` | `constructorBody()`
    `void` | `ctorHead()`
    `void` | `declaration()`
    `void` | `declaratorBrackets(AST typ)`
    `void` | `enumBlock()`
    `void` | `enumConstant()`
    `void` | `enumConstantBlock()`
    `void` | `enumConstantField()`
    `void` | `enumDefinition(AST modifiers)`
    `void` | `equalityExpression()`
    `void` | `exclusiveOrExpression()`
    `void` | `explicitConstructorInvocation()` Catch obvious constructor calls, but not the expr.super(...) calls
    `void` | `expression()`
    `void` | `expressionList()`
    `void` | `finallyClause()`
    `void` | `forCond()`
    `void` | `forEachClause()`
    `void` | `forInit()`
    `void` | `forIter()`
    `void` | `forStatement()`
    `void` | `handler()`
    `void` | `identifier()`
    `void` | `identifierStar()`
    `void` | `identPrimary()` Match a, a.b.c refs, a.b.c(...) refs, a.b.c[], a.b.c[].class, and a.b.c.class refs.
    `void` | `implementsClause()`
    `void` | `importDefinition()`
    `void` | `inclusiveOrExpression()`
    `void` | `initializer()`
    `void` | `interfaceBlock()`
    `void` | `interfaceDefinition(AST modifiers)`
    `void` | `interfaceExtends()`
    `void` | `interfaceField()`
    `void` | `logicalAndExpression()`
    `void` | `logicalOrExpression()`
    `void` | `modifier()`
    `void` | `modifiers()`
    `void` | `multiplicativeExpression()`
    `void` | `newArrayDeclarator()`
    `void` | `newExpression()` object instantiation.
    `void` | `packageDefinition()`
    `void` | `parameterDeclaration()`
    `void` | `parameterDeclarationList()`
    `void` | `parameterModifier()`
    `void` | `postfixExpression()`
    `void` | `primaryExpression()`
    `void` | `relationalExpression()`
    `void` | `shiftExpression()`
    `void` | `statement()`
    `void` | `superClassClause()`
    `void` | `throwsClause()`
    `void` | `traditionalForClause()`
    `void` | `tryBlock()`
    `void` | `type()`
    `void` | `typeArgument()`
    `void` | `typeArgumentBounds()`
    `void` | `typeArguments()`
    `void` | `typeArgumentSpec()`
    `void` | `typeDefinition()`
    `void` | `typeParameter()`
    `void` | `typeParameterBounds()`
    `void` | `typeParameters()`
    `void` | `typeSpec(boolean addImagNode)`
    `void` | `unaryExpression()`
    `void` | `unaryExpressionNotPlusMinus()`
    `void` | `variableDeclarator(AST mods, AST t)` Declaration of a variable.
    `void` | `variableDefinitions(AST mods, AST t)`
    `void` | `variableLengthParameterDeclaration()`
    `void` | `varInitializer()`
    `void` | `wildcardType()`

    - ### Methods inherited from class Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _tokenNames

          public static final String[] _tokenNames

    - #### _tokenSet_0

          public static final BitSet _tokenSet_0

    - #### _tokenSet_1

          public static final BitSet _tokenSet_1

    - #### _tokenSet_2

          public static final BitSet _tokenSet_2

    - #### _tokenSet_3

          public static final BitSet _tokenSet_3

    - #### _tokenSet_4

          public static final BitSet _tokenSet_4

    - #### _tokenSet_5

          public static final BitSet _tokenSet_5

    - #### _tokenSet_6

          public static final BitSet _tokenSet_6

    - #### _tokenSet_7

          public static final BitSet _tokenSet_7

    - #### _tokenSet_8

          public static final BitSet _tokenSet_8

    - #### _tokenSet_9

          public static final BitSet _tokenSet_9

    - #### _tokenSet_10

          public static final BitSet _tokenSet_10

    - #### _tokenSet_11

          public static final BitSet _tokenSet_11

    - #### _tokenSet_12

          public static final BitSet _tokenSet_12

    - #### _tokenSet_13

          public static final BitSet _tokenSet_13

    - #### _tokenSet_14

          public static final BitSet _tokenSet_14

    - #### _tokenSet_15

          public static final BitSet _tokenSet_15

    - #### _tokenSet_16

          public static final BitSet _tokenSet_16

    - #### _tokenSet_17

          public static final BitSet _tokenSet_17

    - #### _tokenSet_18

          public static final BitSet _tokenSet_18

    - #### _tokenSet_19

          public static final BitSet _tokenSet_19

    - #### _tokenSet_20

          public static final BitSet _tokenSet_20

    - #### _tokenSet_21

          public static final BitSet _tokenSet_21

    - #### _tokenSet_22

          public static final BitSet _tokenSet_22

    - #### _tokenSet_23

          public static final BitSet _tokenSet_23

    - #### _tokenSet_24

          public static final BitSet _tokenSet_24

    - #### _tokenSet_25

          public static final BitSet _tokenSet_25

    - #### _tokenSet_26

          public static final BitSet _tokenSet_26

    - #### _tokenSet_27

          public static final BitSet _tokenSet_27

    - #### _tokenSet_28

          public static final BitSet _tokenSet_28

    - #### _tokenSet_29

          public static final BitSet _tokenSet_29

    - #### _tokenSet_30

          public static final BitSet _tokenSet_30

    - #### _tokenSet_31

          public static final BitSet _tokenSet_31

    - #### _tokenSet_32

          public static final BitSet _tokenSet_32

    - #### _tokenSet_33

          public static final BitSet _tokenSet_33

    - #### _tokenSet_34

          public static final BitSet _tokenSet_34

    - #### _tokenSet_35

          public static final BitSet _tokenSet_35

    - #### _tokenSet_36

          public static final BitSet _tokenSet_36

    - #### _tokenSet_37

          public static final BitSet _tokenSet_37

    - #### _tokenSet_38

          public static final BitSet _tokenSet_38

    - #### _tokenSet_39

          public static final BitSet _tokenSet_39

    - #### _tokenSet_40

          public static final BitSet _tokenSet_40

    - #### _tokenSet_41

          public static final BitSet _tokenSet_41

    - #### _tokenSet_42

          public static final BitSet _tokenSet_42

    - #### _tokenSet_43

          public static final BitSet _tokenSet_43

    - #### _tokenSet_44

          public static final BitSet _tokenSet_44

    - #### _tokenSet_45

          public static final BitSet _tokenSet_45

    - #### _tokenSet_46

          public static final BitSet _tokenSet_46

    - #### _tokenSet_47

          public static final BitSet _tokenSet_47

    - #### _tokenSet_48

          public static final BitSet _tokenSet_48

  - ### Constructor Detail

    - #### JavaRecognizer

          public JavaRecognizer(TokenBuffer tokenBuf)

    - #### JavaRecognizer

          public JavaRecognizer(TokenStream lexer)

    - #### JavaRecognizer

          public JavaRecognizer(ParserSharedInputState state)

  - ### Method Detail

    - #### compilationUnit

          public final void compilationUnit()
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotations

          public final void annotations()
                                 throws RecognitionException,
                                        TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### packageDefinition

          public final void packageDefinition()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### importDefinition

          public final void importDefinition()
                                      throws RecognitionException,
                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeDefinition

          public final void typeDefinition()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### identifier

          public final void identifier()
                                throws RecognitionException,
                                       TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### identifierStar

          public final void identifierStar()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### modifiers

          public final void modifiers()
                               throws RecognitionException,
                                      TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### classDefinition

          public final void classDefinition(AST modifiers)
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### interfaceDefinition

          public final void interfaceDefinition(AST modifiers)
                                         throws RecognitionException,
                                                TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### enumDefinition

          public final void enumDefinition(AST modifiers)
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationDefinition

          public final void annotationDefinition(AST modifiers)
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### declaration

          public final void declaration()
                                 throws RecognitionException,
                                        TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeSpec

          public final void typeSpec(boolean addImagNode)
                              throws RecognitionException,
                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### variableDefinitions

          public final void variableDefinitions(AST mods,
                                 AST t)
                                         throws RecognitionException,
                                                TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### classTypeSpec

          public final void classTypeSpec(boolean addImagNode)
                                   throws RecognitionException,
                                          TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### builtInTypeSpec

          public final void builtInTypeSpec(boolean addImagNode)
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### classOrInterfaceType

          public final void classOrInterfaceType(boolean addImagNode)
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeArguments

          public final void typeArguments()
                                   throws RecognitionException,
                                          TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeArgumentSpec

          public final void typeArgumentSpec()
                                      throws RecognitionException,
                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### builtInTypeArraySpec

          public final void builtInTypeArraySpec(boolean addImagNode)
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeArgument

          public final void typeArgument()
                                  throws RecognitionException,
                                         TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### wildcardType

          public final void wildcardType()
                                  throws RecognitionException,
                                         TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeArgumentBounds

          public final void typeArgumentBounds()
                                        throws RecognitionException,
                                               TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### builtInType

          public final void builtInType()
                                 throws RecognitionException,
                                        TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### type

          public final void type()
                          throws RecognitionException,
                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### modifier

          public final void modifier()
                              throws RecognitionException,
                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotation

          public final void annotation()
                                throws RecognitionException,
                                       TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationArguments

          public final void annotationArguments()
                                         throws RecognitionException,
                                                TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationMemberValueInitializer

          public final void annotationMemberValueInitializer()
                                                      throws RecognitionException,
                                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### anntotationMemberValuePairs

          public final void anntotationMemberValuePairs()
                                                 throws RecognitionException,
                                                        TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationMemberValuePair

          public final void annotationMemberValuePair()
                                               throws RecognitionException,
                                                      TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### conditionalExpression

          public final void conditionalExpression()
                                           throws RecognitionException,
                                                  TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationMemberArrayInitializer

          public final void annotationMemberArrayInitializer()
                                                      throws RecognitionException,
                                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationMemberArrayValueInitializer

          public final void annotationMemberArrayValueInitializer()
                                                           throws RecognitionException,
                                                                  TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### superClassClause

          public final void superClassClause()
                                      throws RecognitionException,
                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeParameters

          public final void typeParameters()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### implementsClause

          public final void implementsClause()
                                      throws RecognitionException,
                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### classBlock

          public final void classBlock()
                                throws RecognitionException,
                                       TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### interfaceExtends

          public final void interfaceExtends()
                                      throws RecognitionException,
                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### interfaceBlock

          public final void interfaceBlock()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### enumBlock

          public final void enumBlock()
                               throws RecognitionException,
                                      TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationBlock

          public final void annotationBlock()
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeParameter

          public final void typeParameter()
                                   throws RecognitionException,
                                          TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### typeParameterBounds

          public final void typeParameterBounds()
                                         throws RecognitionException,
                                                TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### classField

          public final void classField()
                                throws RecognitionException,
                                       TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### interfaceField

          public final void interfaceField()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### annotationField

          public final void annotationField()
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### enumConstant

          public final void enumConstant()
                                  throws RecognitionException,
                                         TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### declaratorBrackets

          public final void declaratorBrackets(AST typ)
                                        throws RecognitionException,
                                               TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### argList

          public final void argList()
                             throws RecognitionException,
                                    TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### enumConstantBlock

          public final void enumConstantBlock()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### enumConstantField

          public final void enumConstantField()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### parameterDeclarationList

          public final void parameterDeclarationList()
                                              throws RecognitionException,
                                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### throwsClause

          public final void throwsClause()
                                  throws RecognitionException,
                                         TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### compoundStatement

          public final void compoundStatement()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### ctorHead

          public final void ctorHead()
                              throws RecognitionException,
                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### constructorBody

          public final void constructorBody()
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### explicitConstructorInvocation

          public final void explicitConstructorInvocation()
                                                   throws RecognitionException,
                                                          TokenStreamException

      Catch obvious constructor calls, but not the expr.super(...) calls
      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### statement

          public final void statement()
                               throws RecognitionException,
                                      TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### variableDeclarator

          public final void variableDeclarator(AST mods,
                                AST t)
                                        throws RecognitionException,
                                               TokenStreamException

      Declaration of a variable. This can be a class/instance variable, or a local variable in a method It can also include possible initialization.
      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### varInitializer

          public final void varInitializer()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### initializer

          public final void initializer()
                                 throws RecognitionException,
                                        TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### arrayInitializer

          public final void arrayInitializer()
                                      throws RecognitionException,
                                             TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### expression

          public final void expression()
                                throws RecognitionException,
                                       TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### parameterDeclaration

          public final void parameterDeclaration()
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### variableLengthParameterDeclaration

          public final void variableLengthParameterDeclaration()
                                                        throws RecognitionException,
                                                               TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### parameterModifier

          public final void parameterModifier()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### forStatement

          public final void forStatement()
                                  throws RecognitionException,
                                         TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### casesGroup

          public final void casesGroup()
                                throws RecognitionException,
                                       TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### tryBlock

          public final void tryBlock()
                              throws RecognitionException,
                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### forInit

          public final void forInit()
                             throws RecognitionException,
                                    TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### traditionalForClause

          public final void traditionalForClause()
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### forEachClause

          public final void forEachClause()
                                   throws RecognitionException,
                                          TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### forCond

          public final void forCond()
                             throws RecognitionException,
                                    TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### forIter

          public final void forIter()
                             throws RecognitionException,
                                    TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### aCase

          public final void aCase()
                           throws RecognitionException,
                                  TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### caseSList

          public final void caseSList()
                               throws RecognitionException,
                                      TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### expressionList

          public final void expressionList()
                                    throws RecognitionException,
                                           TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### handler

          public final void handler()
                             throws RecognitionException,
                                    TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### finallyClause

          public final void finallyClause()
                                   throws RecognitionException,
                                          TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### assignmentExpression

          public final void assignmentExpression()
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### logicalOrExpression

          public final void logicalOrExpression()
                                         throws RecognitionException,
                                                TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### logicalAndExpression

          public final void logicalAndExpression()
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### inclusiveOrExpression

          public final void inclusiveOrExpression()
                                           throws RecognitionException,
                                                  TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### exclusiveOrExpression

          public final void exclusiveOrExpression()
                                           throws RecognitionException,
                                                  TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### andExpression

          public final void andExpression()
                                   throws RecognitionException,
                                          TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### equalityExpression

          public final void equalityExpression()
                                        throws RecognitionException,
                                               TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### relationalExpression

          public final void relationalExpression()
                                          throws RecognitionException,
                                                 TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### shiftExpression

          public final void shiftExpression()
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### additiveExpression

          public final void additiveExpression()
                                        throws RecognitionException,
                                               TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### multiplicativeExpression

          public final void multiplicativeExpression()
                                              throws RecognitionException,
                                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### unaryExpression

          public final void unaryExpression()
                                     throws RecognitionException,
                                            TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### unaryExpressionNotPlusMinus

          public final void unaryExpressionNotPlusMinus()
                                                 throws RecognitionException,
                                                        TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### postfixExpression

          public final void postfixExpression()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### primaryExpression

          public final void primaryExpression()
                                       throws RecognitionException,
                                              TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### newExpression

          public final void newExpression()
                                   throws RecognitionException,
                                          TokenStreamException

      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
      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### identPrimary

          public final void identPrimary()
                                  throws RecognitionException,
                                         TokenStreamException

      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.
      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### constant

          public final void constant()
                              throws RecognitionException,
                                     TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`

    - #### newArrayDeclarator

          public final void newArrayDeclarator()
                                        throws RecognitionException,
                                               TokenStreamException

      Throws:
        `RecognitionException`
        `TokenStreamException`