public class AstLoopUnwinder extends CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>
| Modifier and Type | Class and Description |
|---|---|
static class |
AstLoopUnwinder.UnwindKey |
CAstRewriter.CopyKey<Self extends CAstRewriter.CopyKey<Self>>, CAstRewriter.Rewrite, CAstRewriter.RewriteContext<K extends CAstRewriter.CopyKey<K>>Ast, DEBUG, recursive, rootContext| Constructor and Description |
|---|
AstLoopUnwinder(CAst Ast,
boolean recursive) |
AstLoopUnwinder(CAst Ast,
boolean recursive,
int unwindFactor) |
| Modifier and Type | Method and Description |
|---|---|
protected CAstNode |
copyNodes(CAstNode n,
CAstControlFlowMap cfg,
CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey> c,
java.util.Map<com.ibm.wala.util.collections.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(java.util.Map<com.ibm.wala.util.collections.Pair<CAstNode,AstLoopUnwinder.UnwindKey>,CAstNode> nodeMap,
CAstNode oldSource,
java.lang.Object label,
CAstNode oldTarget,
CAstControlFlowMap orig,
CAstSourcePositionMap src)
in
CAstRewriter.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) |
copyChildren, copyChildrenArray, copyChildrenArrayAndTargets, copyFlow, copySource, copySubtreesIntoNewNode, copySubtreesIntoNewNode, copyTypes, rewrite, rewritepublic AstLoopUnwinder(CAst Ast, boolean recursive)
public AstLoopUnwinder(CAst Ast, boolean recursive, int unwindFactor)
public CAstEntity translate(CAstEntity original)
protected CAstNode flowOutTo(java.util.Map<com.ibm.wala.util.collections.Pair<CAstNode,AstLoopUnwinder.UnwindKey>,CAstNode> nodeMap, CAstNode oldSource, java.lang.Object label, CAstNode oldTarget, CAstControlFlowMap orig, CAstSourcePositionMap src)
CAstRewriterCAstRewriter.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.flowOutTo in class CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>protected CAstNode copyNodes(CAstNode n, CAstControlFlowMap cfg, CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey> c, java.util.Map<com.ibm.wala.util.collections.Pair<CAstNode,AstLoopUnwinder.UnwindKey>,CAstNode> nodeMap)
CAstRewritercopyNodes in class CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>