Class DepthFirstTraversalRegexASTVisitor
java.lang.Object
com.oracle.truffle.regex.tregex.parser.ast.visitors.RegexASTVisitor
com.oracle.truffle.regex.tregex.parser.ast.visitors.DepthFirstTraversalRegexASTVisitor
- Direct Known Subclasses:
AddToSetVisitor,ASTDebugDumpVisitor,ASTDotExportVisitor,ASTLaTexExportVisitor,CalcASTPropsVisitor,CopyVisitor,InitIDVisitor,NodeCountVisitor,PreCalcResultVisitor,SetSourceSectionVisitor
AST visitor base class that will visit a given subtree in depth-first order. Whenever all
children of a
RegexASTVisitorIterable node (Group, Sequence,
RegexASTSubtreeRootNode) have been visited,
the corresponding leave-method will be called. Running the visitor is not thread-safe,
since it will store its current state directly in the AST, using the methods of
RegexASTVisitorIterable implemented by Group, Sequence and
RegexASTSubtreeRootNode!
execution example on tree (a(bc(d|e)f)):
visit Group (a(bc(d|e)f))
visit Sequence a(bc(d|e)f)
visit CharacterClass a
visit Group (bc(d|e)f)
visit Sequence bc(d|e)f
visit CharacterClass b
visit CharacterClass c
visit Group (d|e)
visit Sequence d
visit CharacterClass d
leave Sequence d
visit Sequence e
visit CharacterClass e
leave Sequence e
leave Group (d|e)
visit CharacterClass f
leave Sequence bc(d|e)f
leave Group (bc(d|e)f)
leave Sequence a(bc(d|e)f)
leave Group (a(bc(d|e)f))
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddone()protected voidinit(RegexASTNode runRoot) protected booleanprotected booleanprotected voidleave(AtomicGroup atomicGroup) protected voidprotected voidleave(LookAheadAssertion assertion) protected voidleave(LookBehindAssertion assertion) protected voidprotected voidrun(RegexASTNode runRoot) protected voidrunReverse(RegexASTNode runRoot) protected voidvisit(AtomicGroup atomicGroup) protected voidvisit(BackReference backReference) protected voidvisit(CharacterClass characterClass) protected voidprotected voidvisit(LookAheadAssertion assertion) protected voidvisit(LookBehindAssertion assertion) protected voidvisit(PositionAssertion assertion) protected voidprotected voidvisit(SubexpressionCall subexpressionCall) Methods inherited from class com.oracle.truffle.regex.tregex.parser.ast.visitors.RegexASTVisitor
doLeave, doVisit
-
Constructor Details
-
DepthFirstTraversalRegexASTVisitor
public DepthFirstTraversalRegexASTVisitor()
-
-
Method Details
-
run
-
runReverse
-
isForward
protected boolean isForward() -
isReverse
protected boolean isReverse() -
done
protected void done() -
init
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
visit
- Specified by:
visitin classRegexASTVisitor
-
leave
- Specified by:
leavein classRegexASTVisitor
-
leave
- Specified by:
leavein classRegexASTVisitor
-
leave
- Specified by:
leavein classRegexASTVisitor
-
leave
- Specified by:
leavein classRegexASTVisitor
-
leave
- Specified by:
leavein classRegexASTVisitor
-