Class ASTBuilder
java.lang.Object
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor<T>
io.github.douira.glsl_transformer.GLSLParserBaseVisitor<ASTNode>
io.github.douira.glsl_transformer.ast.transform.ASTBuilder
- All Implemented Interfaces:
io.github.douira.glsl_transformer.GLSLParserVisitor<ASTNode>,ParseTreeVisitor<ASTNode>
The AST builder is a visitor of the parse tree (not an AST visitor) that
generates AST nodes from parse tree nodes. Sometimes more or fewer nodes are
generated than are in the parse tree depending on how the parse tree is
nested and how fine-grained the AST nodes have to be. Information about the
relationship between a parse tree and an AST is encoded in this visitor.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ASTNodestatic ASTNodestatic ASTNodebuildSubtreeFor(ASTNode parentTreeMember, ParseTree ctx) buildSubtreeWith(ASTNode parentTreeMember, TreeType ctx, BiFunction<ASTBuilder, TreeType, ReturnType> visitMethod) visitAdditiveExpression(io.github.douira.glsl_transformer.GLSLParser.AdditiveExpressionContext ctx) visitArrayAccessExpression(io.github.douira.glsl_transformer.GLSLParser.ArrayAccessExpressionContext ctx) visitArraySpecifier(io.github.douira.glsl_transformer.GLSLParser.ArraySpecifierContext ctx) visitAssignmentExpression(io.github.douira.glsl_transformer.GLSLParser.AssignmentExpressionContext ctx) visitBitwiseAndExpression(io.github.douira.glsl_transformer.GLSLParser.BitwiseAndExpressionContext ctx) visitBitwiseExclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.BitwiseExclusiveOrExpressionContext ctx) visitBitwiseInclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.BitwiseInclusiveOrExpressionContext ctx) visitBreakStatement(io.github.douira.glsl_transformer.GLSLParser.BreakStatementContext ctx) visitCompoundStatement(io.github.douira.glsl_transformer.GLSLParser.CompoundStatementContext ctx) visitConditionalExpression(io.github.douira.glsl_transformer.GLSLParser.ConditionalExpressionContext ctx) visitContinueStatement(io.github.douira.glsl_transformer.GLSLParser.ContinueStatementContext ctx) visitDeclaration(io.github.douira.glsl_transformer.GLSLParser.DeclarationContext ctx) visitDeclarationMember(io.github.douira.glsl_transformer.GLSLParser.DeclarationMemberContext ctx) visitDeclarationStatement(io.github.douira.glsl_transformer.GLSLParser.DeclarationStatementContext ctx) visitDefaultCaseLabel(io.github.douira.glsl_transformer.GLSLParser.DefaultCaseLabelContext ctx) visitDemoteStatement(io.github.douira.glsl_transformer.GLSLParser.DemoteStatementContext ctx) visitDiscardStatement(io.github.douira.glsl_transformer.GLSLParser.DiscardStatementContext ctx) visitDoWhileStatement(io.github.douira.glsl_transformer.GLSLParser.DoWhileStatementContext ctx) visitEmptyDeclaration(io.github.douira.glsl_transformer.GLSLParser.EmptyDeclarationContext ctx) visitEmptyStatement(io.github.douira.glsl_transformer.GLSLParser.EmptyStatementContext ctx) visitEqualityExpression(io.github.douira.glsl_transformer.GLSLParser.EqualityExpressionContext ctx) visitExpression(io.github.douira.glsl_transformer.GLSLParser.ExpressionContext ctx) visitExpressionStatement(io.github.douira.glsl_transformer.GLSLParser.ExpressionStatementContext ctx) visitExtensionStatement(io.github.douira.glsl_transformer.GLSLParser.ExtensionStatementContext ctx) visitExternalDeclaration(io.github.douira.glsl_transformer.GLSLParser.ExternalDeclarationContext ctx) visitForStatement(io.github.douira.glsl_transformer.GLSLParser.ForStatementContext ctx) visitFullySpecifiedType(io.github.douira.glsl_transformer.GLSLParser.FullySpecifiedTypeContext ctx) visitFunctionCallExpression(io.github.douira.glsl_transformer.GLSLParser.FunctionCallExpressionContext ctx) visitFunctionDeclaration(io.github.douira.glsl_transformer.GLSLParser.FunctionDeclarationContext ctx) visitFunctionDefinition(io.github.douira.glsl_transformer.GLSLParser.FunctionDefinitionContext ctx) visitFunctionPrototype(io.github.douira.glsl_transformer.GLSLParser.FunctionPrototypeContext ctx) visitGroupingExpression(io.github.douira.glsl_transformer.GLSLParser.GroupingExpressionContext ctx) visitIdentifier(TerminalNode identifier) visitInitializer(io.github.douira.glsl_transformer.GLSLParser.InitializerContext ctx) visitInterfaceBlockDeclaration(io.github.douira.glsl_transformer.GLSLParser.InterfaceBlockDeclarationContext ctx) visitInterpolationQualifier(io.github.douira.glsl_transformer.GLSLParser.InterpolationQualifierContext ctx) visitInvariantQualifier(io.github.douira.glsl_transformer.GLSLParser.InvariantQualifierContext ctx) visitIterationCondition(io.github.douira.glsl_transformer.GLSLParser.IterationConditionContext ctx) visitLayoutDefaults(io.github.douira.glsl_transformer.GLSLParser.LayoutDefaultsContext ctx) visitLayoutQualifier(io.github.douira.glsl_transformer.GLSLParser.LayoutQualifierContext ctx) visitLayoutQualifierPart(io.github.douira.glsl_transformer.GLSLParser.LayoutQualifierIdContext ctx) visitLengthAccessExpression(io.github.douira.glsl_transformer.GLSLParser.LengthAccessExpressionContext ctx) visitLiteralExpression(io.github.douira.glsl_transformer.GLSLParser.LiteralExpressionContext ctx) visitLogicalAndExpression(io.github.douira.glsl_transformer.GLSLParser.LogicalAndExpressionContext ctx) visitLogicalExclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.LogicalExclusiveOrExpressionContext ctx) visitLogicalInclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.LogicalInclusiveOrExpressionContext ctx) visitMemberAccessExpression(io.github.douira.glsl_transformer.GLSLParser.MemberAccessExpressionContext ctx) visitMultiplicativeExpression(io.github.douira.glsl_transformer.GLSLParser.MultiplicativeExpressionContext ctx) visitNamedLayoutQualifier(io.github.douira.glsl_transformer.GLSLParser.NamedLayoutQualifierContext ctx) visitParameterDeclaration(io.github.douira.glsl_transformer.GLSLParser.ParameterDeclarationContext ctx) visitPostfixExpression(io.github.douira.glsl_transformer.GLSLParser.PostfixExpressionContext ctx) visitPragmaStatement(io.github.douira.glsl_transformer.GLSLParser.PragmaStatementContext ctx) visitPreciseQualifier(io.github.douira.glsl_transformer.GLSLParser.PreciseQualifierContext ctx) visitPrecisionDeclaration(io.github.douira.glsl_transformer.GLSLParser.PrecisionDeclarationContext ctx) visitPrecisionQualifier(io.github.douira.glsl_transformer.GLSLParser.PrecisionQualifierContext ctx) visitPrefixExpression(io.github.douira.glsl_transformer.GLSLParser.PrefixExpressionContext ctx) visitReferenceExpression(io.github.douira.glsl_transformer.GLSLParser.ReferenceExpressionContext ctx) visitRelationalExpression(io.github.douira.glsl_transformer.GLSLParser.RelationalExpressionContext ctx) visitReturnStatement(io.github.douira.glsl_transformer.GLSLParser.ReturnStatementContext ctx) visitSelectionStatement(io.github.douira.glsl_transformer.GLSLParser.SelectionStatementContext ctx) visitSequenceExpression(io.github.douira.glsl_transformer.GLSLParser.SequenceExpressionContext ctx) visitSharedLayoutQualifier(io.github.douira.glsl_transformer.GLSLParser.SharedLayoutQualifierContext ctx) visitShiftExpression(io.github.douira.glsl_transformer.GLSLParser.ShiftExpressionContext ctx) visitStatement(io.github.douira.glsl_transformer.GLSLParser.StatementContext ctx) visitStorageQualifier(io.github.douira.glsl_transformer.GLSLParser.StorageQualifierContext ctx) visitStructBody(io.github.douira.glsl_transformer.GLSLParser.StructBodyContext ctx) visitStructDeclarator(io.github.douira.glsl_transformer.GLSLParser.StructDeclaratorContext ctx) visitStructMember(io.github.douira.glsl_transformer.GLSLParser.StructMemberContext ctx) visitSwitchStatement(io.github.douira.glsl_transformer.GLSLParser.SwitchStatementContext ctx) visitTerminal(TerminalNode node) visitTranslationUnit(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) visitTypeAndInitDeclaration(io.github.douira.glsl_transformer.GLSLParser.TypeAndInitDeclarationContext ctx) visitTypeQualifier(io.github.douira.glsl_transformer.GLSLParser.TypeQualifierContext ctx) visitTypeSpecifier(io.github.douira.glsl_transformer.GLSLParser.TypeSpecifierContext ctx) visitValuedCaseLabel(io.github.douira.glsl_transformer.GLSLParser.ValuedCaseLabelContext ctx) visitVariableDeclaration(io.github.douira.glsl_transformer.GLSLParser.VariableDeclarationContext ctx) visitVersionStatement(io.github.douira.glsl_transformer.GLSLParser.VersionStatementContext ctx) visitWhileStatement(io.github.douira.glsl_transformer.GLSLParser.WhileStatementContext ctx) Methods inherited from class io.github.douira.glsl_transformer.GLSLParserBaseVisitor
visitArraySpecifierSegment, visitAttribute, visitBuiltinTypeSpecifierFixed, visitBuiltinTypeSpecifierParseable, visitFunctionParameterList, visitSingleAttribute, visitStructSpecifierMethods inherited from class org.antlr.v4.runtime.tree.AbstractParseTreeVisitor
aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitErrorNodeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.antlr.v4.runtime.tree.ParseTreeVisitor
visit, visitChildren, visitErrorNode
-
Constructor Details
-
ASTBuilder
public ASTBuilder()
-
-
Method Details
-
build
-
build
-
buildSubtreeFor
-
buildSubtreeWith
public static <TreeType extends ParseTree,ReturnType extends ASTNode> ReturnType buildSubtreeWith(ASTNode parentTreeMember, TreeType ctx, BiFunction<ASTBuilder, TreeType, ReturnType> visitMethod) -
visitTranslationUnit
public TranslationUnit visitTranslationUnit(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) -
visitVersionStatement
public VersionStatement visitVersionStatement(io.github.douira.glsl_transformer.GLSLParser.VersionStatementContext ctx) -
visitEmptyDeclaration
public EmptyDeclaration visitEmptyDeclaration(io.github.douira.glsl_transformer.GLSLParser.EmptyDeclarationContext ctx) -
visitPragmaStatement
public PragmaStatement visitPragmaStatement(io.github.douira.glsl_transformer.GLSLParser.PragmaStatementContext ctx) -
visitExtensionStatement
public ExtensionStatement visitExtensionStatement(io.github.douira.glsl_transformer.GLSLParser.ExtensionStatementContext ctx) -
visitLayoutDefaults
public LayoutDefaults visitLayoutDefaults(io.github.douira.glsl_transformer.GLSLParser.LayoutDefaultsContext ctx) -
visitConditionalExpression
public ConditionExpression visitConditionalExpression(io.github.douira.glsl_transformer.GLSLParser.ConditionalExpressionContext ctx) -
visitFunctionCallExpression
public FunctionCallExpression visitFunctionCallExpression(io.github.douira.glsl_transformer.GLSLParser.FunctionCallExpressionContext ctx) -
visitGroupingExpression
public GroupingExpression visitGroupingExpression(io.github.douira.glsl_transformer.GLSLParser.GroupingExpressionContext ctx) -
visitMemberAccessExpression
public MemberAccessExpression visitMemberAccessExpression(io.github.douira.glsl_transformer.GLSLParser.MemberAccessExpressionContext ctx) -
visitLengthAccessExpression
public LengthAccessExpression visitLengthAccessExpression(io.github.douira.glsl_transformer.GLSLParser.LengthAccessExpressionContext ctx) -
visitPostfixExpression
public UnaryExpression visitPostfixExpression(io.github.douira.glsl_transformer.GLSLParser.PostfixExpressionContext ctx) -
visitPrefixExpression
public UnaryExpression visitPrefixExpression(io.github.douira.glsl_transformer.GLSLParser.PrefixExpressionContext ctx) -
visitSequenceExpression
public SequenceExpression visitSequenceExpression(io.github.douira.glsl_transformer.GLSLParser.SequenceExpressionContext ctx) -
visitLiteralExpression
public LiteralExpression visitLiteralExpression(io.github.douira.glsl_transformer.GLSLParser.LiteralExpressionContext ctx) -
visitAdditiveExpression
public BinaryExpression visitAdditiveExpression(io.github.douira.glsl_transformer.GLSLParser.AdditiveExpressionContext ctx) -
visitArrayAccessExpression
public ArrayAccessExpression visitArrayAccessExpression(io.github.douira.glsl_transformer.GLSLParser.ArrayAccessExpressionContext ctx) -
visitAssignmentExpression
public BinaryExpression visitAssignmentExpression(io.github.douira.glsl_transformer.GLSLParser.AssignmentExpressionContext ctx) -
visitBitwiseAndExpression
public BitwiseAndExpression visitBitwiseAndExpression(io.github.douira.glsl_transformer.GLSLParser.BitwiseAndExpressionContext ctx) -
visitBitwiseExclusiveOrExpression
public BitwiseXorExpression visitBitwiseExclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.BitwiseExclusiveOrExpressionContext ctx) -
visitBitwiseInclusiveOrExpression
public BitwiseOrExpression visitBitwiseInclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.BitwiseInclusiveOrExpressionContext ctx) -
visitEqualityExpression
public BinaryExpression visitEqualityExpression(io.github.douira.glsl_transformer.GLSLParser.EqualityExpressionContext ctx) -
visitLogicalAndExpression
public BooleanAndExpression visitLogicalAndExpression(io.github.douira.glsl_transformer.GLSLParser.LogicalAndExpressionContext ctx) -
visitLogicalExclusiveOrExpression
public BooleanXorExpression visitLogicalExclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.LogicalExclusiveOrExpressionContext ctx) -
visitLogicalInclusiveOrExpression
public BooleanOrExpression visitLogicalInclusiveOrExpression(io.github.douira.glsl_transformer.GLSLParser.LogicalInclusiveOrExpressionContext ctx) -
visitRelationalExpression
public BinaryExpression visitRelationalExpression(io.github.douira.glsl_transformer.GLSLParser.RelationalExpressionContext ctx) -
visitShiftExpression
public BinaryExpression visitShiftExpression(io.github.douira.glsl_transformer.GLSLParser.ShiftExpressionContext ctx) -
visitMultiplicativeExpression
public BinaryExpression visitMultiplicativeExpression(io.github.douira.glsl_transformer.GLSLParser.MultiplicativeExpressionContext ctx) -
visitReferenceExpression
public ReferenceExpression visitReferenceExpression(io.github.douira.glsl_transformer.GLSLParser.ReferenceExpressionContext ctx) -
visitCompoundStatement
public CompoundStatement visitCompoundStatement(io.github.douira.glsl_transformer.GLSLParser.CompoundStatementContext ctx) -
visitContinueStatement
public ContinueStatement visitContinueStatement(io.github.douira.glsl_transformer.GLSLParser.ContinueStatementContext ctx) -
visitBreakStatement
public BreakStatement visitBreakStatement(io.github.douira.glsl_transformer.GLSLParser.BreakStatementContext ctx) -
visitReturnStatement
public ReturnStatement visitReturnStatement(io.github.douira.glsl_transformer.GLSLParser.ReturnStatementContext ctx) -
visitDiscardStatement
public DiscardStatement visitDiscardStatement(io.github.douira.glsl_transformer.GLSLParser.DiscardStatementContext ctx) -
visitDemoteStatement
public DemoteStatement visitDemoteStatement(io.github.douira.glsl_transformer.GLSLParser.DemoteStatementContext ctx) -
visitDeclarationStatement
public DeclarationStatement visitDeclarationStatement(io.github.douira.glsl_transformer.GLSLParser.DeclarationStatementContext ctx) -
visitExpressionStatement
public ExpressionStatement visitExpressionStatement(io.github.douira.glsl_transformer.GLSLParser.ExpressionStatementContext ctx) -
visitEmptyStatement
public EmptyStatement visitEmptyStatement(io.github.douira.glsl_transformer.GLSLParser.EmptyStatementContext ctx) -
visitSelectionStatement
public SelectionStatement visitSelectionStatement(io.github.douira.glsl_transformer.GLSLParser.SelectionStatementContext ctx) -
visitSwitchStatement
public SwitchStatement visitSwitchStatement(io.github.douira.glsl_transformer.GLSLParser.SwitchStatementContext ctx) -
visitDefaultCaseLabel
public DefaultStatement visitDefaultCaseLabel(io.github.douira.glsl_transformer.GLSLParser.DefaultCaseLabelContext ctx) -
visitValuedCaseLabel
public CaseStatement visitValuedCaseLabel(io.github.douira.glsl_transformer.GLSLParser.ValuedCaseLabelContext ctx) -
visitForStatement
public ForLoopStatement visitForStatement(io.github.douira.glsl_transformer.GLSLParser.ForStatementContext ctx) -
visitWhileStatement
public WhileLoopStatement visitWhileStatement(io.github.douira.glsl_transformer.GLSLParser.WhileStatementContext ctx) -
visitDoWhileStatement
public DoWhileLoopStatement visitDoWhileStatement(io.github.douira.glsl_transformer.GLSLParser.DoWhileStatementContext ctx) -
visitIterationCondition
public IterationConditionInitializer visitIterationCondition(io.github.douira.glsl_transformer.GLSLParser.IterationConditionContext ctx) -
visitArraySpecifier
public ArraySpecifier visitArraySpecifier(io.github.douira.glsl_transformer.GLSLParser.ArraySpecifierContext ctx) -
visitFunctionDefinition
public FunctionDefinition visitFunctionDefinition(io.github.douira.glsl_transformer.GLSLParser.FunctionDefinitionContext ctx) -
visitFunctionPrototype
public FunctionPrototype visitFunctionPrototype(io.github.douira.glsl_transformer.GLSLParser.FunctionPrototypeContext ctx) -
visitDeclarationMember
public DeclarationMember visitDeclarationMember(io.github.douira.glsl_transformer.GLSLParser.DeclarationMemberContext ctx) -
visitFullySpecifiedType
public FullySpecifiedType visitFullySpecifiedType(io.github.douira.glsl_transformer.GLSLParser.FullySpecifiedTypeContext ctx) -
visitParameterDeclaration
public FunctionParameter visitParameterDeclaration(io.github.douira.glsl_transformer.GLSLParser.ParameterDeclarationContext ctx) -
visitFunctionDeclaration
public FunctionDeclaration visitFunctionDeclaration(io.github.douira.glsl_transformer.GLSLParser.FunctionDeclarationContext ctx) -
visitTypeAndInitDeclaration
public TypeAndInitDeclaration visitTypeAndInitDeclaration(io.github.douira.glsl_transformer.GLSLParser.TypeAndInitDeclarationContext ctx) -
visitPrecisionDeclaration
public PrecisionDeclaration visitPrecisionDeclaration(io.github.douira.glsl_transformer.GLSLParser.PrecisionDeclarationContext ctx) -
visitInterfaceBlockDeclaration
public InterfaceBlockDeclaration visitInterfaceBlockDeclaration(io.github.douira.glsl_transformer.GLSLParser.InterfaceBlockDeclarationContext ctx) -
visitVariableDeclaration
public VariableDeclaration visitVariableDeclaration(io.github.douira.glsl_transformer.GLSLParser.VariableDeclarationContext ctx) -
visitInitializer
public Initializer visitInitializer(io.github.douira.glsl_transformer.GLSLParser.InitializerContext ctx) -
visitNamedLayoutQualifier
public NamedLayoutQualifierPart visitNamedLayoutQualifier(io.github.douira.glsl_transformer.GLSLParser.NamedLayoutQualifierContext ctx) -
visitLayoutQualifierPart
public LayoutQualifierPart visitLayoutQualifierPart(io.github.douira.glsl_transformer.GLSLParser.LayoutQualifierIdContext ctx) -
visitLayoutQualifier
public LayoutQualifier visitLayoutQualifier(io.github.douira.glsl_transformer.GLSLParser.LayoutQualifierContext ctx) -
visitPreciseQualifier
public PreciseQualifier visitPreciseQualifier(io.github.douira.glsl_transformer.GLSLParser.PreciseQualifierContext ctx) -
visitInvariantQualifier
public InvariantQualifier visitInvariantQualifier(io.github.douira.glsl_transformer.GLSLParser.InvariantQualifierContext ctx) -
visitInterpolationQualifier
public InterpolationQualifier visitInterpolationQualifier(io.github.douira.glsl_transformer.GLSLParser.InterpolationQualifierContext ctx) -
visitPrecisionQualifier
public PrecisionQualifier visitPrecisionQualifier(io.github.douira.glsl_transformer.GLSLParser.PrecisionQualifierContext ctx) -
visitStorageQualifier
public ASTNode visitStorageQualifier(io.github.douira.glsl_transformer.GLSLParser.StorageQualifierContext ctx) -
visitStructBody
public StructBody visitStructBody(io.github.douira.glsl_transformer.GLSLParser.StructBodyContext ctx) -
visitStructMember
public StructMember visitStructMember(io.github.douira.glsl_transformer.GLSLParser.StructMemberContext ctx) -
visitStructDeclarator
public StructDeclarator visitStructDeclarator(io.github.douira.glsl_transformer.GLSLParser.StructDeclaratorContext ctx) -
visitTypeSpecifier
public TypeSpecifier visitTypeSpecifier(io.github.douira.glsl_transformer.GLSLParser.TypeSpecifierContext ctx) -
visitTypeQualifier
public TypeQualifier visitTypeQualifier(io.github.douira.glsl_transformer.GLSLParser.TypeQualifierContext ctx) -
visitExpression
public Expression visitExpression(io.github.douira.glsl_transformer.GLSLParser.ExpressionContext ctx) -
visitStatement
-
visitExternalDeclaration
public ExternalDeclaration visitExternalDeclaration(io.github.douira.glsl_transformer.GLSLParser.ExternalDeclarationContext ctx) -
visitDeclaration
public Declaration visitDeclaration(io.github.douira.glsl_transformer.GLSLParser.DeclarationContext ctx) -
visitTerminal
- Specified by:
visitTerminalin interfaceParseTreeVisitor<ASTNode>- Overrides:
visitTerminalin classAbstractParseTreeVisitor<ASTNode>
-
visitIdentifier
-