Package: org.apache.groovy.parser.antlr4

## [Java] Class AstBuilder

- org.apache.groovy.parser.antlr4.AstBuilder

-     public class AstBuilder
      extends GroovyParserBaseVisitor

  Builds the AST from the parse tree generated by Antlr4.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `AstBuilder (SourceUnit sourceUnit, boolean groovydocEnabled, boolean runtimeGroovydocEnabled)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public BlockStatement` | `appendStatementsToBlockStatement(BlockStatement bs, Statement statements)`
    `` | `public ModuleNode` | `buildAST()`
    `` | `public void` | `syntaxError(Recognizer recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e)`
    `` | `public Object` | `visit(ParseTree tree)` Visit tree safely, no NPE occurred when the tree is null.
    `` | `public BinaryExpression` | `visitAdditiveExprAlt(AdditiveExprAltContext ctx)`
    `` | `public BinaryExpression` | `visitAndExprAlt(AndExprAltContext ctx)`
    `` | `public ClassNode` | `visitAnnotatedQualifiedClassName(AnnotatedQualifiedClassNameContext ctx)`
    `` | `public AnnotationNode` | `visitAnnotation(AnnotationContext ctx)`
    `` | `public String` | `visitAnnotationName(AnnotationNameContext ctx)`
    `` | `public List<AnnotationNode>` | `visitAnnotationsOpt(AnnotationsOptContext ctx)`
    `` | `public InnerClassNode` | `visitAnonymousInnerClassDeclaration(AnonymousInnerClassDeclarationContext ctx)`
    `` | `public Expression` | `visitArguments(ArgumentsContext ctx)`
    `` | `public List<Expression>` | `visitArrayInitializer(ArrayInitializerContext ctx)`
    `` | `public AssertStatement` | `visitAssertStatement(AssertStatementContext ctx)`
    `` | `public BinaryExpression` | `visitAssignmentExprAlt(AssignmentExprAltContext ctx)`
    `` | `public Statement` | `visitBlock(BlockContext ctx)`
    `` | `public Statement` | `visitBlockStatement(BlockStatementContext ctx)`
    `` | `public BlockStatement` | `visitBlockStatements(BlockStatementsContext ctx)`
    `` | `public BlockStatement` | `visitBlockStatementsOpt(BlockStatementsOptContext ctx)`
    `` | `public ConstantExpression` | `visitBooleanLiteralAlt(BooleanLiteralAltContext ctx)`
    `` | `public BreakStatement` | `visitBreakStatement(BreakStatementContext ctx)`
    `` | `public VariableExpression` | `visitBuiltInType(BuiltInTypeContext ctx)`
    `` | `public CastExpression` | `visitCastExprAlt(CastExprAltContext ctx)`
    `` | `public ClassNode` | `visitCastParExpression(CastParExpressionContext ctx)`
    `` | `public List<CatchStatement>` | `visitCatchClause(CatchClauseContext ctx)` Multi-catch(1..*) clause will be unpacked to several normal catch clauses, so the return type is List
    `` | `public List<ClassNode>` | `visitCatchType(CatchTypeContext ctx)`
    `` | `public Void` | `visitClassBody(ClassBodyContext ctx)`
    `` | `public Void` | `visitClassBodyDeclaration(ClassBodyDeclarationContext ctx)`
    `` | `public ClassNode` | `visitClassDeclaration(ClassDeclarationContext ctx)`
    `` | `public String` | `visitClassName(ClassNameContext ctx)`
    `` | `public ModifierNode` | `visitClassOrInterfaceModifier(ClassOrInterfaceModifierContext ctx)`
    `` | `public List<ModifierNode>` | `visitClassOrInterfaceModifiers(ClassOrInterfaceModifiersContext ctx)`
    `` | `public List<ModifierNode>` | `visitClassOrInterfaceModifiersOpt(ClassOrInterfaceModifiersOptContext ctx)`
    `` | `public ClassNode` | `visitClassOrInterfaceType(ClassOrInterfaceTypeContext ctx)`
    `` | `public Tuple2<Parameter, Expression>` | `visitClassicalForControl(ClassicalForControlContext ctx)`
    `` | `public ClosureExpression` | `visitClosure(ClosureContext ctx)`
    `` | `public ClosureExpression` | `visitClosureOrLambdaExpression(ClosureOrLambdaExpressionContext ctx)`
    `` | `public Expression` | `visitCommandArgument(CommandArgumentContext ctx)`
    `` | `public ExpressionStatement` | `visitCommandExprAlt(CommandExprAltContext ctx)`
    `` | `public Expression` | `visitCommandExpression(CommandExpressionContext ctx)`
    `` | `public ModuleNode` | `visitCompilationUnit(CompilationUnitContext ctx)`
    `` | `public Expression` | `visitConditionalExprAlt(ConditionalExprAltContext ctx)`
    `` | `public Statement` | `visitConditionalStatement(ConditionalStatementContext ctx)`
    `` | `public ContinueStatement` | `visitContinueStatement(ContinueStatementContext ctx)`
    `` | `public ClassNode` | `visitCreatedName(CreatedNameContext ctx)`
    `` | `public Expression` | `visitCreator(CreatorContext ctx)`
    `` | `public Tuple3<Expression, List<AnnotationNode>, TerminalNode>` | `visitDim(DimContext ctx)`
    `` | `public DoWhileStatement` | `visitDoWhileStmtAlt(DoWhileStmtAltContext ctx)`
    `` | `public Expression` | `visitDynamicMemberName(DynamicMemberNameContext ctx)`
    `` | `public Expression` | `visitElementValue(ElementValueContext ctx)`
    `` | `public ListExpression` | `visitElementValueArrayInitializer(ElementValueArrayInitializerContext ctx)`
    `` | `public Tuple2<String, Expression>` | `visitElementValuePair(ElementValuePairContext ctx)`
    `` | `public Map<String, Expression>` | `visitElementValuePairs(ElementValuePairsContext ctx)`
    `` | `public List<Tuple2<String, Expression>>` | `visitElementValues(ElementValuesContext ctx)`
    `` | `public List<List<AnnotationNode>>` | `visitEmptyDims(EmptyDimsContext ctx)`
    `` | `public List<List<AnnotationNode>>` | `visitEmptyDimsOpt(EmptyDimsOptContext ctx)`
    `` | `public Expression` | `visitEnhancedArgumentListElement(EnhancedArgumentListElementContext ctx)`
    `` | `public Expression` | `visitEnhancedArgumentListInPar(EnhancedArgumentListInParContext ctx)`
    `` | `public Tuple2<Parameter, Expression>` | `visitEnhancedForControl(EnhancedForControlContext ctx)`
    `` | `public Expression` | `visitEnhancedStatementExpression(EnhancedStatementExpressionContext ctx)`
    `` | `public FieldNode` | `visitEnumConstant(EnumConstantContext ctx)`
    `` | `public List<FieldNode>` | `visitEnumConstants(EnumConstantsContext ctx)`
    `` | `public BinaryExpression` | `visitEqualityExprAlt(EqualityExprAltContext ctx)`
    `` | `public BinaryExpression` | `visitExclusiveOrExprAlt(ExclusiveOrExprAltContext ctx)`
    `` | `public Expression` | `visitExpressionInPar(ExpressionInParContext ctx)`
    `` | `public List<Expression>` | `visitExpressionList(ExpressionListContext ctx)`
    `` | `public Expression` | `visitExpressionListElement(ExpressionListElementContext ctx)`
    `` | `public Void` | `visitFieldDeclaration(FieldDeclarationContext ctx)`
    `` | `public Statement` | `visitFinallyBlock(FinallyBlockContext ctx)`
    `` | `public ConstantExpression` | `visitFloatingPointLiteralAlt(FloatingPointLiteralAltContext ctx)`
    `` | `public Tuple2<Parameter, Expression>` | `visitForControl(ForControlContext ctx)`
    `` | `public Expression` | `visitForInit(ForInitContext ctx)`
    `` | `public ForStatement` | `visitForStmtAlt(ForStmtAltContext ctx)`
    `` | `public Expression` | `visitForUpdate(ForUpdateContext ctx)`
    `` | `public Parameter` | `visitFormalParameter(FormalParameterContext ctx)`
    `` | `public Parameter[]` | `visitFormalParameterList(FormalParameterListContext ctx)`
    `` | `public Parameter[]` | `visitFormalParameters(FormalParametersContext ctx)`
    `` | `public GStringExpression` | `visitGstring(GstringContext ctx)`
    `` | `public Expression` | `visitGstringPath(GstringPathContext ctx)`
    `` | `public Expression` | `visitGstringValue(GstringValueContext ctx)`
    `` | `public String` | `visitIdentifier(IdentifierContext ctx)`
    `` | `public Expression` | `visitIdentifierPrmrAlt(IdentifierPrmrAltContext ctx)`
    `` | `public IfStatement` | `visitIfElseStatement(IfElseStatementContext ctx)`
    `` | `public ImportNode` | `visitImportDeclaration(ImportDeclarationContext ctx)`
    `` | `public BinaryExpression` | `visitInclusiveOrExprAlt(InclusiveOrExprAltContext ctx)`
    `` | `public Tuple2<Token, Expression>` | `visitIndexPropertyArgs(IndexPropertyArgsContext ctx)`
    `` | `public ConstantExpression` | `visitIntegerLiteralAlt(IntegerLiteralAltContext ctx)`
    `` | `public ConstantExpression` | `visitKeywords(KeywordsContext ctx)`
    `` | `public Statement` | `visitLabeledStmtAlt(LabeledStmtAltContext ctx)`
    `` | `public Statement` | `visitLambdaBody(LambdaBodyContext ctx)`
    `` | `public ListExpression` | `visitList(ListContext ctx)`
    `` | `public AstBuilder.DeclarationListStatement` | `visitLocalVariableDeclaration(LocalVariableDeclarationContext ctx)`
    `` | `public BinaryExpression` | `visitLogicalAndExprAlt(LogicalAndExprAltContext ctx)`
    `` | `public BinaryExpression` | `visitLogicalOrExprAlt(LogicalOrExprAltContext ctx)`
    `` | `public Statement` | `visitLoopStmtAlt(LoopStmtAltContext ctx)`
    `` | `public MapExpression` | `visitMap(MapContext ctx)`
    `` | `public MapEntryExpression` | `visitMapEntry(MapEntryContext ctx)`
    `` | `public Expression` | `visitMapEntryLabel(MapEntryLabelContext ctx)`
    `` | `public List<MapEntryExpression>` | `visitMapEntryList(MapEntryListContext ctx)`
    `` | `public Void` | `visitMemberDeclaration(MemberDeclarationContext ctx)`
    `` | `public Statement` | `visitMethodBody(MethodBodyContext ctx)`
    `` | `public MethodNode` | `visitMethodDeclaration(MethodDeclarationContext ctx)`
    `` | `public String` | `visitMethodName(MethodNameContext ctx)`
    `` | `public ModifierNode` | `visitModifier(ModifierContext ctx)`
    `` | `public List<ModifierNode>` | `visitModifiers(ModifiersContext ctx)`
    `` | `public List<ModifierNode>` | `visitModifiersOpt(ModifiersOptContext ctx)`
    `` | `public BinaryExpression` | `visitMultipleAssignmentExprAlt(MultipleAssignmentExprAltContext ctx)`
    `` | `public BinaryExpression` | `visitMultiplicativeExprAlt(MultiplicativeExprAltContext ctx)`
    `` | `public Expression` | `visitNamePart(NamePartContext ctx)`
    `` | `public List<MapEntryExpression>` | `visitNamedPropertyArgs(NamedPropertyArgsContext ctx)`
    `` | `public Expression` | `visitNewPrmrAlt(NewPrmrAltContext ctx)`
    `` | `public GenericsType[]` | `visitNonWildcardTypeArguments(NonWildcardTypeArgumentsContext ctx)`
    `` | `public ConstantExpression` | `visitNullLiteralAlt(NullLiteralAltContext ctx)`
    `` | `public PackageNode` | `visitPackageDeclaration(PackageDeclarationContext ctx)`
    `` | `public Expression` | `visitParExpression(ParExpressionContext ctx)`
    `` | `public Expression` | `visitPathElement(PathElementContext ctx)`
    `` | `public Expression` | `visitPathExpression(PathExpressionContext ctx)`
    `` | `public Expression` | `visitPostfixExpression(PostfixExpressionContext ctx)`
    `` | `public BinaryExpression` | `visitPowerExprAlt(PowerExprAltContext ctx)`
    `` | `public ClassNode` | `visitPrimitiveType(PrimitiveTypeContext ctx)`
    `` | `public ClassNode` | `visitQualifiedClassName(QualifiedClassNameContext ctx)`
    `` | `public ClassNode[]` | `visitQualifiedClassNameList(QualifiedClassNameListContext ctx)`
    `` | `public String` | `visitQualifiedName(QualifiedNameContext ctx)`
    `` | `public ClassNode` | `visitQualifiedStandardClassName(QualifiedStandardClassNameContext ctx)`
    `` | `public BinaryExpression` | `visitRegexExprAlt(RegexExprAltContext ctx)`
    `` | `public Expression` | `visitRelationalExprAlt(RelationalExprAltContext ctx)`
    `` | `public ExpressionStatement` | `visitResource(ResourceContext ctx)`
    `` | `public List<ExpressionStatement>` | `visitResourceList(ResourceListContext ctx)`
    `` | `public List<ExpressionStatement>` | `visitResources(ResourcesContext ctx)`
    `` | `public ReturnStatement` | `visitReturnStmtAlt(ReturnStmtAltContext ctx)`
    `` | `public ClassNode` | `visitReturnType(ReturnTypeContext ctx)`
    `` | `public List<ASTNode>` | `visitScriptStatements(ScriptStatementsContext ctx)`
    `` | `public Expression` | `visitShiftExprAlt(ShiftExprAltContext ctx)`
    `` | `public LambdaExpression` | `visitStandardLambdaExpression(StandardLambdaExpressionContext ctx)`
    `` | `public Parameter[]` | `visitStandardLambdaParameters(StandardLambdaParametersContext ctx)`
    `` | `public ConstantExpression` | `visitStringLiteral(StringLiteralContext ctx)`
    `` | `public VariableExpression` | `visitSuperPrmrAlt(SuperPrmrAltContext ctx)`
    `` | `public List<Statement>` | `visitSwitchBlockStatementGroup(SwitchBlockStatementGroupContext ctx)`
    `` | `public Tuple2<Token, Expression>` | `visitSwitchLabel(SwitchLabelContext ctx)`
    `` | `public SwitchStatement` | `visitSwitchStatement(SwitchStatementContext ctx)`
    `` | `public SynchronizedStatement` | `visitSynchronizedStmtAlt(SynchronizedStmtAltContext ctx)`
    `` | `public Parameter` | `visitThisFormalParameter(ThisFormalParameterContext ctx)`
    `` | `public VariableExpression` | `visitThisPrmrAlt(ThisPrmrAltContext ctx)`
    `` | `public ThrowStatement` | `visitThrowStmtAlt(ThrowStmtAltContext ctx)`
    `` | `public Statement` | `visitTryCatchStatement(TryCatchStatementContext ctx)`
    `` | `public ClassNode` | `visitType(TypeContext ctx)`
    `` | `public GenericsType` | `visitTypeArgument(TypeArgumentContext ctx)`
    `` | `public GenericsType[]` | `visitTypeArguments(TypeArgumentsContext ctx)`
    `` | `public GenericsType[]` | `visitTypeArgumentsOrDiamond(TypeArgumentsOrDiamondContext ctx)`
    `` | `public ClassNode[]` | `visitTypeBound(TypeBoundContext ctx)`
    `` | `public ClassNode` | `visitTypeDeclaration(TypeDeclarationContext ctx)`
    `` | `public ClassNode[]` | `visitTypeList(TypeListContext ctx)`
    `` | `public VariableExpression` | `visitTypeNamePair(TypeNamePairContext ctx)`
    `` | `public List<Expression>` | `visitTypeNamePairs(TypeNamePairsContext ctx)`
    `` | `public GenericsType` | `visitTypeParameter(TypeParameterContext ctx)`
    `` | `public GenericsType[]` | `visitTypeParameters(TypeParametersContext ctx)`
    `` | `public Expression` | `visitUnaryAddExprAlt(UnaryAddExprAltContext ctx)`
    `` | `public Expression` | `visitUnaryNotExprAlt(UnaryNotExprAltContext ctx)`
    `` | `public AstBuilder.DeclarationListStatement` | `visitVariableDeclaration(VariableDeclarationContext ctx)`
    `` | `public DeclarationExpression` | `visitVariableDeclarator(VariableDeclaratorContext ctx)`
    `` | `public VariableExpression` | `visitVariableDeclaratorId(VariableDeclaratorIdContext ctx)`
    `` | `public List<DeclarationExpression>` | `visitVariableDeclarators(VariableDeclaratorsContext ctx)`
    `` | `public Expression` | `visitVariableInitializer(VariableInitializerContext ctx)`
    `` | `public List<Expression>` | `visitVariableInitializers(VariableInitializersContext ctx)`
    `` | `public ModifierNode` | `visitVariableModifier(VariableModifierContext ctx)`
    `` | `public List<ModifierNode>` | `visitVariableModifiers(VariableModifiersContext ctx)`
    `` | `public List<ModifierNode>` | `visitVariableModifiersOpt(VariableModifiersOptContext ctx)`
    `` | `public TupleExpression` | `visitVariableNames(VariableNamesContext ctx)`
    `` | `public WhileStatement` | `visitWhileStmtAlt(WhileStmtAltContext ctx)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class GroovyParserBaseVisitor` | `visitAdditiveExprAlt, visitAndExprAlt, visitAnnotatedQualifiedClassName, visitAnnotation, visitAnnotationName, visitAnnotationsOpt, visitAnonymousInnerClassDeclaration, visitArguments, visitArrayInitializer, visitAssertStatement, visitAssertStmtAlt, visitAssignmentExprAlt, visitBlock, visitBlockStatement, visitBlockStatements, visitBlockStatementsOpt, visitBlockStmtAlt, visitBooleanLiteralAlt, visitBreakStatement, visitBreakStmtAlt, visitBuiltInType, visitBuiltInTypePrmrAlt, visitCastExprAlt, visitCastParExpression, visitCatchClause, visitCatchType, visitClassBody, visitClassBodyDeclaration, visitClassDeclaration, visitClassName, visitClassOrInterfaceModifier, visitClassOrInterfaceModifiers, visitClassOrInterfaceModifiersOpt, visitClassOrInterfaceType, visitClassicalForControl, visitClosure, visitClosureOrLambdaExpression, visitClosureOrLambdaExpressionPrmrAlt, visitCommandArgument, visitCommandExprAlt, visitCommandExpression, visitCompilationUnit, visitConditionalExprAlt, visitConditionalStatement, visitConditionalStmtAlt, visitContinueStatement, visitContinueStmtAlt, visitCreatedName, visitCreator, visitDim, visitDoWhileStmtAlt, visitDynamicMemberName, visitElementValue, visitElementValueArrayInitializer, visitElementValuePair, visitElementValuePairName, visitElementValuePairs, visitElementValues, visitEmptyDims, visitEmptyDimsOpt, visitEmptyStmtAlt, visitEnhancedArgumentListElement, visitEnhancedArgumentListInPar, visitEnhancedForControl, visitEnhancedStatementExpression, visitEnumConstant, visitEnumConstants, visitEqualityExprAlt, visitExclusiveOrExprAlt, visitExpression, visitExpressionInPar, visitExpressionList, visitExpressionListElement, visitExpressionStmtAlt, visitFieldDeclaration, visitFinallyBlock, visitFloatingPointLiteralAlt, visitForControl, visitForInit, visitForStmtAlt, visitForUpdate, visitFormalParameter, visitFormalParameterList, visitFormalParameters, visitGstring, visitGstringPath, visitGstringPrmrAlt, visitGstringValue, visitIdentifier, visitIdentifierPrmrAlt, visitIfElseStatement, visitImportDeclaration, visitInclusiveOrExprAlt, visitIndexPropertyArgs, visitIntegerLiteralAlt, visitKeywords, visitLabeledStmtAlt, visitLambdaBody, visitList, visitListPrmrAlt, visitLiteral, visitLiteralPrmrAlt, visitLocalVariableDeclaration, visitLocalVariableDeclarationStmtAlt, visitLogicalAndExprAlt, visitLogicalOrExprAlt, visitLoopStatement, visitLoopStmtAlt, visitMap, visitMapEntry, visitMapEntryLabel, visitMapEntryList, visitMapPrmrAlt, visitMemberDeclaration, visitMethodBody, visitMethodDeclaration, visitMethodName, visitModifier, visitModifiers, visitModifiersOpt, visitMultipleAssignmentExprAlt, visitMultiplicativeExprAlt, visitNamePart, visitNamedPropertyArgs, visitNewPrmrAlt, visitNls, visitNonWildcardTypeArguments, visitNullLiteralAlt, visitPackageDeclaration, visitParExpression, visitParenPrmrAlt, visitPathElement, visitPathExpression, visitPostfixExprAlt, visitPostfixExpression, visitPowerExprAlt, visitPrimary, visitPrimitiveType, visitQualifiedClassName, visitQualifiedClassNameList, visitQualifiedName, visitQualifiedNameElement, visitQualifiedNameElements, visitQualifiedStandardClassName, visitRegexExprAlt, visitRelationalExprAlt, visitResource, visitResourceList, visitResources, visitReturnStmtAlt, visitReturnType, visitRparen, visitScriptStatement, visitScriptStatements, visitSep, visitShiftExprAlt, visitStandardLambdaExpression, visitStandardLambdaParameters, visitStatement, visitStatementExpression, visitStringLiteral, visitStringLiteralAlt, visitSuperPrmrAlt, visitSwitchBlockStatementGroup, visitSwitchLabel, visitSwitchStatement, visitSynchronizedStmtAlt, visitThisFormalParameter, visitThisPrmrAlt, visitThrowStmtAlt, visitTryCatchStatement, visitTryCatchStmtAlt, visitType, visitTypeArgument, visitTypeArguments, visitTypeArgumentsOrDiamond, visitTypeBound, visitTypeDeclaration, visitTypeList, visitTypeNamePair, visitTypeNamePairs, visitTypeParameter, visitTypeParameters, visitUnaryAddExprAlt, visitUnaryNotExprAlt, visitVariableDeclaration, visitVariableDeclarator, visitVariableDeclaratorId, visitVariableDeclarators, visitVariableInitializer, visitVariableInitializers, visitVariableModifier, visitVariableModifiers, visitVariableModifiersOpt, visitVariableNames, visitWhileStmtAlt`

