Class ReplaceTerminals

All Implemented Interfaces:
io.github.douira.glsl_transformer.GLSLParserListener, ParseTreeListener

public class ReplaceTerminals extends SearchTerminals
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

    Constructors
    Constructor
    Description
    ReplaceTerminals(int targetRule)
    Creates a new empty terminal node replacement transformation.
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    void
    addReplacementExpression(String needle, String expressionContent)
    Adds a replacement target that replaces matching terminal nodes with new expression nodes parsed from the given string.
    void
    addReplacementTerminal(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, visitTerminal

    Methods inherited from class io.github.douira.glsl_transformer.transform.WalkPhase

    afterWalk, beforeWalk, isActiveAfterWalk, isActiveAtWalk, isActiveBeforeWalk

    Methods 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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 node
      parseMethod - The parser method to create the new node with
    • addReplacementExpression

      public void addReplacementExpression(String needle, String expressionContent)
      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

      public void addReplacementTerminal(String needle, String terminalContent)
      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