public abstract class CAstRewriterExt extends com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
CAstRewriter which allows adding or deleting control flow edges, and keeps track of
the current entity.
TODO: This class is an unholy mess. It should be restructured considerably.| Modifier and Type | Class and Description |
|---|---|
protected static class |
CAstRewriterExt.Edge
A control flow edge to be added to the CFG.
|
com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey<Self extends com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey>, com.ibm.wala.cast.tree.rewrite.CAstRewriter.Rewrite, com.ibm.wala.cast.tree.rewrite.CAstRewriter.RewriteContext<K extends com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey>| Constructor and Description |
|---|
CAstRewriterExt(com.ibm.wala.cast.tree.CAst Ast,
boolean recursive,
NodePos rootContext) |
| Modifier and Type | Method and Description |
|---|---|
void |
addEntity(com.ibm.wala.cast.tree.CAstNode anchor,
com.ibm.wala.cast.tree.CAstEntity entity) |
com.ibm.wala.cast.tree.CAstNode |
addFlow(com.ibm.wala.cast.tree.CAstNode node,
Object label,
com.ibm.wala.cast.tree.CAstNode target,
com.ibm.wala.cast.tree.CAstControlFlowMap flow) |
com.ibm.wala.cast.tree.CAstNode |
addNode(com.ibm.wala.cast.tree.CAstNode node,
com.ibm.wala.cast.tree.CAstControlFlowMap flow) |
protected Map<com.ibm.wala.cast.tree.CAstNode,Collection<com.ibm.wala.cast.tree.CAstEntity>> |
copyChildren(com.ibm.wala.cast.tree.CAstNode root,
Map<com.ibm.wala.util.collections.Pair<com.ibm.wala.cast.tree.CAstNode,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>,com.ibm.wala.cast.tree.CAstNode> nodeMap,
Map<com.ibm.wala.cast.tree.CAstNode,Collection<com.ibm.wala.cast.tree.CAstEntity>> children) |
protected com.ibm.wala.cast.tree.CAstControlFlowMap |
copyFlow(Map<com.ibm.wala.util.collections.Pair<com.ibm.wala.cast.tree.CAstNode,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>,com.ibm.wala.cast.tree.CAstNode> nodeMap,
com.ibm.wala.cast.tree.CAstControlFlowMap orig,
com.ibm.wala.cast.tree.CAstSourcePositionMap newSrc) |
void |
deleteFlow(com.ibm.wala.cast.tree.CAstNode node,
com.ibm.wala.cast.tree.CAstEntity entity) |
protected void |
enterEntity(com.ibm.wala.cast.tree.CAstEntity entity) |
protected com.ibm.wala.cast.tree.CAstNode |
flowOutTo(Map<com.ibm.wala.util.collections.Pair<com.ibm.wala.cast.tree.CAstNode,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>,com.ibm.wala.cast.tree.CAstNode> nodeMap,
com.ibm.wala.cast.tree.CAstNode oldSource,
Object label,
com.ibm.wala.cast.tree.CAstNode oldTarget,
com.ibm.wala.cast.tree.CAstControlFlowMap orig,
com.ibm.wala.cast.tree.CAstSourcePositionMap src) |
com.ibm.wala.cast.tree.CAstEntity |
getCurrentEntity() |
Iterable<com.ibm.wala.cast.tree.CAstEntity> |
getEnclosingEntities() |
protected boolean |
isFlowDeleted(com.ibm.wala.cast.tree.CAstNode node,
com.ibm.wala.cast.tree.CAstEntity entity) |
protected void |
leaveEntity(com.ibm.wala.cast.tree.CAstEntity entity) |
com.ibm.wala.cast.tree.CAstEntity |
rewrite(com.ibm.wala.cast.tree.CAstEntity root) |
public CAstRewriterExt(com.ibm.wala.cast.tree.CAst Ast,
boolean recursive,
NodePos rootContext)
public com.ibm.wala.cast.tree.CAstNode addNode(com.ibm.wala.cast.tree.CAstNode node,
com.ibm.wala.cast.tree.CAstControlFlowMap flow)
public com.ibm.wala.cast.tree.CAstNode addFlow(com.ibm.wala.cast.tree.CAstNode node,
Object label,
com.ibm.wala.cast.tree.CAstNode target,
com.ibm.wala.cast.tree.CAstControlFlowMap flow)
public void deleteFlow(com.ibm.wala.cast.tree.CAstNode node,
com.ibm.wala.cast.tree.CAstEntity entity)
protected boolean isFlowDeleted(com.ibm.wala.cast.tree.CAstNode node,
com.ibm.wala.cast.tree.CAstEntity entity)
public com.ibm.wala.cast.tree.CAstEntity getCurrentEntity()
public Iterable<com.ibm.wala.cast.tree.CAstEntity> getEnclosingEntities()
public void addEntity(com.ibm.wala.cast.tree.CAstNode anchor,
com.ibm.wala.cast.tree.CAstEntity entity)
protected Map<com.ibm.wala.cast.tree.CAstNode,Collection<com.ibm.wala.cast.tree.CAstEntity>> copyChildren(com.ibm.wala.cast.tree.CAstNode root, Map<com.ibm.wala.util.collections.Pair<com.ibm.wala.cast.tree.CAstNode,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>,com.ibm.wala.cast.tree.CAstNode> nodeMap, Map<com.ibm.wala.cast.tree.CAstNode,Collection<com.ibm.wala.cast.tree.CAstEntity>> children)
copyChildren in class com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>protected com.ibm.wala.cast.tree.CAstNode flowOutTo(Map<com.ibm.wala.util.collections.Pair<com.ibm.wala.cast.tree.CAstNode,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>,com.ibm.wala.cast.tree.CAstNode> nodeMap, com.ibm.wala.cast.tree.CAstNode oldSource, Object label, com.ibm.wala.cast.tree.CAstNode oldTarget, com.ibm.wala.cast.tree.CAstControlFlowMap orig, com.ibm.wala.cast.tree.CAstSourcePositionMap src)
flowOutTo in class com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>protected com.ibm.wala.cast.tree.CAstControlFlowMap copyFlow(Map<com.ibm.wala.util.collections.Pair<com.ibm.wala.cast.tree.CAstNode,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>,com.ibm.wala.cast.tree.CAstNode> nodeMap, com.ibm.wala.cast.tree.CAstControlFlowMap orig, com.ibm.wala.cast.tree.CAstSourcePositionMap newSrc)
copyFlow in class com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>public com.ibm.wala.cast.tree.CAstEntity rewrite(com.ibm.wala.cast.tree.CAstEntity root)
rewrite in class com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>protected void enterEntity(com.ibm.wala.cast.tree.CAstEntity entity)
protected void leaveEntity(com.ibm.wala.cast.tree.CAstEntity entity)
Copyright © 2017. All rights reserved.