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>, CAstRewriter.Rewrite, CAstRewriter.RewriteContext<K extends CAstRewriter.CopyKey>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,
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)
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, copyFlow, copySource, copyTypes, rewrite, rewritepublic AstLoopUnwinder(CAst Ast, boolean recursive)
public AstLoopUnwinder(CAst Ast, boolean recursive, int unwindFactor)
public CAstEntity translate(CAstEntity original)
protected CAstNode flowOutTo(Map nodeMap, CAstNode oldSource, 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, Map<Pair<CAstNode,AstLoopUnwinder.UnwindKey>,CAstNode> nodeMap)
CAstRewritercopyNodes in class CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>