Package com.ibm.wala.cast.tree.rewrite
Class AstLoopUnwinder
- java.lang.Object
-
- com.ibm.wala.cast.tree.rewrite.CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>
-
- com.ibm.wala.cast.tree.rewrite.AstLoopUnwinder
-
public class AstLoopUnwinder extends CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AstLoopUnwinder.UnwindKey
-
Nested classes/interfaces inherited from class com.ibm.wala.cast.tree.rewrite.CAstRewriter
CAstRewriter.CopyKey<Self extends CAstRewriter.CopyKey>, CAstRewriter.Rewrite, CAstRewriter.RewriteContext<K extends CAstRewriter.CopyKey>
-
-
Field Summary
-
Fields inherited from class com.ibm.wala.cast.tree.rewrite.CAstRewriter
Ast, DEBUG, recursive, rootContext
-
-
Constructor Summary
Constructors Constructor Description AstLoopUnwinder(CAst Ast, boolean recursive)
AstLoopUnwinder(CAst Ast, boolean recursive, int unwindFactor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected CAstNode
copyNodes(CAstNode n, CAstControlFlowMap cfg, CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey> c, Map<Pair<CAstNode,AstLoopUnwinder.UnwindKey>,CAstNode> nodeMap)
rewrite the CAst rooted at root under some context, returning the node at the root of the rewritten tree.protected CAstNode
flowOutTo(Map nodeMap, CAstNode oldSource, Object label, CAstNode oldTarget, CAstControlFlowMap orig, CAstSourcePositionMap src)
inCAstRewriter.copyFlow(Map, CAstControlFlowMap, CAstSourcePositionMap)
, if the source of some original CFG edge is replicated, but we find no replica for the target, what node should be the target of the CFG edge in the rewritten AST? By default, just uses the original target.CAstEntity
translate(CAstEntity original)
-
Methods inherited from class com.ibm.wala.cast.tree.rewrite.CAstRewriter
copyChildren, copyFlow, copySource, copyTypes, rewrite, rewrite
-
-
-
-
Method Detail
-
translate
public CAstEntity translate(CAstEntity original)
-
flowOutTo
protected CAstNode flowOutTo(Map nodeMap, CAstNode oldSource, Object label, CAstNode oldTarget, CAstControlFlowMap orig, CAstSourcePositionMap src)
Description copied from class:CAstRewriter
inCAstRewriter.copyFlow(Map, CAstControlFlowMap, CAstSourcePositionMap)
, if the source of some original CFG edge is replicated, but we find no replica for the target, what node should be the target of the CFG edge in the rewritten AST? By default, just uses the original target.- Overrides:
flowOutTo
in classCAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>
-
copyNodes
protected CAstNode copyNodes(CAstNode n, CAstControlFlowMap cfg, CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey> c, Map<Pair<CAstNode,AstLoopUnwinder.UnwindKey>,CAstNode> nodeMap)
Description copied from class:CAstRewriter
rewrite the CAst rooted at root under some context, returning the node at the root of the rewritten tree. mutate nodeMap in the process, indicating how (original node, copy key) pairs are mapped to nodes in the rewritten tree.- Specified by:
copyNodes
in classCAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>
-
-