Class RunPhase<T>
java.lang.Object
io.github.douira.glsl_transformer.GLSLParserBaseListener
io.github.douira.glsl_transformer.transform.TransformationPhase<T>
io.github.douira.glsl_transformer.transform.RunPhase<T>
- All Implemented Interfaces:
io.github.douira.glsl_transformer.GLSLParserListener,LifecycleUser<T>,ParseTreeListener
A run phase simply executes one method when it is executed in a level by the
execution planner. Even though it extends
TransformationPhase, no
listener methods on
it are executed.-
Nested Class Summary
Nested classes/interfaces inherited from class io.github.douira.glsl_transformer.transform.TransformationPhase
TransformationPhase.InjectionPoint -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final booleancheckBeforeWalk(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) Method called by the execution planner before the walk happens.protected abstract voidrun(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) This method is implemented by subclasses to be executed by the phase planner at the right time.protected final voidrunAfterWalk(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) Method called by the execution planner after the walk happens.static <R> RunPhase<R>withInjectExternalDeclarations(TransformationPhase.InjectionPoint location, String... str) Returns a new run phase that injects the given strings as an external declarations at the given location.static <R> RunPhase<R>withInjectNodes(TransformationPhase.InjectionPoint location, ParseTree newNodes) Returns a new run phase that injects the given nodes at the given location.static <R> RunPhase<R>Creates a new run phase that only executes the given runnable function.Methods inherited from class io.github.douira.glsl_transformer.transform.TransformationPhase
compilePath, compilePattern, createLocalRoot, findAndMatch, getPlanner, getSiblings, injectDefine, injectExternalDeclaration, injectExternalDeclarations, injectNode, injectNodes, injectNodes, isActive, removeNode, replaceNode, replaceNode, setPlannerMethods 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, visitTerminalMethods 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.transform.LifecycleUser
getJobParameters, getLexer, getParser, getRootNode, init, resetState
-
Constructor Details
-
RunPhase
public RunPhase()
-
-
Method Details
-
run
protected abstract void run(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) This method is implemented by subclasses to be executed by the phase planner at the right time.- Parameters:
ctx- The root node of the parse tree being transformed
-
checkBeforeWalk
protected final boolean checkBeforeWalk(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) Description copied from class:TransformationPhaseMethod called by the execution planner before the walk happens. The returned boolean determines if the phase is added to the list of phases that are walked on the tree. Returns false by default and implementing classes should overwrite this.- Overrides:
checkBeforeWalkin classTransformationPhase<T>- Parameters:
ctx- The root node- Returns:
trueif the phase should be walked on the tree
-
runAfterWalk
protected final void runAfterWalk(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) Description copied from class:TransformationPhaseMethod called by the execution planner after the walk happens. Does nothing by default.- Overrides:
runAfterWalkin classTransformationPhase<T>- Parameters:
ctx- The root node
-
withInjectNodes
public static <R> RunPhase<R> withInjectNodes(TransformationPhase.InjectionPoint location, ParseTree newNodes) Returns a new run phase that injects the given nodes at the given location.- Type Parameters:
R- The job parameter type- Parameters:
location- The location to inject the nodes atnewNodes- The nodes to inject- Returns:
- The run phase that does only these injections
- See Also:
-
withInjectExternalDeclarations
public static <R> RunPhase<R> withInjectExternalDeclarations(TransformationPhase.InjectionPoint location, String... str) Returns a new run phase that injects the given strings as an external declarations at the given location.- Type Parameters:
R- The job parameter type- Parameters:
location- The location to inject the external declarations atstr- The strings to parse as external declarations- Returns:
- The run phase that does only these injections
- See Also:
-
withRun
Creates a new run phase that only executes the given runnable function. If the function isnull, the generated phase does nothing.- Type Parameters:
R- The job parameter type- Parameters:
run- The runnable to run in the run phase- Returns:
- The generated run phase
-