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
Author:
James Strachan
  • Field Details

    • ast

      protected antlr.collections.AST ast
  • Constructor Details

    • AntlrParserPlugin

      public AntlrParserPlugin()
  • Method Details

    • 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(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

      protected Expression anonymousInnerClassDef(antlr.collections.AST node)
    • 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

      protected void throwsList(antlr.collections.AST node, List<ClassNode> list)
    • 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

      protected ClassNode[] interfaces(antlr.collections.AST node)
    • parameters

      protected Parameter[] parameters(antlr.collections.AST parametersNode)
    • parameter

      protected Parameter parameter(antlr.collections.AST paramNode)
    • 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

      protected AnnotationNode annotation(antlr.collections.AST annotationNode)
    • statement

      protected Statement statement(antlr.collections.AST node)
    • statementList

      protected Statement statementList(antlr.collections.AST code)
    • statementListNoChild

      protected Statement statementListNoChild(antlr.collections.AST node, antlr.collections.AST alternativeConfigureNode)
    • assertStatement

      protected Statement assertStatement(antlr.collections.AST assertNode)
    • breakStatement

      protected Statement breakStatement(antlr.collections.AST node)
    • continueStatement

      protected Statement continueStatement(antlr.collections.AST node)
    • forStatement

      protected Statement forStatement(antlr.collections.AST forNode)
    • ifStatement

      protected Statement ifStatement(antlr.collections.AST ifNode)
    • labelledStatement

      protected Statement labelledStatement(antlr.collections.AST labelNode)
    • methodCall

      protected Statement methodCall(antlr.collections.AST code)
    • declarationExpression

      protected Expression declarationExpression(antlr.collections.AST variableDef)
    • variableDef

      protected Statement variableDef(antlr.collections.AST variableDef)
    • returnStatement

      protected Statement returnStatement(antlr.collections.AST node)
    • switchStatement

      protected Statement switchStatement(antlr.collections.AST switchNode)
    • caseStatements

      protected Statement caseStatements(antlr.collections.AST node, List cases)
    • synchronizedStatement

      protected Statement synchronizedStatement(antlr.collections.AST syncNode)
    • throwStatement

      protected Statement throwStatement(antlr.collections.AST node)
    • tryStatement

      protected Statement tryStatement(antlr.collections.AST tryStatementNode)
    • catchStatement

      protected List<CatchStatement> catchStatement(antlr.collections.AST catchNode)
    • whileStatement

      protected Statement whileStatement(antlr.collections.AST whileNode)
    • expression

      protected Expression expression(antlr.collections.AST node)
    • expression

      protected Expression expression(antlr.collections.AST node, boolean convertToConstant)
    • expressionSwitch

      protected Expression expressionSwitch(antlr.collections.AST node)
    • dynamicMemberExpression

      protected Expression dynamicMemberExpression(antlr.collections.AST dynamicMemberNode)
    • ternaryExpression

      protected Expression ternaryExpression(antlr.collections.AST ternaryNode)
    • variableExpression

      protected Expression variableExpression(antlr.collections.AST node)
    • literalExpression

      protected Expression literalExpression(antlr.collections.AST node, Object value)
    • rangeExpression

      protected Expression rangeExpression(antlr.collections.AST rangeNode, boolean inclusive)
    • spreadExpression

      protected Expression spreadExpression(antlr.collections.AST node)
    • spreadMapExpression

      protected Expression spreadMapExpression(antlr.collections.AST node)
    • methodPointerExpression

      protected Expression methodPointerExpression(antlr.collections.AST node)
    • listExpression

      protected Expression listExpression(antlr.collections.AST listNode)
    • mapExpression

      protected Expression mapExpression(antlr.collections.AST mapNode)
      Typically only used for map constructors I think?
    • mapEntryExpression

      protected MapEntryExpression mapEntryExpression(antlr.collections.AST node)
    • instanceofExpression

      protected Expression instanceofExpression(antlr.collections.AST node)
    • assertTypeNotNull

      protected void assertTypeNotNull(ClassNode type, antlr.collections.AST rightNode)
    • asExpression

      protected Expression asExpression(antlr.collections.AST node)
    • castExpression

      protected Expression castExpression(antlr.collections.AST castNode)
    • indexExpression

      protected Expression indexExpression(antlr.collections.AST indexNode)
    • binaryExpression

      protected Expression binaryExpression(int type, antlr.collections.AST node)
    • prefixExpression

      protected Expression prefixExpression(antlr.collections.AST node, int token)
    • postfixExpression

      protected Expression postfixExpression(antlr.collections.AST node, int token)
    • booleanExpression

      protected BooleanExpression booleanExpression(antlr.collections.AST node)
    • dotExpression

      protected Expression dotExpression(antlr.collections.AST node)
    • specialConstructorCallExpression

      protected Expression specialConstructorCallExpression(antlr.collections.AST methodCallNode, ClassNode special)
    • methodCallExpression

      protected Expression methodCallExpression(antlr.collections.AST methodCallNode)
    • constructorCallExpression

      protected Expression constructorCallExpression(antlr.collections.AST node)
    • arraySizeExpression

      protected List arraySizeExpression(antlr.collections.AST node)
    • enumArguments

      protected Expression enumArguments(antlr.collections.AST elist)
    • arguments

      protected Expression arguments(antlr.collections.AST elist)
    • addArgumentExpression

      protected boolean addArgumentExpression(antlr.collections.AST node, List<Expression> expressionList)
    • expressionList

      protected Expression expressionList(antlr.collections.AST node)
    • closureExpression

      protected ClosureExpression closureExpression(antlr.collections.AST node)
    • blockExpression

      protected Expression blockExpression(antlr.collections.AST node)
    • unaryMinusExpression

      protected Expression unaryMinusExpression(antlr.collections.AST unaryMinusExpr)
    • unaryPlusExpression

      protected Expression unaryPlusExpression(antlr.collections.AST unaryPlusExpr)
    • decimalExpression

      protected ConstantExpression decimalExpression(antlr.collections.AST node)
    • integerExpression

      protected ConstantExpression integerExpression(antlr.collections.AST node)
    • gstring

      protected Expression gstring(antlr.collections.AST gstringNode)
    • type

      protected ClassNode type(antlr.collections.AST typeNode)
    • qualifiedName

      public static String qualifiedName(antlr.collections.AST qualifiedNameNode)
    • makeTypeWithArguments

      protected ClassNode makeTypeWithArguments(antlr.collections.AST rootNode)
    • makeGenericsType

      protected GenericsType[] makeGenericsType(antlr.collections.AST rootNode)
    • makeType

      protected ClassNode makeType(antlr.collections.AST typeNode)
    • buildName

      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 classes
    • isPrimitiveTypeLiteral

      protected boolean isPrimitiveTypeLiteral(antlr.collections.AST node)
    • identifier

      protected String identifier(antlr.collections.AST node)
      Extracts an identifier from the Antlr AST
    • label

      protected String label(antlr.collections.AST labelNode)
    • hasVisibility

      protected boolean hasVisibility(int modifiers)
      Returns true if the modifiers flags contain a visibility modifier
    • configureAST

      protected void configureAST(ASTNode node, antlr.collections.AST ast)
    • makeToken

      protected static Token makeToken(int typeCode, antlr.collections.AST node)
    • getFirstChildText

      protected String getFirstChildText(antlr.collections.AST node)
    • 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)