Class SearchTerminalsDynamic<T extends JobParameters>
java.lang.Object
io.github.douira.glsl_transformer.GLSLParserBaseListener
io.github.douira.glsl_transformer.transform.TransformationPhase<T>
io.github.douira.glsl_transformer.transform.WalkPhase<T>
io.github.douira.glsl_transformer.core.SearchTerminals<T>
io.github.douira.glsl_transformer.core.SearchTerminalsImpl<T>
io.github.douira.glsl_transformer.core.SearchTerminalsDynamic<T>
- All Implemented Interfaces:
io.github.douira.glsl_transformer.GLSLParserListener,LifecycleUser<T>,PartialParseTreeListener,ParseTreeListener
public abstract class SearchTerminalsDynamic<T extends JobParameters>
extends SearchTerminalsImpl<T>
This class extends the search terminals implementation by adding at method
getTargetsDynamic() that returns the list of targets to search for
dynamically but is only called if the targets are every actually needed. The
targets are generated each time the phase is run.-
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.SearchTerminalsImpl
targetsFields inherited from class io.github.douira.glsl_transformer.core.SearchTerminals
ANY_TYPE, IDENTIFIER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbeforeWalk(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) This method is called before the tree walk is performed.Returns the collection of targets to search for.protected abstract Collection<HandlerTarget<T>>Returns the collection of targets to search for.protected booleanDetermines if this phase'sWalkPhase.beforeWalk(TranslationUnitContext)should be run.Methods inherited from class io.github.douira.glsl_transformer.core.SearchTerminalsImpl
addReplacement, addReplacementExpression, addReplacementTerminal, addTarget, getTerminalTokenType, setTerminalTokenType, withReplacement, withReplacementExpression, withReplacementTerminalMethods inherited from class io.github.douira.glsl_transformer.core.SearchTerminals
allowInexactMatches, findNeedle, visitTerminalMethods inherited from class io.github.douira.glsl_transformer.transform.WalkPhase
afterWalk, canWalk, checkBeforeWalk, isActiveAfterWalk, isActiveAtWalk, runAfterWalkMethods inherited from class io.github.douira.glsl_transformer.transform.TransformationPhase
compilePath, compilePattern, createLocalRoot, findAndMatch, getPlanner, getSiblings, injectDefine, injectExternalDeclaration, injectExternalDeclarations, injectNode, injectNodes, injectNodes, isActive, isInitialized, removeNode, replaceNode, replaceNode, setInitialized, setPlanner, walkFinishedMethods inherited from class io.github.douira.glsl_transformer.GLSLParserBaseListener
enterAdditiveExpression, enterArrayAccessExpression, enterArraySpecifier, enterArraySpecifierSegment, enterAssignmentExpression, enterAtomicUnitType, enterAttribute, enterBitwiseAndExpression, enterBitwiseExclusiveOrExpression, enterBitwiseInclusiveOrExpression, enterBooleanType, enterBooleanVectorType, enterBreakStatement, enterBuiltinType, enterCallParameterList, enterCompoundStatement, enterConditionalExpression, enterContinueStatement, enterDeclarationMember, enterDeclarationStatement, enterDefaultCaseLabel, enterDemoteStatement, enterDiscardStatement, enterDoWhileStatement, enterEmptyDeclaration, enterEmptyStatement, enterEqualityExpression, enterEveryRule, enterExpressionStatement, enterExtensionStatement, enterExternalDeclaration, enterFloatMatrixType, enterFloatType, enterFloatVectorType, enterForStatement, enterFullySpecifiedType, enterFunctionCall, enterFunctionCallExpression, enterFunctionDeclaration, enterFunctionDefinition, enterFunctionHeader, enterFunctionIdentifier, enterFunctionParameterList, enterFunctionPrototype, enterGroupingExpression, enterImageType, enterInitDeclaratorList, enterInitializer, enterIntegerType, enterIntegerVectorType, enterInterfaceBlockDeclaration, enterInterpolationQualifier, enterInvariantQualifier, enterIterationCondition, enterLayoutDefaults, enterLayoutQualifier, enterLiteralExpression, enterLogicalAndExpression, enterLogicalExclusiveOrExpression, enterLogicalInclusiveOrExpression, enterMemberAccessExpression, enterMethodCall, enterMethodCallExpression, enterMultiplicativeExpression, enterNamedLayoutQualifier, enterParameterDeclaration, enterParameterDeclarator, enterPostfixExpression, enterPragmaStatement, enterPreciseQualifier, enterPrecisionDeclaration, enterPrecisionQualifier, enterPrefixExpression, enterReferencedType, enterReferenceExpression, enterRelationalExpression, enterReturnStatement, enterSamplerType, enterSelectionStatement, enterSequenceExpression, enterSharedLayoutQualifier, enterShiftExpression, enterSingleAttribute, enterStatement, enterStorageQualifier, enterStructBody, enterStructDeclarator, enterStructMember, enterStructSpecifier, enterStructSpecifierType, enterSwitchStatement, enterTranslationUnit, enterTypeAndInitDeclaration, enterTypeNameList, enterTypeQualifier, enterTypeSpecifier, enterValuedCaseLabel, enterVariableDeclaration, enterVariableIdentifier, enterVersionStatement, enterVoidType, enterWhileStatement, exitAdditiveExpression, exitArrayAccessExpression, exitArraySpecifier, exitArraySpecifierSegment, exitAssignmentExpression, exitAtomicUnitType, exitAttribute, exitBitwiseAndExpression, exitBitwiseExclusiveOrExpression, exitBitwiseInclusiveOrExpression, exitBooleanType, exitBooleanVectorType, exitBreakStatement, exitBuiltinType, exitCallParameterList, exitCompoundStatement, exitConditionalExpression, exitContinueStatement, exitDeclarationMember, exitDeclarationStatement, exitDefaultCaseLabel, exitDemoteStatement, exitDiscardStatement, exitDoWhileStatement, exitEmptyDeclaration, exitEmptyStatement, exitEqualityExpression, exitEveryRule, exitExpressionStatement, exitExtensionStatement, exitExternalDeclaration, exitFloatMatrixType, exitFloatType, exitFloatVectorType, exitForStatement, exitFullySpecifiedType, exitFunctionCall, exitFunctionCallExpression, exitFunctionDeclaration, exitFunctionDefinition, exitFunctionHeader, exitFunctionIdentifier, exitFunctionParameterList, exitFunctionPrototype, exitGroupingExpression, exitImageType, exitInitDeclaratorList, exitInitializer, exitIntegerType, exitIntegerVectorType, exitInterfaceBlockDeclaration, exitInterpolationQualifier, exitInvariantQualifier, exitIterationCondition, exitLayoutDefaults, exitLayoutQualifier, exitLiteralExpression, exitLogicalAndExpression, exitLogicalExclusiveOrExpression, exitLogicalInclusiveOrExpression, exitMemberAccessExpression, exitMethodCall, exitMethodCallExpression, exitMultiplicativeExpression, exitNamedLayoutQualifier, exitParameterDeclaration, exitParameterDeclarator, exitPostfixExpression, exitPragmaStatement, exitPreciseQualifier, exitPrecisionDeclaration, exitPrecisionQualifier, exitPrefixExpression, exitReferencedType, exitReferenceExpression, exitRelationalExpression, exitReturnStatement, exitSamplerType, exitSelectionStatement, exitSequenceExpression, exitSharedLayoutQualifier, exitShiftExpression, exitSingleAttribute, exitStatement, exitStorageQualifier, exitStructBody, exitStructDeclarator, exitStructMember, exitStructSpecifier, exitStructSpecifierType, exitSwitchStatement, exitTranslationUnit, exitTypeAndInitDeclaration, exitTypeNameList, exitTypeQualifier, exitTypeSpecifier, exitValuedCaseLabel, exitVariableDeclaration, exitVariableIdentifier, exitVersionStatement, exitVoidType, exitWhileStatement, visitErrorNodeMethods 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, initOnce, resetStateMethods inherited from interface org.antlr.v4.runtime.tree.ParseTreeListener
enterEveryRule, exitEveryRule, visitErrorNodeMethods inherited from interface io.github.douira.glsl_transformer.traversal.PartialParseTreeListener
isDeepEnough, isFinished
-
Constructor Details
-
SearchTerminalsDynamic
public SearchTerminalsDynamic()Creates a new dynamic search terminals phase.
-
-
Method Details
-
getTargetsDynamic
Returns the collection of targets to search for. This method is called at most once per run of this phase.- Returns:
- The targets to search for
- See Also:
-
beforeWalk
protected void beforeWalk(io.github.douira.glsl_transformer.GLSLParser.TranslationUnitContext ctx) Description copied from class:WalkPhaseThis method is called before the tree walk is performed.- Overrides:
beforeWalkin classWalkPhase<T extends JobParameters>- Parameters:
ctx- The root translation unit node
-
isActiveBeforeWalk
protected boolean isActiveBeforeWalk()Description copied from class:WalkPhaseDetermines if this phase'sWalkPhase.beforeWalk(TranslationUnitContext)should be run.- Overrides:
isActiveBeforeWalkin classWalkPhase<T extends JobParameters>- Returns:
- If it should be run
-
getTargets
Description copied from class:SearchTerminalsReturns the collection of targets to search for. This method should be efficient as it's called for every visited terminal node.- Overrides:
getTargetsin classSearchTerminalsImpl<T extends JobParameters>- Returns:
- The targets to search for
-