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, rewrite
public 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)
CAstRewriter
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.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)
CAstRewriter
copyNodes
in class CAstRewriter<CAstRewriter.RewriteContext<AstLoopUnwinder.UnwindKey>,AstLoopUnwinder.UnwindKey>