Class ASTPrinter
java.lang.Object
io.github.douira.glsl_transformer.ast.traversal.ASTBaseVisitor<R>
io.github.douira.glsl_transformer.ast.traversal.ASTWalker<R>
io.github.douira.glsl_transformer.ast.traversal.ASTListenerVisitor<Void>
io.github.douira.glsl_transformer.ast.print.ASTPrinterBase
io.github.douira.glsl_transformer.ast.print.ASTPrinter
- All Implemented Interfaces:
ASTListener,ASTVisitor<Void>,ContextTracker,GeneralASTListener,GeneralASTVisitor<Void>
- Direct Known Subclasses:
SimpleASTPrinter
The AST printer emits tokens to convert an AST node into a string with the
help of a few other utility classes. Information encoded about the string
content and printed structure of each node is encoded in this printer.
-
Field Summary
Fields inherited from class io.github.douira.glsl_transformer.ast.traversal.ASTBaseVisitor
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidvoidANTLR grammar rule: compoundStatement: LBRACE statement* RBRACE;voidvoidvoidvoidvoidvoidvoidvoidvoidvoidANTLR grammar rule: declaration: functionPrototype SEMICOLON # functionDeclaration | fullySpecifiedType ( declarationMembers += declarationMember ( COMMA declarationMembers += declarationMember )* )? SEMICOLON # typeAndInitDeclaration | PRECISION precisionQualifier typeSpecifier SEMICOLON # precisionDeclaration | typeQualifier blockName = IDENTIFIER structBody ( variableName = IDENTIFIER arraySpecifier? )? SEMICOLON # interfaceBlockDeclaration | typeQualifier ( variableNames += IDENTIFIER (COMMA variableNames += IDENTIFIER)* )? SEMICOLON # variableDeclaration;voidvoidvoidvoidvoidvoidANTLR grammar rule: doWhileStatement: attribute? DO loopBody = statement WHILE LPAREN condition = expression RPAREN SEMICOLON;ANTLR grammar rule: * iterationCondition: expression | fullySpecifiedType IDENTIFIER ASSIGN_OP initializer; forStatement: attribute? FOR LPAREN ( emptyStatement | expressionStatement | declarationStatement ) condition = iterationCondition? SEMICOLON incrementer = expression? RPAREN loopBody = statement;visitIdentifier(Identifier node) ANTLR grammar rule: selectionStatement: attribute? IF LPAREN condition = expression RPAREN ifTrue = statement ( ELSE ifFalse = statement )?;visitStructBody(StructBody node) ANTLR grammar rule: switchStatement: attribute? SWITCH LPAREN condition = expression RPAREN compoundStatement;ANTLR grammar rules: whileStatement: attribute? WHILE LPAREN condition = iterationCondition RPAREN loopBody = statement;Methods inherited from class io.github.douira.glsl_transformer.ast.print.ASTPrinterBase
appendToken, compactCommonNewline, compactCommonNewline, defaultResult, emitBreakableSpace, emitCommonNewline, emitExactNewline, emitExactSpace, emitExactWhitespace, emitExtendableSpace, emitLiteral, emitLiteral, emitLiterals, emitLiterals, emitStatementEnd, emitToken, emitTokens, emitType, emitType, emitType, emitType, emitWhitespace, enterContext, finalizePrinting, generateString, getCurrentNode, indent, initialResult, printAST, printAST, printCompact, printIndented, printSimple, replaceToken, setCurrentNode, superNodeTypeResult, unindent, visit, visitCommaSpaced, visitSafe, visitWithSeparatorMethods inherited from class io.github.douira.glsl_transformer.ast.traversal.ASTListenerVisitor
walkAndListenMethods inherited from class io.github.douira.glsl_transformer.ast.traversal.ASTWalker
enterNode, exitNode, walkMethods inherited from class io.github.douira.glsl_transformer.ast.traversal.ASTBaseVisitor
aggregateResult, setContext, startVisit, visitRawMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.github.douira.glsl_transformer.ast.traversal.ASTListener
enterAdditionAssignmentExpression, enterAdditionExpression, enterArrayAccessExpression, enterArraySpecifier, enterAssignmentExpression, enterBinaryExpression, enterBitwiseAndAssignmentExpression, enterBitwiseAndExpression, enterBitwiseOrAssignmentExpression, enterBitwiseOrExpression, enterBitwiseXorAssignmentExpression, enterBitwiseXorExpression, enterBooleanAndExpression, enterBooleanOrExpression, enterBooleanXorExpression, enterCaseStatement, enterConditionExpression, enterDeclaration, enterDeclarationExternalDeclaration, enterDeclarationMember, enterDeclarationStatement, enterDecrementPostfixExpression, enterDivisionAssignmentExpression, enterDivisionExpression, enterDoWhileLoopStatement, enterEqualityExpression, enterExpression, enterExpressionInitializer, enterExpressionStatement, enterExternalDeclaration, enterForLoopStatement, enterFullySpecifiedType, enterFunctionCallExpression, enterFunctionDeclaration, enterFunctionDefinition, enterFunctionParameter, enterFunctionPrototype, enterGreaterThanEqualExpression, enterGreaterThanExpression, enterIncrementPostfixExpression, enterInequalityExpression, enterInitializer, enterInterfaceBlockDeclaration, enterIterationConditionInitializer, enterLayoutDefaults, enterLayoutQualifier, enterLayoutQualifierPart, enterLeftShiftAssignmentExpression, enterLeftShiftExpression, enterLengthAccessExpression, enterLessThanEqualExpression, enterLessThanExpression, enterLiteralExpression, enterLoopStatement, enterManyExpression, enterManyStatement, enterMemberAccessExpression, enterModuloAssignmentExpression, enterModuloExpression, enterMultiplicationAssignmentExpression, enterMultiplicationExpression, enterNamedLayoutQualifierPart, enterNestedInitializer, enterPrecisionDeclaration, enterReferenceExpression, enterRightShiftAssignmentExpression, enterRightShiftExpression, enterSelectionStatement, enterSemiTerminalStatement, enterSequenceExpression, enterStatement, enterStorageQualifier, enterStructBody, enterStructDeclarator, enterStructMember, enterStructSpecifier, enterSubtractionAssignmentExpression, enterSubtractionExpression, enterSwitchStatement, enterTernaryExpression, enterTranslationUnit, enterTypeAndInitDeclaration, enterTypeQualifier, enterTypeQualifierPart, enterTypeReference, enterTypeSpecifier, enterUnaryExpression, enterVariableDeclaration, enterWhileLoopStatement, exitAdditionAssignmentExpression, exitAdditionExpression, exitArrayAccessExpression, exitArraySpecifier, exitAssignmentExpression, exitBinaryExpression, exitBitwiseAndAssignmentExpression, exitBitwiseAndExpression, exitBitwiseNotExpression, exitBitwiseOrAssignmentExpression, exitBitwiseOrExpression, exitBitwiseXorAssignmentExpression, exitBitwiseXorExpression, exitBooleanAndExpression, exitBooleanNotExpression, exitBooleanOrExpression, exitBooleanXorExpression, exitCaseStatement, exitConditionExpression, exitDeclaration, exitDeclarationExternalDeclaration, exitDeclarationMember, exitDeclarationStatement, exitDecrementPrefixExpression, exitDivisionAssignmentExpression, exitDivisionExpression, exitDoWhileLoopStatement, exitEqualityExpression, exitExpression, exitExpressionInitializer, exitExternalDeclaration, exitForLoopStatement, exitFullySpecifiedType, exitFunctionCallExpression, exitFunctionDefinition, exitFunctionParameter, exitFunctionPrototype, exitGreaterThanEqualExpression, exitGreaterThanExpression, exitIdentityExpression, exitIncrementPrefixExpression, exitInequalityExpression, exitInitializer, exitInterfaceBlockDeclaration, exitIterationConditionInitializer, exitLayoutQualifier, exitLayoutQualifierPart, exitLeftShiftAssignmentExpression, exitLeftShiftExpression, exitLessThanEqualExpression, exitLessThanExpression, exitLiteralExpression, exitLoopStatement, exitManyExpression, exitManyStatement, exitMemberAccessExpression, exitModuloAssignmentExpression, exitModuloExpression, exitMultiplicationAssignmentExpression, exitMultiplicationExpression, exitNamedLayoutQualifierPart, exitNegationExpression, exitNestedInitializer, exitPrecisionDeclaration, exitReferenceExpression, exitRightShiftAssignmentExpression, exitRightShiftExpression, exitSelectionStatement, exitSemiTerminalStatement, exitSequenceExpression, exitStatement, exitStorageQualifier, exitStructBody, exitStructDeclarator, exitStructMember, exitStructSpecifier, exitSubtractionAssignmentExpression, exitSubtractionExpression, exitSwitchStatement, exitTernaryExpression, exitTypeAndInitDeclaration, exitTypeQualifier, exitTypeQualifierPart, exitTypeReference, exitUnaryExpression, exitVariableDeclaration, exitWhileLoopStatementMethods inherited from interface io.github.douira.glsl_transformer.ast.traversal.ASTVisitor
visitBinaryExpression, visitBitwiseNotExpression, visitBooleanNotExpression, visitCaseLabelStatement, visitCompoundStatement, visitDeclaration, visitDeclarationExternalDeclaration, visitDeclarationStatement, visitDecrementPostfixExpression, visitDecrementPrefixExpression, visitExpression, visitExpressionInitializer, visitExpressionStatement, visitExternalDeclaration, visitFunctionDeclaration, visitGroupingExpression, visitIdentityExpression, visitIncrementPostfixExpression, visitIncrementPrefixExpression, visitInitializer, visitLayoutDefaults, visitLayoutQualifierPart, visitLengthAccessExpression, visitLoopStatement, visitManyExpression, visitManyStatement, visitNegationExpression, visitReferenceExpression, visitSemiTerminalStatement, visitStatement, visitTerminalExpression, visitTerminalStatement, visitTernaryExpression, visitTranslationUnit, visitTypeQualifierPart, visitTypeReference, visitTypeSpecifier, visitUnaryExpressionMethods inherited from interface io.github.douira.glsl_transformer.ast.traversal.GeneralASTListener
afterEnterEveryNode, beforeExitEveryNode, enterEveryNode, exitEveryNodeMethods inherited from interface io.github.douira.glsl_transformer.ast.traversal.GeneralASTVisitor
aggregateResult, visit, visitChildren, visitChildren, visitChildren, visitChildren, visitSafe, visitThreeChildren, visitTwoChildren
-
Constructor Details
-
ASTPrinter
public ASTPrinter()
-
-
Method Details
-
exitTranslationUnit
-
visitVersionStatement
-
visitFunctionDefinition
-
visitEmptyDeclaration
-
visitPragmaStatement
-
visitExtensionStatement
-
exitLayoutDefaults
-
enterBitwiseNotExpression
-
enterBooleanNotExpression
-
enterDecrementPrefixExpression
-
enterGroupingExpression
-
exitGroupingExpression
-
enterIncrementPrefixExpression
-
enterNegationExpression
-
enterIdentityExpression
-
exitDecrementPostfixExpression
-
exitIncrementPostfixExpression
-
visitFunctionCallExpression
-
visitMemberAccessExpression
-
exitLengthAccessExpression
-
visitConditionExpression
-
visitSequenceExpression
-
visitLiteralExpression
-
visitArrayAccessExpression
-
visitMultiplicationExpression
-
visitDivisionExpression
-
visitModuloExpression
-
visitAdditionExpression
-
visitSubtractionExpression
-
visitLeftShiftExpression
-
visitRightShiftExpression
-
visitLessThanExpression
-
visitGreaterThanExpression
-
visitLessThanEqualExpression
-
visitGreaterThanEqualExpression
-
visitEqualityExpression
-
visitInequalityExpression
-
visitBitwiseAndExpression
-
visitBitwiseXorExpression
-
visitBitwiseOrExpression
-
visitBooleanAndExpression
-
visitBooleanXorExpression
-
visitBooleanOrExpression
-
visitAssignmentExpression
-
visitMultiplicationAssignmentExpression
-
visitDivisionAssignmentExpression
-
visitModuloAssignmentExpression
-
visitAdditionAssignmentExpression
-
visitSubtractionAssignmentExpression
-
visitLeftShiftAssignmentExpression
-
visitRightShiftAssignmentExpression
-
visitBitwiseAndAssignmentExpression
-
visitBitwiseXorAssignmentExpression
-
visitBitwiseOrAssignmentExpression
-
visitEmptyStatement
-
enterCompoundStatement
ANTLR grammar rule: compoundStatement: LBRACE statement* RBRACE; -
exitCompoundStatement
-
exitExpressionStatement
-
visitSelectionStatement
ANTLR grammar rule: selectionStatement: attribute? IF LPAREN condition = expression RPAREN ifTrue = statement ( ELSE ifFalse = statement )?; -
visitSwitchStatement
ANTLR grammar rule: switchStatement: attribute? SWITCH LPAREN condition = expression RPAREN compoundStatement; -
enterCaseLabelStatement
-
exitCaseLabelStatement
-
visitCaseStatement
-
visitDefaultStatement
-
visitForLoopStatement
ANTLR grammar rule: * iterationCondition: expression | fullySpecifiedType IDENTIFIER ASSIGN_OP initializer; forStatement: attribute? FOR LPAREN ( emptyStatement | expressionStatement | declarationStatement ) condition = iterationCondition? SEMICOLON incrementer = expression? RPAREN loopBody = statement; -
visitWhileLoopStatement
ANTLR grammar rules: whileStatement: attribute? WHILE LPAREN condition = iterationCondition RPAREN loopBody = statement; -
visitDoWhileLoopStatement
ANTLR grammar rule: doWhileStatement: attribute? DO loopBody = statement WHILE LPAREN condition = expression RPAREN SEMICOLON; -
visitContinueStatement
-
visitBreakStatement
-
visitReturnStatement
-
visitDiscardStatement
-
visitDemoteStatement
-
visitDeclarationMember
-
visitFunctionPrototype
-
visitFunctionParameter
-
exitFunctionDeclaration
ANTLR grammar rule: declaration: functionPrototype SEMICOLON # functionDeclaration | fullySpecifiedType ( declarationMembers += declarationMember ( COMMA declarationMembers += declarationMember )* )? SEMICOLON # typeAndInitDeclaration | PRECISION precisionQualifier typeSpecifier SEMICOLON # precisionDeclaration | typeQualifier blockName = IDENTIFIER structBody ( variableName = IDENTIFIER arraySpecifier? )? SEMICOLON # interfaceBlockDeclaration | typeQualifier ( variableNames += IDENTIFIER (COMMA variableNames += IDENTIFIER)* )? SEMICOLON # variableDeclaration; -
visitInterfaceBlockDeclaration
-
visitPrecisionDeclaration
-
visitTypeAndInitDeclaration
-
visitVariableDeclaration
-
visitNestedInitializer
-
visitInterpolationQualifier
-
visitInvariantQualifier
-
visitLayoutQualifier
-
visitNamedLayoutQualifierPart
-
visitPreciseQualifier
-
visitPrecisionQualifier
-
visitStorageQualifier
-
visitTypeQualifier
-
visitArraySpecifier
-
exitTypeSpecifier
-
visitBuiltinFixedTypeSpecifier
-
visitBuiltinNumericTypeSpecifier
-
visitStructBody
-
visitStructDeclarator
-
visitStructMember
-
visitStructSpecifier
-
visitFullySpecifiedType
-
visitIterationConditionInitializer
-
visitIdentifier
-