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

public abstract class DepthFirstTraversalRegexASTVisitor extends RegexASTVisitor
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))