Class ReplaceTerminals
java.lang.Object
io.github.douira.glsl_transformer.GLSLParserBaseListener
io.github.douira.glsl_transformer.transform.TransformationPhase
io.github.douira.glsl_transformer.transform.WalkPhase
io.github.douira.glsl_transformer.core.SearchTerminals
io.github.douira.glsl_transformer.core.ReplaceTerminals
- All Implemented Interfaces:
io.github.douira.glsl_transformer.GLSLParserListener,ParseTreeListener
Replaces targeted terminals with the registered replacements. This is a thin
wrapper over
SearchTerminals
and
ParsedReplaceTarget.-
Nested Class Summary
Nested classes/interfaces inherited from class io.github.douira.glsl_transformer.transform.TransformationPhase
TransformationPhase.InjectionPoint -
Field Summary
Fields inherited from class io.github.douira.glsl_transformer.core.SearchTerminals
IDENTIFIER, targets -
Constructor Summary
ConstructorsConstructorDescriptionReplaceTerminals(int targetRule) Creates a new empty terminal node replacement transformation. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddReplacement(String needle, String newContent, Function<io.github.douira.glsl_transformer.GLSLParser, ExtendedContext> parseMethod) Adds a replacement target that replaces matching terminal nodes with new nodes parsed from the given string using a specified parser method.voidaddReplacementExpression(String needle, String expressionContent) Adds a replacement target that replaces matching terminal nodes with new expression nodes parsed from the given string.voidaddReplacementTerminal(String needle, String terminalContent) Adds a replacement target that replaces matching terminal nodes with new unparsed string nodes.Methods inherited from class io.github.douira.glsl_transformer.core.SearchTerminals
addTarget, visitTerminalMethods inherited from class io.github.douira.glsl_transformer.transform.WalkPhase
afterWalk, beforeWalk, isActiveAfterWalk, isActiveAtWalk, isActiveBeforeWalkMethods inherited from class io.github.douira.glsl_transformer.transform.TransformationPhase
compilePath, compilePattern, createLocalRoot, findAndMatch, getCollector, getLexer, getParser, getRootNode, getSiblings, init, injectDefine, injectExternalDeclaration, injectNode, injectNodes, isActive, removeNode, replaceNode, replaceNode, setCollectorMethods inherited from class io.github.douira.glsl_transformer.GLSLParserBaseListener
enterAdditiveExpression, enterAndExpression, enterArraySpecifier, enterAssignmentExpression, enterAssignmentOperator, enterAttribute, enterBuiltinTypeSpecifierFixed, enterBuiltinTypeSpecifierParseable, enterCallParameterList, enterCaseLabel, enterCompoundStatement, enterCondition, enterConditionalExpression, enterConstantExpression, enterDeclaration, enterDeclarationMember, enterDeclarationMemberList, enterDeclarationStatement, enterDemoteStatement, enterDoWhileStatement, enterEmptyStatement, enterEqualityExpression, enterEveryRule, enterExclusiveOrExpression, enterExpression, enterExpressionStatement, enterExtensionState, enterExtensionStatement, enterExternalDeclaration, enterForStatement, enterFullySpecifiedType, enterFunctionCall, enterFunctionDefinition, enterFunctionHeader, enterFunctionIdentifier, enterFunctionParameterList, enterFunctionPrototype, enterInclusiveOrExpression, enterInitDeclaratorList, enterInitializer, enterInterpolationQualifier, enterInvariantQualifier, enterJumpStatement, enterLayoutDefaults, enterLayoutModes, enterLayoutQualifier, enterLayoutQualifierId, enterLogicalAndExpression, enterLogicalOrExpression, enterLogicalXorExpression, enterMethodCall, enterMultiplicativeExpression, enterParameterDeclaration, enterParameterDeclarator, enterPostfixExpression, enterPragmaStatement, enterPreciseQualifier, enterPrecisionQualifier, enterPrimaryExpression, enterRelationalExpression, enterSelectionStatement, enterShiftExpression, enterSimpleStatement, enterSingleAttribute, enterStatement, enterStorageQualifier, enterStructDeclaration, enterStructDeclarationList, enterStructDeclarator, enterStructDeclaratorList, enterStructSpecifier, enterSwitchStatement, enterTranslationUnit, enterTypeNameList, enterTypeQualifier, enterTypeSpecifier, enterTypeSpecifierNonarray, enterUnaryExpression, enterUnaryOperator, enterVariableIdentifier, enterVersionStatement, enterWhileStatement, exitAdditiveExpression, exitAndExpression, exitArraySpecifier, exitAssignmentExpression, exitAssignmentOperator, exitAttribute, exitBuiltinTypeSpecifierFixed, exitBuiltinTypeSpecifierParseable, exitCallParameterList, exitCaseLabel, exitCompoundStatement, exitCondition, exitConditionalExpression, exitConstantExpression, exitDeclaration, exitDeclarationMember, exitDeclarationMemberList, exitDeclarationStatement, exitDemoteStatement, exitDoWhileStatement, exitEmptyStatement, exitEqualityExpression, exitEveryRule, exitExclusiveOrExpression, exitExpression, exitExpressionStatement, exitExtensionState, exitExtensionStatement, exitExternalDeclaration, exitForStatement, exitFullySpecifiedType, exitFunctionCall, exitFunctionDefinition, exitFunctionHeader, exitFunctionIdentifier, exitFunctionParameterList, exitFunctionPrototype, exitInclusiveOrExpression, exitInitDeclaratorList, exitInitializer, exitInterpolationQualifier, exitInvariantQualifier, exitJumpStatement, exitLayoutDefaults, exitLayoutModes, exitLayoutQualifier, exitLayoutQualifierId, exitLogicalAndExpression, exitLogicalOrExpression, exitLogicalXorExpression, exitMethodCall, exitMultiplicativeExpression, exitParameterDeclaration, exitParameterDeclarator, exitPostfixExpression, exitPragmaStatement, exitPreciseQualifier, exitPrecisionQualifier, exitPrimaryExpression, exitRelationalExpression, exitSelectionStatement, exitShiftExpression, exitSimpleStatement, exitSingleAttribute, exitStatement, exitStorageQualifier, exitStructDeclaration, exitStructDeclarationList, exitStructDeclarator, exitStructDeclaratorList, exitStructSpecifier, exitSwitchStatement, exitTranslationUnit, exitTypeNameList, exitTypeQualifier, exitTypeSpecifier, exitTypeSpecifierNonarray, exitUnaryExpression, exitUnaryOperator, exitVariableIdentifier, exitVersionStatement, exitWhileStatement, visitErrorNode
-
Constructor Details
-
ReplaceTerminals
public ReplaceTerminals(int targetRule) Creates a new empty terminal node replacement transformation.- Parameters:
targetRule- The type of the token to search for
-
-
Method Details
-
addReplacement
public void addReplacement(String needle, String newContent, Function<io.github.douira.glsl_transformer.GLSLParser, ExtendedContext> parseMethod) Adds a replacement target that replaces matching terminal nodes with new nodes parsed from the given string using a specified parser method.- Parameters:
needle- The needle (search string)newContent- The new content to parse into a nodeparseMethod- The parser method to create the new node with
-
addReplacementExpression
Adds a replacement target that replaces matching terminal nodes with new expression nodes parsed from the given string.- Parameters:
needle- The needle (search string)expressionContent- The new content to parse into an expression
-
addReplacementTerminal
Adds a replacement target that replaces matching terminal nodes with new unparsed string nodes.- Parameters:
needle- The needle (search string)terminalContent- The new terminal content to insert as a string node
-