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
A parser plugin which adapts the JSR Antlr Parser to the Groovy runtime
- Author:
- James Strachan
-
Field Summary
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
addArgumentExpression
(antlr.collections.AST node, List<Expression> expressionList) protected AnnotationNode
annotation
(antlr.collections.AST annotationNode) protected void
annotationDef
(antlr.collections.AST classDef) protected Expression
anonymousInnerClassDef
(antlr.collections.AST node) protected Expression
arguments
(antlr.collections.AST elist) protected List
arraySizeExpression
(antlr.collections.AST node) protected Expression
asExpression
(antlr.collections.AST node) protected void
assertNodeType
(int type, antlr.collections.AST node) protected Statement
assertStatement
(antlr.collections.AST assertNode) protected void
assertTypeNotNull
(ClassNode type, antlr.collections.AST rightNode) protected Expression
binaryExpression
(int type, antlr.collections.AST node) protected Expression
blockExpression
(antlr.collections.AST node) protected BooleanExpression
booleanExpression
(antlr.collections.AST node) protected Statement
breakStatement
(antlr.collections.AST node) buildAST
(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst) protected ClassNode
buildName
(antlr.collections.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 classesprotected Statement
caseStatements
(antlr.collections.AST node, List cases) protected Expression
castExpression
(antlr.collections.AST castNode) protected List<CatchStatement>
catchStatement
(antlr.collections.AST catchNode) protected void
classDef
(antlr.collections.AST classDef) protected ClosureExpression
closureExpression
(antlr.collections.AST node) protected void
configureAST
(ASTNode node, antlr.collections.AST ast) protected Expression
constructorCallExpression
(antlr.collections.AST node) protected void
constructorDef
(antlr.collections.AST constructorDef) protected Statement
continueStatement
(antlr.collections.AST node) protected void
convertGroovy
(antlr.collections.AST node) Converts the Antlr AST to the Groovy ASTprotected ConstantExpression
decimalExpression
(antlr.collections.AST node) protected Expression
declarationExpression
(antlr.collections.AST variableDef) protected Expression
dotExpression
(antlr.collections.AST node) protected void
dump
(antlr.collections.AST node) protected void
dumpTree
(antlr.collections.AST ast) protected Expression
dynamicMemberExpression
(antlr.collections.AST dynamicMemberNode) protected Expression
enumArguments
(antlr.collections.AST elist) protected void
enumConstantDef
(antlr.collections.AST node) protected void
enumDef
(antlr.collections.AST enumNode) protected Expression
expression
(antlr.collections.AST node) protected Expression
expression
(antlr.collections.AST node, boolean convertToConstant) protected Expression
expressionList
(antlr.collections.AST node) protected Expression
expressionSwitch
(antlr.collections.AST node) protected void
fieldDef
(antlr.collections.AST fieldDef) protected Statement
forStatement
(antlr.collections.AST forNode) protected String
getFirstChildText
(antlr.collections.AST node) protected Expression
gstring
(antlr.collections.AST gstringNode) protected boolean
hasVisibility
(int modifiers) Returns true if the modifiers flags contain a visibility modifierprotected String
identifier
(antlr.collections.AST node) Extracts an identifier from the Antlr ASTprotected Statement
ifStatement
(antlr.collections.AST ifNode) protected void
importDef
(antlr.collections.AST importNode) protected Expression
indexExpression
(antlr.collections.AST indexNode) protected void
innerClassDef
(antlr.collections.AST classDef) protected void
innerInterfaceDef
(antlr.collections.AST classDef) protected Expression
instanceofExpression
(antlr.collections.AST node) protected ConstantExpression
integerExpression
(antlr.collections.AST node) protected void
interfaceDef
(antlr.collections.AST classDef) protected ClassNode[]
interfaces
(antlr.collections.AST node) protected boolean
isPrimitiveTypeLiteral
(antlr.collections.AST node) static boolean
isType
(int typeCode, antlr.collections.AST node) protected String
label
(antlr.collections.AST labelNode) protected Statement
labelledStatement
(antlr.collections.AST labelNode) protected Expression
listExpression
(antlr.collections.AST listNode) protected Expression
literalExpression
(antlr.collections.AST node, Object value) protected GenericsType[]
makeGenericsType
(antlr.collections.AST rootNode) protected static Token
makeToken
(int typeCode, antlr.collections.AST node) protected ClassNode
makeType
(antlr.collections.AST typeNode) protected ClassNode
makeTypeWithArguments
(antlr.collections.AST rootNode) protected MapEntryExpression
mapEntryExpression
(antlr.collections.AST node) protected Expression
mapExpression
(antlr.collections.AST mapNode) Typically only used for map constructors I think?protected Statement
methodCall
(antlr.collections.AST code) protected Expression
methodCallExpression
(antlr.collections.AST methodCallNode) protected void
methodDef
(antlr.collections.AST methodDef) protected Expression
methodPointerExpression
(antlr.collections.AST node) protected int
modifiers
(antlr.collections.AST modifierNode, List<AnnotationNode> annotations, int defaultModifiers) protected void
notImplementedYet
(antlr.collections.AST node) protected void
objectBlock
(antlr.collections.AST objectBlock) protected void
objectInit
(antlr.collections.AST init) outputAST
(SourceUnit sourceUnit, SourceBuffer sourceBuffer) protected void
packageDef
(antlr.collections.AST packageDef) protected Parameter
parameter
(antlr.collections.AST paramNode) protected Parameter[]
parameters
(antlr.collections.AST parametersNode) parseCST
(SourceUnit sourceUnit, Reader reader) protected Expression
postfixExpression
(antlr.collections.AST node, int token) protected Expression
prefixExpression
(antlr.collections.AST node, int token) protected void
static String
qualifiedName
(antlr.collections.AST qualifiedNameNode) protected Expression
rangeExpression
(antlr.collections.AST rangeNode, boolean inclusive) protected Statement
returnStatement
(antlr.collections.AST node) protected boolean
setAccessTrue
(antlr.collections.AST node, boolean access) protected int
setModifierBit
(antlr.collections.AST node, int answer, int bit) protected Expression
specialConstructorCallExpression
(antlr.collections.AST methodCallNode, ClassNode special) protected Expression
spreadExpression
(antlr.collections.AST node) protected Expression
spreadMapExpression
(antlr.collections.AST node) protected Statement
statement
(antlr.collections.AST node) protected Statement
statementList
(antlr.collections.AST code) protected Statement
statementListNoChild
(antlr.collections.AST node, antlr.collections.AST alternativeConfigureNode) protected void
staticInit
(antlr.collections.AST staticInit) protected Statement
switchStatement
(antlr.collections.AST switchNode) protected Statement
synchronizedStatement
(antlr.collections.AST syncNode) protected Expression
ternaryExpression
(antlr.collections.AST ternaryNode) protected void
throwsList
(antlr.collections.AST node, List<ClassNode> list) protected Statement
throwStatement
(antlr.collections.AST node) protected void
transformCSTIntoAST
(SourceUnit sourceUnit, Reader reader, SourceBuffer sourceBuffer) protected Statement
tryStatement
(antlr.collections.AST tryStatementNode) protected ClassNode
type
(antlr.collections.AST typeNode) protected Expression
unaryMinusExpression
(antlr.collections.AST unaryMinusExpr) protected Expression
unaryPlusExpression
(antlr.collections.AST unaryPlusExpr) protected void
unknownAST
(antlr.collections.AST node) protected Statement
variableDef
(antlr.collections.AST variableDef) protected Expression
variableExpression
(antlr.collections.AST node) protected Statement
whileStatement
(antlr.collections.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
-
Field Details
-
ast
protected antlr.collections.AST ast
-
-
Constructor Details
-
AntlrParserPlugin
public AntlrParserPlugin()
-
-
Method Details
-
parseCST
- Specified by:
parseCST
in interfaceParserPlugin
- Throws:
CompilationFailedException
-
transformCSTIntoAST
protected void transformCSTIntoAST(SourceUnit sourceUnit, Reader reader, SourceBuffer sourceBuffer) throws CompilationFailedException - Throws:
CompilationFailedException
-
processAST
protected void processAST() -
outputAST
-
buildAST
public ModuleNode buildAST(SourceUnit sourceUnit, ClassLoader classLoader, Reduction cst) throws ParserException - Specified by:
buildAST
in interfaceParserPlugin
- Throws:
ParserException
-
convertGroovy
protected void convertGroovy(antlr.collections.AST node) Converts the Antlr AST to the Groovy AST -
packageDef
protected void packageDef(antlr.collections.AST packageDef) -
importDef
protected void importDef(antlr.collections.AST importNode) -
annotationDef
protected void annotationDef(antlr.collections.AST classDef) -
interfaceDef
protected void interfaceDef(antlr.collections.AST classDef) -
innerInterfaceDef
protected void innerInterfaceDef(antlr.collections.AST classDef) -
classDef
protected void classDef(antlr.collections.AST classDef) -
anonymousInnerClassDef
-
innerClassDef
protected void innerClassDef(antlr.collections.AST classDef) -
objectBlock
protected void objectBlock(antlr.collections.AST objectBlock) -
enumDef
protected void enumDef(antlr.collections.AST enumNode) -
enumConstantDef
protected void enumConstantDef(antlr.collections.AST node) -
throwsList
-
methodDef
protected void methodDef(antlr.collections.AST methodDef) -
staticInit
protected void staticInit(antlr.collections.AST staticInit) -
objectInit
protected void objectInit(antlr.collections.AST init) -
constructorDef
protected void constructorDef(antlr.collections.AST constructorDef) -
fieldDef
protected void fieldDef(antlr.collections.AST fieldDef) -
interfaces
-
parameters
-
parameter
-
modifiers
protected int modifiers(antlr.collections.AST modifierNode, List<AnnotationNode> annotations, int defaultModifiers) -
setAccessTrue
protected boolean setAccessTrue(antlr.collections.AST node, boolean access) -
setModifierBit
protected int setModifierBit(antlr.collections.AST node, int answer, int bit) -
annotation
-
statement
-
statementList
-
statementListNoChild
protected Statement statementListNoChild(antlr.collections.AST node, antlr.collections.AST alternativeConfigureNode) -
assertStatement
-
breakStatement
-
continueStatement
-
forStatement
-
ifStatement
-
labelledStatement
-
methodCall
-
declarationExpression
-
variableDef
-
returnStatement
-
switchStatement
-
caseStatements
-
synchronizedStatement
-
throwStatement
-
tryStatement
-
catchStatement
-
whileStatement
-
expression
-
expression
-
expressionSwitch
-
dynamicMemberExpression
-
ternaryExpression
-
variableExpression
-
literalExpression
-
rangeExpression
-
spreadExpression
-
spreadMapExpression
-
methodPointerExpression
-
listExpression
-
mapExpression
Typically only used for map constructors I think? -
mapEntryExpression
-
instanceofExpression
-
assertTypeNotNull
-
asExpression
-
castExpression
-
indexExpression
-
binaryExpression
-
prefixExpression
-
postfixExpression
-
booleanExpression
-
dotExpression
-
specialConstructorCallExpression
protected Expression specialConstructorCallExpression(antlr.collections.AST methodCallNode, ClassNode special) -
methodCallExpression
-
constructorCallExpression
-
arraySizeExpression
-
enumArguments
-
arguments
-
addArgumentExpression
protected boolean addArgumentExpression(antlr.collections.AST node, List<Expression> expressionList) -
expressionList
-
closureExpression
-
blockExpression
-
unaryMinusExpression
-
unaryPlusExpression
-
decimalExpression
-
integerExpression
-
gstring
-
type
-
qualifiedName
-
makeTypeWithArguments
-
makeGenericsType
-
makeType
-
buildName
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(antlr.collections.AST node) -
identifier
Extracts an identifier from the Antlr AST -
label
-
hasVisibility
protected boolean hasVisibility(int modifiers) Returns true if the modifiers flags contain a visibility modifier -
configureAST
-
makeToken
-
getFirstChildText
-
isType
public static boolean isType(int typeCode, antlr.collections.AST node) -
assertNodeType
protected void assertNodeType(int type, antlr.collections.AST node) -
notImplementedYet
protected void notImplementedYet(antlr.collections.AST node) -
unknownAST
protected void unknownAST(antlr.collections.AST node) -
dumpTree
protected void dumpTree(antlr.collections.AST ast) -
dump
protected void dump(antlr.collections.AST node)
-