Package de.fraunhofer.aisec.cpg.helpers
Class SubgraphWalker.IterativeGraphWalker
java.lang.Object
de.fraunhofer.aisec.cpg.helpers.SubgraphWalker.IterativeGraphWalker
- Enclosing class:
- SubgraphWalker
public static class SubgraphWalker.IterativeGraphWalker
extends java.lang.Object
-
Constructor Summary
Constructors Constructor Description IterativeGraphWalker() -
Method Summary
Modifier and Type Method Description voidclearCallbacks()java.util.Deque<de.fraunhofer.aisec.cpg.graph.Node>getBacklog()java.util.Deque<de.fraunhofer.aisec.cpg.graph.Node>getTodo()voiditerate(de.fraunhofer.aisec.cpg.graph.Node root)The core iterative AST traversal algorithm: In a depth-first way we descend into the tree, providing callbacks for graph modification.voidregisterOnNodeVisit(java.util.function.Consumer<de.fraunhofer.aisec.cpg.graph.Node> callback)voidregisterOnScopeExit(java.util.function.Consumer<de.fraunhofer.aisec.cpg.graph.Node> callback)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
IterativeGraphWalker
public IterativeGraphWalker()
-
-
Method Details
-
iterate
public void iterate(de.fraunhofer.aisec.cpg.graph.Node root)The core iterative AST traversal algorithm: In a depth-first way we descend into the tree, providing callbacks for graph modification.- Parameters:
root- The node where we should start
-
registerOnNodeVisit
public void registerOnNodeVisit(java.util.function.Consumer<de.fraunhofer.aisec.cpg.graph.Node> callback) -
registerOnScopeExit
public void registerOnScopeExit(java.util.function.Consumer<de.fraunhofer.aisec.cpg.graph.Node> callback) -
clearCallbacks
public void clearCallbacks() -
getTodo
public java.util.Deque<de.fraunhofer.aisec.cpg.graph.Node> getTodo() -
getBacklog
public java.util.Deque<de.fraunhofer.aisec.cpg.graph.Node> getBacklog()
-