- - ### Constructor Detail

    - #### public AstBuilder(SourceUnit sourceUnit, boolean groovydocEnabled, boolean runtimeGroovydocEnabled)

  - ### Method Detail

    - #### public BlockStatement appendStatementsToBlockStatement(BlockStatement bs, Statement statements)

    - #### public ModuleNode buildAST()

    - #### @Override public void syntaxError(Recognizer recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e)

    - #### @Override public Object visit(ParseTree tree)

      Visit tree safely, no NPE occurred when the tree is null.

      Parameters:
        `tree` - an AST node
      Returns:
        the visiting result

    - #### @Override public BinaryExpression visitAdditiveExprAlt(AdditiveExprAltContext ctx)

    - #### @Override public BinaryExpression visitAndExprAlt(AndExprAltContext ctx)

    - #### @Override public ClassNode visitAnnotatedQualifiedClassName(AnnotatedQualifiedClassNameContext ctx)

    - #### @Override public AnnotationNode visitAnnotation(AnnotationContext ctx)

    - #### @Override public String visitAnnotationName(AnnotationNameContext ctx)

    - #### @Override public List<AnnotationNode> visitAnnotationsOpt(AnnotationsOptContext ctx)

    - #### @Override public InnerClassNode visitAnonymousInnerClassDeclaration(AnonymousInnerClassDeclarationContext ctx)

    - #### @Override public Expression visitArguments(ArgumentsContext ctx)

    - #### @Override public List<Expression> visitArrayInitializer(ArrayInitializerContext ctx)

    - #### @Override public AssertStatement visitAssertStatement(AssertStatementContext ctx)

    - #### @Override public BinaryExpression visitAssignmentExprAlt(AssignmentExprAltContext ctx)

    - #### @Override public Statement visitBlock(BlockContext ctx)

    - #### @Override public Statement visitBlockStatement(BlockStatementContext ctx)

    - #### @Override public BlockStatement visitBlockStatements(BlockStatementsContext ctx)

    - #### @Override public BlockStatement visitBlockStatementsOpt(BlockStatementsOptContext ctx)

    - #### @Override public ConstantExpression visitBooleanLiteralAlt(BooleanLiteralAltContext ctx)

    - #### @Override public BreakStatement visitBreakStatement(BreakStatementContext ctx)

    - #### @Override public VariableExpression visitBuiltInType(BuiltInTypeContext ctx)

    - #### @Override public CastExpression visitCastExprAlt(CastExprAltContext ctx)

    - #### @Override public ClassNode visitCastParExpression(CastParExpressionContext ctx)

    - #### @Override public List<CatchStatement> visitCatchClause(CatchClauseContext ctx)

      Multi-catch(1..*) clause will be unpacked to several normal catch clauses, so the return type is List

      Parameters:
        `ctx` - the parse tree
      Returns:
        a list of CatchStatement instances

    - #### @Override public List<ClassNode> visitCatchType(CatchTypeContext ctx)

    - #### @Override public Void visitClassBody(ClassBodyContext ctx)

    - #### @Override public Void visitClassBodyDeclaration(ClassBodyDeclarationContext ctx)

    - #### @Override public ClassNode visitClassDeclaration(ClassDeclarationContext ctx)

    - #### @Override public String visitClassName(ClassNameContext ctx)

    - #### @Override public ModifierNode visitClassOrInterfaceModifier(ClassOrInterfaceModifierContext ctx)

    - #### @Override public List<ModifierNode> visitClassOrInterfaceModifiers(ClassOrInterfaceModifiersContext ctx)

    - #### @Override public List<ModifierNode> visitClassOrInterfaceModifiersOpt(ClassOrInterfaceModifiersOptContext ctx)

    - #### @Override public ClassNode visitClassOrInterfaceType(ClassOrInterfaceTypeContext ctx)

    - #### @Override public Tuple2<Parameter, Expression> visitClassicalForControl(ClassicalForControlContext ctx)

    - #### @Override public ClosureExpression visitClosure(ClosureContext ctx)

    - #### @Override public ClosureExpression visitClosureOrLambdaExpression(ClosureOrLambdaExpressionContext ctx)

    - #### @Override public Expression visitCommandArgument(CommandArgumentContext ctx)

    - #### @Override public ExpressionStatement visitCommandExprAlt(CommandExprAltContext ctx)

    - #### @Override public Expression visitCommandExpression(CommandExpressionContext ctx)

    - #### @Override public ModuleNode visitCompilationUnit(CompilationUnitContext ctx)

    - #### @Override public Expression visitConditionalExprAlt(ConditionalExprAltContext ctx)

    - #### @Override public Statement visitConditionalStatement(ConditionalStatementContext ctx)

    - #### @Override public ContinueStatement visitContinueStatement(ContinueStatementContext ctx)

    - #### @Override public ClassNode visitCreatedName(CreatedNameContext ctx)

    - #### @Override public Expression visitCreator(CreatorContext ctx)

    - #### @Override public Tuple3<Expression, List<AnnotationNode>, TerminalNode> visitDim(DimContext ctx)

    - #### @Override public DoWhileStatement visitDoWhileStmtAlt(DoWhileStmtAltContext ctx)

    - #### @Override public Expression visitDynamicMemberName(DynamicMemberNameContext ctx)

    - #### @Override public Expression visitElementValue(ElementValueContext ctx)

    - #### @Override public ListExpression visitElementValueArrayInitializer(ElementValueArrayInitializerContext ctx)

    - #### @Override public Tuple2<String, Expression> visitElementValuePair(ElementValuePairContext ctx)

    - #### @Override public Map<String, Expression> visitElementValuePairs(ElementValuePairsContext ctx)

    - #### @Override public List<Tuple2<String, Expression>> visitElementValues(ElementValuesContext ctx)

    - #### @Override public List<List<AnnotationNode>> visitEmptyDims(EmptyDimsContext ctx)

    - #### @Override public List<List<AnnotationNode>> visitEmptyDimsOpt(EmptyDimsOptContext ctx)

    - #### @Override public Expression visitEnhancedArgumentListElement(EnhancedArgumentListElementContext ctx)

    - #### @Override public Expression visitEnhancedArgumentListInPar(EnhancedArgumentListInParContext ctx)

    - #### @Override public Tuple2<Parameter, Expression> visitEnhancedForControl(EnhancedForControlContext ctx)

    - #### @Override public Expression visitEnhancedStatementExpression(EnhancedStatementExpressionContext ctx)

    - #### @Override public FieldNode visitEnumConstant(EnumConstantContext ctx)

    - #### @Override public List<FieldNode> visitEnumConstants(EnumConstantsContext ctx)

    - #### @Override public BinaryExpression visitEqualityExprAlt(EqualityExprAltContext ctx)

    - #### @Override public BinaryExpression visitExclusiveOrExprAlt(ExclusiveOrExprAltContext ctx)

    - #### @Override public Expression visitExpressionInPar(ExpressionInParContext ctx)

    - #### @Override public List<Expression> visitExpressionList(ExpressionListContext ctx)

    - #### @Override public Expression visitExpressionListElement(ExpressionListElementContext ctx)

    - #### @Override public Void visitFieldDeclaration(FieldDeclarationContext ctx)

    - #### @Override public Statement visitFinallyBlock(FinallyBlockContext ctx)

    - #### @Override public ConstantExpression visitFloatingPointLiteralAlt(FloatingPointLiteralAltContext ctx)

    - #### @Override public Tuple2<Parameter, Expression> visitForControl(ForControlContext ctx)

    - #### @Override @SuppressWarnings("unchecked") public Expression visitForInit(ForInitContext ctx)

    - #### @Override public ForStatement visitForStmtAlt(ForStmtAltContext ctx)

    - #### @Override public Expression visitForUpdate(ForUpdateContext ctx)

    - #### @Override public Parameter visitFormalParameter(FormalParameterContext ctx)

    - #### @Override public Parameter[] visitFormalParameterList(FormalParameterListContext ctx)

    - #### @Override public Parameter[] visitFormalParameters(FormalParametersContext ctx)

    - #### @Override public GStringExpression visitGstring(GstringContext ctx)

    - #### @Override public Expression visitGstringPath(GstringPathContext ctx)

    - #### @Override public Expression visitGstringValue(GstringValueContext ctx)

    - #### @Override public String visitIdentifier(IdentifierContext ctx)

    - #### @Override public Expression visitIdentifierPrmrAlt(IdentifierPrmrAltContext ctx)

    - #### @Override public IfStatement visitIfElseStatement(IfElseStatementContext ctx)

    - #### @Override public ImportNode visitImportDeclaration(ImportDeclarationContext ctx)

    - #### @Override public BinaryExpression visitInclusiveOrExprAlt(InclusiveOrExprAltContext ctx)

    - #### @Override public Tuple2<Token, Expression> visitIndexPropertyArgs(IndexPropertyArgsContext ctx)

    - #### @Override public ConstantExpression visitIntegerLiteralAlt(IntegerLiteralAltContext ctx)

    - #### @Override public ConstantExpression visitKeywords(KeywordsContext ctx)

    - #### @Override public Statement visitLabeledStmtAlt(LabeledStmtAltContext ctx)

    - #### @Override public Statement visitLambdaBody(LambdaBodyContext ctx)

    - #### @Override public ListExpression visitList(ListContext ctx)

    - #### @Override public AstBuilder.DeclarationListStatement visitLocalVariableDeclaration(LocalVariableDeclarationContext ctx)

    - #### @Override public BinaryExpression visitLogicalAndExprAlt(LogicalAndExprAltContext ctx)

    - #### @Override public BinaryExpression visitLogicalOrExprAlt(LogicalOrExprAltContext ctx)

    - #### @Override public Statement visitLoopStmtAlt(LoopStmtAltContext ctx)

    - #### @Override public MapExpression visitMap(MapContext ctx)

    - #### @Override public MapEntryExpression visitMapEntry(MapEntryContext ctx)

    - #### @Override public Expression visitMapEntryLabel(MapEntryLabelContext ctx)

    - #### @Override public List<MapEntryExpression> visitMapEntryList(MapEntryListContext ctx)

    - #### @Override public Void visitMemberDeclaration(MemberDeclarationContext ctx)

    - #### @Override public Statement visitMethodBody(MethodBodyContext ctx)

    - #### @Override public MethodNode visitMethodDeclaration(MethodDeclarationContext ctx)

    - #### @Override public String visitMethodName(MethodNameContext ctx)

    - #### @Override public ModifierNode visitModifier(ModifierContext ctx)

    - #### @Override public List<ModifierNode> visitModifiers(ModifiersContext ctx)

    - #### @Override public List<ModifierNode> visitModifiersOpt(ModifiersOptContext ctx)

    - #### @Override public BinaryExpression visitMultipleAssignmentExprAlt(MultipleAssignmentExprAltContext ctx)

    - #### @Override public BinaryExpression visitMultiplicativeExprAlt(MultiplicativeExprAltContext ctx)

    - #### @Override public Expression visitNamePart(NamePartContext ctx)

    - #### @Override public List<MapEntryExpression> visitNamedPropertyArgs(NamedPropertyArgsContext ctx)

    - #### @Override public Expression visitNewPrmrAlt(NewPrmrAltContext ctx)

    - #### @Override public GenericsType[] visitNonWildcardTypeArguments(NonWildcardTypeArgumentsContext ctx)

    - #### @Override public ConstantExpression visitNullLiteralAlt(NullLiteralAltContext ctx)

    - #### @Override public PackageNode visitPackageDeclaration(PackageDeclarationContext ctx)

    - #### @Override public Expression visitParExpression(ParExpressionContext ctx)

    - #### @Override public Expression visitPathElement(PathElementContext ctx)

    - #### @Override public Expression visitPathExpression(PathExpressionContext ctx)

    - #### @Override public Expression visitPostfixExpression(PostfixExpressionContext ctx)

    - #### @Override public BinaryExpression visitPowerExprAlt(PowerExprAltContext ctx)

    - #### @Override public ClassNode visitPrimitiveType(PrimitiveTypeContext ctx)

    - #### @Override public ClassNode visitQualifiedClassName(QualifiedClassNameContext ctx)

    - #### @Override public ClassNode[] visitQualifiedClassNameList(QualifiedClassNameListContext ctx)

    - #### @Override public String visitQualifiedName(QualifiedNameContext ctx)

    - #### @Override public ClassNode visitQualifiedStandardClassName(QualifiedStandardClassNameContext ctx)

    - #### @Override public BinaryExpression visitRegexExprAlt(RegexExprAltContext ctx)

    - #### @Override public Expression visitRelationalExprAlt(RelationalExprAltContext ctx)

    - #### @Override public ExpressionStatement visitResource(ResourceContext ctx)

    - #### @Override public List<ExpressionStatement> visitResourceList(ResourceListContext ctx)

    - #### @Override public List<ExpressionStatement> visitResources(ResourcesContext ctx)

    - #### @Override public ReturnStatement visitReturnStmtAlt(ReturnStmtAltContext ctx)

    - #### @Override public ClassNode visitReturnType(ReturnTypeContext ctx)

    - #### @Override public List<ASTNode> visitScriptStatements(ScriptStatementsContext ctx)

    - #### @Override public Expression visitShiftExprAlt(ShiftExprAltContext ctx)

    - #### @Override public LambdaExpression visitStandardLambdaExpression(StandardLambdaExpressionContext ctx)

    - #### @Override public Parameter[] visitStandardLambdaParameters(StandardLambdaParametersContext ctx)

    - #### @Override public ConstantExpression visitStringLiteral(StringLiteralContext ctx)

    - #### @Override public VariableExpression visitSuperPrmrAlt(SuperPrmrAltContext ctx)

    - #### @Override @SuppressWarnings("unchecked") public List<Statement> visitSwitchBlockStatementGroup(SwitchBlockStatementGroupContext ctx)

    - #### @Override public Tuple2<Token, Expression> visitSwitchLabel(SwitchLabelContext ctx)

    - #### @Override public SwitchStatement visitSwitchStatement(SwitchStatementContext ctx)

    - #### @Override public SynchronizedStatement visitSynchronizedStmtAlt(SynchronizedStmtAltContext ctx)

    - #### @Override public Parameter visitThisFormalParameter(ThisFormalParameterContext ctx)

    - #### @Override public VariableExpression visitThisPrmrAlt(ThisPrmrAltContext ctx)

    - #### @Override public ThrowStatement visitThrowStmtAlt(ThrowStmtAltContext ctx)

    - #### @Override public Statement visitTryCatchStatement(TryCatchStatementContext ctx)

    - #### @Override public ClassNode visitType(TypeContext ctx)

    - #### @Override public GenericsType visitTypeArgument(TypeArgumentContext ctx)

    - #### @Override public GenericsType[] visitTypeArguments(TypeArgumentsContext ctx)

    - #### @Override public GenericsType[] visitTypeArgumentsOrDiamond(TypeArgumentsOrDiamondContext ctx)

    - #### @Override public ClassNode[] visitTypeBound(TypeBoundContext ctx)

    - #### @Override public ClassNode visitTypeDeclaration(TypeDeclarationContext ctx)

    - #### @Override public ClassNode[] visitTypeList(TypeListContext ctx)

    - #### @Override public VariableExpression visitTypeNamePair(TypeNamePairContext ctx)

    - #### @Override public List<Expression> visitTypeNamePairs(TypeNamePairsContext ctx)

    - #### @Override public GenericsType visitTypeParameter(TypeParameterContext ctx)

    - #### @Override public GenericsType[] visitTypeParameters(TypeParametersContext ctx)

    - #### @Override public Expression visitUnaryAddExprAlt(UnaryAddExprAltContext ctx)

    - #### @Override public Expression visitUnaryNotExprAlt(UnaryNotExprAltContext ctx)

    - #### @Override public AstBuilder.DeclarationListStatement visitVariableDeclaration(VariableDeclarationContext ctx)

    - #### @Override public DeclarationExpression visitVariableDeclarator(VariableDeclaratorContext ctx)

    - #### @Override public VariableExpression visitVariableDeclaratorId(VariableDeclaratorIdContext ctx)

    - #### @Override public List<DeclarationExpression> visitVariableDeclarators(VariableDeclaratorsContext ctx)

    - #### @Override public Expression visitVariableInitializer(VariableInitializerContext ctx)

    - #### @Override public List<Expression> visitVariableInitializers(VariableInitializersContext ctx)

    - #### @Override public ModifierNode visitVariableModifier(VariableModifierContext ctx)

    - #### @Override public List<ModifierNode> visitVariableModifiers(VariableModifiersContext ctx)

    - #### @Override public List<ModifierNode> visitVariableModifiersOpt(VariableModifiersOptContext ctx)

    - #### @Override public TupleExpression visitVariableNames(VariableNamesContext ctx)

    - #### @Override public WhileStatement visitWhileStmtAlt(WhileStmtAltContext ctx)