Package org.codehaus.groovy.antlr

## Class AntlrParserPlugin

- java.lang.Object
- - org.codehaus.groovy.syntax.ASTHelper
  - - org.codehaus.groovy.antlr.AntlrParserPlugin

- All Implemented Interfaces:
    `GroovyTokenTypes`, `ParserPlugin`

      public class AntlrParserPlugin
      extends ASTHelper
      implements ParserPlugin, GroovyTokenTypes

  A parser plugin which adapts the JSR Antlr Parser to the Groovy runtime

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected AST` | `ast` |

    - ### Fields inherited from class org.codehaus.groovy.syntax.ASTHelper

      `output, resolutions`

    - ### Fields inherited from interface org.codehaus.groovy.antlr.parser.GroovyTokenTypes

      `ABSTRACT, ANNOTATION, ANNOTATION_ARRAY_INIT, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ANNOTATION_MEMBER_VALUE_PAIR, ANNOTATIONS, ARRAY_DECLARATOR, ASSIGN, AT, BAND, BAND_ASSIGN, BIG_SUFFIX, BLOCK, BNOT, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CASE_GROUP, CLASS_DEF, CLOSABLE_BLOCK, CLOSABLE_BLOCK_OP, CLOSURE_LIST, COLON, COMMA, COMPARE_TO, CTOR_CALL, CTOR_IDENT, DEC, DIGIT, DIGITS_WITH_UNDERSCORE, DIGITS_WITH_UNDERSCORE_OPT, DIV, DIV_ASSIGN, DOLLAR, DOLLAR_REGEXP_CTOR_END, DOLLAR_REGEXP_LITERAL, DOLLAR_REGEXP_SYMBOL, DOT, DYNAMIC_MEMBER, ELIST, ELVIS_OPERATOR, EMPTY_STAT, ENUM_CONSTANT_DEF, ENUM_DEF, EOF, EQUAL, ESC, ESCAPED_DOLLAR, ESCAPED_SLASH, EXPONENT, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FOR_CONDITION, FOR_EACH_CLAUSE, FOR_IN_ITERABLE, FOR_INIT, FOR_ITERATOR, GE, GT, HEX_DIGIT, IDENT, IDENTICAL, IMPLEMENTS_CLAUSE, IMPLICIT_PARAMETERS, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INTERFACE_DEF, LABELED_ARG, LABELED_STAT, LAND, LBRACK, LCURLY, LE, LETTER, LIST_CONSTRUCTOR, LITERAL_as, LITERAL_assert, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_continue, LITERAL_def, LITERAL_default, LITERAL_double, LITERAL_else, LITERAL_enum, LITERAL_extends, LITERAL_false, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_in, 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_trait, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_volatile, LITERAL_while, LNOT, LOR, LPAREN, LT, MAP_CONSTRUCTOR, MEMBER_POINTER, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, MULTICATCH, MULTICATCH_TYPES, NLS, NOT_EQUAL, NOT_IDENTICAL, NULL_TREE_LOOKAHEAD, NUM_BIG_DECIMAL, NUM_BIG_INT, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, ONE_NL, OPTIONAL_DOT, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RANGE_EXCLUSIVE, RANGE_INCLUSIVE, RBRACK, RCURLY, REGEX_FIND, REGEX_MATCH, REGEXP_CTOR_END, REGEXP_LITERAL, REGEXP_SYMBOL, RPAREN, SELECT_SLOT, SEMI, SH_COMMENT, SL, SL_ASSIGN, SL_COMMENT, SLIST, SPREAD_ARG, SPREAD_DOT, SPREAD_MAP_ARG, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STAR_STAR, STAR_STAR_ASSIGN, STATIC_IMPORT, STATIC_INIT, STRICTFP, STRING_CH, STRING_CONSTRUCTOR, STRING_CTOR_END, STRING_CTOR_MIDDLE, STRING_CTOR_START, STRING_LITERAL, STRING_NL, SUPER_CTOR_CALL, TRAIT_DEF, TRIPLE_DOT, TYPE, TYPE_ARGUMENT, TYPE_ARGUMENTS, TYPE_LOWER_BOUNDS, TYPE_PARAMETER, TYPE_PARAMETERS, TYPE_UPPER_BOUNDS, TYPECAST, UNARY_MINUS, UNARY_PLUS, UNUSED_CONST, UNUSED_DO, UNUSED_GOTO, VARIABLE_DEF, VARIABLE_PARAMETER_DEF, VOCAB, WILDCARD_TYPE, WS`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AntlrParserPlugin()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | `addArgumentExpression​(AST node, List<Expression> expressionList)` |
    `protected AnnotationNode` | `annotation​(AST annotationNode)` |
    `protected void` | `annotationDef​(AST classDef)` |
    `protected Expression` | `anonymousInnerClassDef​(AST node)` |
    `protected Expression` | `arguments​(AST elist)` |
    `protected List` | `arraySizeExpression​(AST node)` |
    `protected Expression` | `asExpression​(AST node)` |
    `protected void` | `assertNodeType​(int type, AST node)` |
    `protected Statement` | `assertStatement​(AST assertNode)` |
    `protected void` | `assertTypeNotNull​(ClassNode type, AST rightNode)` |
    `protected Expression` | `binaryExpression​(int type, AST node)` |
    `protected Expression` | `blockExpression​(AST node)` |
    `protected BooleanExpression` | `booleanExpression​(AST node)` |
    `protected Statement` | `breakStatement​(AST node)` |
    `ModuleNode` | `buildAST​(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst)` |
    `protected ClassNode` | `buildName​(AST node)` | Extracts an identifier from the Antlr AST and then performs a name resolution to see if the given name is a type from imports, aliases or newly created classes
    `protected Statement` | `caseStatements​(AST node, List cases)` |
    `protected Expression` | `castExpression​(AST castNode)` |
    `protected List<CatchStatement>` | `catchStatement​(AST catchNode)` |
    `protected void` | `classDef​(AST classDef)` |
    `protected ClosureExpression` | `closureExpression​(AST node)` |
    `protected void` | `configureAST​(ASTNode node, AST ast)` |
    `protected Expression` | `constructorCallExpression​(AST node)` |
    `protected void` | `constructorDef​(AST constructorDef)` |
    `protected Statement` | `continueStatement​(AST node)` |
    `protected void` | `convertGroovy​(AST node)` | Converts the Antlr AST to the Groovy AST
    `protected ConstantExpression` | `decimalExpression​(AST node)` |
    `protected Expression` | `declarationExpression​(AST variableDef)` |
    `protected Expression` | `dotExpression​(AST node)` |
    `protected void` | `dump​(AST node)` |
    `protected void` | `dumpTree​(AST ast)` |
    `protected Expression` | `dynamicMemberExpression​(AST dynamicMemberNode)` |
    `protected Expression` | `enumArguments​(AST elist)` |
    `protected void` | `enumConstantDef​(AST node)` |
    `protected void` | `enumDef​(AST enumNode)` |
    `protected Expression` | `expression​(AST node)` |
    `protected Expression` | `expression​(AST node, boolean convertToConstant)` |
    `protected Expression` | `expressionList​(AST node)` |
    `protected Expression` | `expressionSwitch​(AST node)` |
    `protected void` | `fieldDef​(AST fieldDef)` |
    `protected Statement` | `forStatement​(AST forNode)` |
    `static Expression` | `getDefaultValueForPrimitive​(ClassNode type)` |
    `protected String` | `getFirstChildText​(AST node)` |
    `protected Expression` | `gstring​(AST gstringNode)` |
    `protected boolean` | `hasVisibility​(int modifiers)` | Returns true if the modifiers flags contain a visibility modifier
    `protected String` | `identifier​(AST node)` | Extracts an identifier from the Antlr AST
    `protected Statement` | `ifStatement​(AST ifNode)` |
    `protected void` | `importDef​(AST importNode)` |
    `protected Expression` | `indexExpression​(AST indexNode)` |
    `protected void` | `innerClassDef​(AST classDef)` |
    `protected void` | `innerInterfaceDef​(AST classDef)` |
    `protected Expression` | `instanceofExpression​(AST node)` |
    `protected ConstantExpression` | `integerExpression​(AST node)` |
    `protected void` | `interfaceDef​(AST classDef)` |
    `protected ClassNode[]` | `interfaces​(AST node)` |
    `protected boolean` | `isPrimitiveTypeLiteral​(AST node)` |
    `static boolean` | `isType​(int typeCode, AST node)` |
    `protected String` | `label​(AST labelNode)` |
    `protected Statement` | `labelledStatement​(AST labelNode)` |
    `protected Expression` | `listExpression​(AST listNode)` |
    `protected Expression` | `literalExpression​(AST node, Object value)` |
    `protected GenericsType[]` | `makeGenericsType​(AST rootNode)` |
    `protected static Token` | `makeToken​(int typeCode, AST node)` |
    `protected ClassNode` | `makeType​(AST typeNode)` |
    `protected ClassNode` | `makeTypeWithArguments​(AST rootNode)` |
    `protected MapEntryExpression` | `mapEntryExpression​(AST node)` |
    `protected Expression` | `mapExpression​(AST mapNode)` | Typically only used for map constructors I think?
    `protected Statement` | `methodCall​(AST code)` |
    `protected Expression` | `methodCallExpression​(AST methodCallNode)` |
    `protected void` | `methodDef​(AST methodDef)` |
    `protected Expression` | `methodPointerExpression​(AST node)` |
    `protected int` | `modifiers​(AST modifierNode, List<AnnotationNode> annotations, int defaultModifiers)` |
    `protected void` | `notImplementedYet​(AST node)` |
    `protected void` | `objectBlock​(AST objectBlock)` |
    `protected void` | `objectInit​(AST init)` |
    `Reduction` | `outputAST​(SourceUnit sourceUnit, SourceBuffer sourceBuffer)` |
    `protected void` | `packageDef​(AST packageDef)` |
    `protected Parameter` | `parameter​(AST paramNode)` |
    `protected Parameter[]` | `parameters​(AST parametersNode)` |
    `Reduction` | `parseCST​(SourceUnit sourceUnit, Reader reader)` |
    `protected Expression` | `postfixExpression​(AST node, int token)` |
    `protected Expression` | `prefixExpression​(AST node, int token)` |
    `protected void` | `processAST()` |
    `static String` | `qualifiedName​(AST qualifiedNameNode)` |
    `protected Expression` | `rangeExpression​(AST rangeNode, boolean inclusive)` |
    `protected Statement` | `returnStatement​(AST node)` |
    `protected boolean` | `setAccessTrue​(AST node, boolean access)` |
    `protected int` | `setModifierBit​(AST node, int answer, int bit)` |
    `protected Expression` | `specialConstructorCallExpression​(AST methodCallNode, ClassNode special)` |
    `protected Expression` | `spreadExpression​(AST node)` |
    `protected Expression` | `spreadMapExpression​(AST node)` |
    `protected Statement` | `statement​(AST node)` |
    `protected Statement` | `statementList​(AST code)` |
    `protected Statement` | `statementListNoChild​(AST node, AST alternativeConfigureNode)` |
    `protected void` | `staticInit​(AST staticInit)` |
    `protected Statement` | `switchStatement​(AST switchNode)` |
    `protected Statement` | `synchronizedStatement​(AST syncNode)` |
    `protected Expression` | `ternaryExpression​(AST ternaryNode)` |
    `protected void` | `throwsList​(AST node, List<ClassNode> list)` |
    `protected Statement` | `throwStatement​(AST node)` |
    `protected void` | `transformCSTIntoAST​(SourceUnit sourceUnit, Reader reader, SourceBuffer sourceBuffer)` |
    `protected Statement` | `tryStatement​(AST tryStatementNode)` |
    `protected ClassNode` | `type​(AST typeNode)` |
    `protected Expression` | `unaryMinusExpression​(AST unaryMinusExpr)` |
    `protected Expression` | `unaryPlusExpression​(AST unaryPlusExpr)` |
    `protected void` | `unknownAST​(AST node)` |
    `protected Statement` | `variableDef​(AST variableDef)` |
    `protected Expression` | `variableExpression​(AST node)` |
    `protected Statement` | `whileStatement​(AST whileNode)` |

    - ### Methods inherited from class org.codehaus.groovy.syntax.ASTHelper

      `addImport, addImport, addStarImport, addStarImport, addStaticImport, addStaticImport, addStaticStarImport, addStaticStarImport, dot, dot, getClassLoader, getController, getPackageName, makeModule, setClassLoader, setController, setPackage, setPackageName`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### ast

          protected AST ast

  - ### Constructor Detail

    - #### AntlrParserPlugin

          public AntlrParserPlugin()

  - ### Method Detail

    - #### parseCST

          public Reduction parseCST​(SourceUnit sourceUnit,
                                    Reader reader)
                             throws CompilationFailedException

      Specified by:
        `parseCST` in interface `ParserPlugin`
      Throws:
        `CompilationFailedException`

    - #### transformCSTIntoAST

          protected void transformCSTIntoAST​(SourceUnit sourceUnit,
                                             Reader reader,
                                             SourceBuffer sourceBuffer)
                                      throws CompilationFailedException

      Throws:
        `CompilationFailedException`

    - #### processAST

          protected void processAST()

    - #### outputAST

          public Reduction outputAST​(SourceUnit sourceUnit,
                                     SourceBuffer sourceBuffer)

    - #### buildAST

          public ModuleNode buildAST​(SourceUnit sourceUnit,
                                     ClassLoader classLoader,
                                     Reduction cst)
                              throws ParserException

      Specified by:
        `buildAST` in interface `ParserPlugin`
      Throws:
        `ParserException`

    - #### convertGroovy

          protected void convertGroovy​(AST node)

      Converts the Antlr AST to the Groovy AST

    - #### packageDef

          protected void packageDef​(AST packageDef)

    - #### importDef

          protected void importDef​(AST importNode)

    - #### annotationDef

          protected void annotationDef​(AST classDef)

    - #### interfaceDef

          protected void interfaceDef​(AST classDef)

    - #### innerInterfaceDef

          protected void innerInterfaceDef​(AST classDef)

    - #### classDef

          protected void classDef​(AST classDef)

    - #### anonymousInnerClassDef

          protected Expression anonymousInnerClassDef​(AST node)

    - #### innerClassDef

          protected void innerClassDef​(AST classDef)

    - #### objectBlock

          protected void objectBlock​(AST objectBlock)

    - #### enumDef

          protected void enumDef​(AST enumNode)

    - #### enumConstantDef

          protected void enumConstantDef​(AST node)

    - #### throwsList

          protected void throwsList​(AST node,
                                    List<ClassNode> list)

    - #### methodDef

          protected void methodDef​(AST methodDef)

    - #### staticInit

          protected void staticInit​(AST staticInit)

    - #### objectInit

          protected void objectInit​(AST init)

    - #### constructorDef

          protected void constructorDef​(AST constructorDef)

    - #### fieldDef

          protected void fieldDef​(AST fieldDef)

    - #### getDefaultValueForPrimitive

          public static Expression getDefaultValueForPrimitive​(ClassNode type)

    - #### interfaces

          protected ClassNode[] interfaces​(AST node)

    - #### parameters

          protected Parameter[] parameters​(AST parametersNode)

    - #### parameter

          protected Parameter parameter​(AST paramNode)

    - #### modifiers

          protected int modifiers​(AST modifierNode,
                                  List<AnnotationNode> annotations,
                                  int defaultModifiers)

    - #### setAccessTrue

          protected boolean setAccessTrue​(AST node,
                                          boolean access)

    - #### setModifierBit

          protected int setModifierBit​(AST node,
                                       int answer,
                                       int bit)

    - #### annotation

          protected AnnotationNode annotation​(AST annotationNode)

    - #### statement

          protected Statement statement​(AST node)

    - #### statementList

          protected Statement statementList​(AST code)

    - #### statementListNoChild

          protected Statement statementListNoChild​(AST node,
                                                   AST alternativeConfigureNode)

    - #### assertStatement

          protected Statement assertStatement​(AST assertNode)

    - #### breakStatement

          protected Statement breakStatement​(AST node)

    - #### continueStatement

          protected Statement continueStatement​(AST node)

    - #### forStatement

          protected Statement forStatement​(AST forNode)

    - #### ifStatement

          protected Statement ifStatement​(AST ifNode)

    - #### labelledStatement

          protected Statement labelledStatement​(AST labelNode)

    - #### methodCall

          protected Statement methodCall​(AST code)

    - #### declarationExpression

          protected Expression declarationExpression​(AST variableDef)

    - #### variableDef

          protected Statement variableDef​(AST variableDef)

    - #### returnStatement

          protected Statement returnStatement​(AST node)

    - #### switchStatement

          protected Statement switchStatement​(AST switchNode)

    - #### caseStatements

          protected Statement caseStatements​(AST node,
                                             List cases)

    - #### synchronizedStatement

          protected Statement synchronizedStatement​(AST syncNode)

    - #### throwStatement

          protected Statement throwStatement​(AST node)

    - #### tryStatement

          protected Statement tryStatement​(AST tryStatementNode)

    - #### catchStatement

          protected List<CatchStatement> catchStatement​(AST catchNode)

    - #### whileStatement

          protected Statement whileStatement​(AST whileNode)

    - #### expression

          protected Expression expression​(AST node)

    - #### expression

          protected Expression expression​(AST node,
                                          boolean convertToConstant)

    - #### expressionSwitch

          protected Expression expressionSwitch​(AST node)

    - #### dynamicMemberExpression

          protected Expression dynamicMemberExpression​(AST dynamicMemberNode)

    - #### ternaryExpression

          protected Expression ternaryExpression​(AST ternaryNode)

    - #### variableExpression

          protected Expression variableExpression​(AST node)

    - #### literalExpression

          protected Expression literalExpression​(AST node,
                                                 Object value)

    - #### rangeExpression

          protected Expression rangeExpression​(AST rangeNode,
                                               boolean inclusive)

    - #### spreadExpression

          protected Expression spreadExpression​(AST node)

    - #### spreadMapExpression

          protected Expression spreadMapExpression​(AST node)

    - #### methodPointerExpression

          protected Expression methodPointerExpression​(AST node)

    - #### listExpression

          protected Expression listExpression​(AST listNode)

    - #### mapExpression

          protected Expression mapExpression​(AST mapNode)

      Typically only used for map constructors I think?

    - #### mapEntryExpression

          protected MapEntryExpression mapEntryExpression​(AST node)

    - #### instanceofExpression

          protected Expression instanceofExpression​(AST node)

    - #### assertTypeNotNull

          protected void assertTypeNotNull​(ClassNode type,
                                           AST rightNode)

    - #### asExpression

          protected Expression asExpression​(AST node)

    - #### castExpression

          protected Expression castExpression​(AST castNode)

    - #### indexExpression

          protected Expression indexExpression​(AST indexNode)

    - #### binaryExpression

          protected Expression binaryExpression​(int type,
                                                AST node)

    - #### prefixExpression

          protected Expression prefixExpression​(AST node,
                                                int token)

    - #### postfixExpression

          protected Expression postfixExpression​(AST node,
                                                 int token)

    - #### booleanExpression

          protected BooleanExpression booleanExpression​(AST node)

    - #### dotExpression

          protected Expression dotExpression​(AST node)

    - #### specialConstructorCallExpression

          protected Expression specialConstructorCallExpression​(AST methodCallNode,
                                                                ClassNode special)

    - #### methodCallExpression

          protected Expression methodCallExpression​(AST methodCallNode)

    - #### constructorCallExpression

          protected Expression constructorCallExpression​(AST node)

    - #### arraySizeExpression

          protected List arraySizeExpression​(AST node)

    - #### enumArguments

          protected Expression enumArguments​(AST elist)

    - #### arguments

          protected Expression arguments​(AST elist)

    - #### addArgumentExpression

          protected boolean addArgumentExpression​(AST node,
                                                  List<Expression> expressionList)

    - #### expressionList

          protected Expression expressionList​(AST node)

    - #### closureExpression

          protected ClosureExpression closureExpression​(AST node)

    - #### blockExpression

          protected Expression blockExpression​(AST node)

    - #### unaryMinusExpression

          protected Expression unaryMinusExpression​(AST unaryMinusExpr)

    - #### unaryPlusExpression

          protected Expression unaryPlusExpression​(AST unaryPlusExpr)

    - #### decimalExpression

          protected ConstantExpression decimalExpression​(AST node)

    - #### integerExpression

          protected ConstantExpression integerExpression​(AST node)

    - #### gstring

          protected Expression gstring​(AST gstringNode)

    - #### type

          protected ClassNode type​(AST typeNode)

    - #### qualifiedName

          public static String qualifiedName​(AST qualifiedNameNode)

    - #### makeTypeWithArguments

          protected ClassNode makeTypeWithArguments​(AST rootNode)

    - #### makeGenericsType

          protected GenericsType[] makeGenericsType​(AST rootNode)

    - #### makeType

          protected ClassNode makeType​(AST typeNode)

    - #### buildName

          protected ClassNode buildName​(AST node)

      Extracts an identifier from the Antlr AST and then performs a name resolution to see if the given name is a type from imports, aliases or newly created classes

    - #### isPrimitiveTypeLiteral

          protected boolean isPrimitiveTypeLiteral​(AST node)

    - #### identifier

          protected String identifier​(AST node)

      Extracts an identifier from the Antlr AST

    - #### label

          protected String label​(AST labelNode)

    - #### hasVisibility

          protected boolean hasVisibility​(int modifiers)

      Returns true if the modifiers flags contain a visibility modifier

    - #### configureAST

          protected void configureAST​(ASTNode node,
                                      AST ast)

    - #### makeToken

          protected static Token makeToken​(int typeCode,
                                           AST node)

    - #### getFirstChildText

          protected String getFirstChildText​(AST node)

    - #### isType

          public static boolean isType​(int typeCode,
                                       AST node)

    - #### assertNodeType

          protected void assertNodeType​(int type,
                                        AST node)

    - #### notImplementedYet

          protected void notImplementedYet​(AST node)

    - #### unknownAST

          protected void unknownAST​(AST node)

    - #### dumpTree

          protected void dumpTree​(AST ast)

    - #### dump

          protected void dump​(AST node)