Class CAstRewriterExt
- java.lang.Object
-
- com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
-
- com.ibm.wala.cast.js.ipa.callgraph.correlations.extraction.CAstRewriterExt
-
- Direct Known Subclasses:
ClosureExtractor
public abstract class CAstRewriterExt extends com.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
Extension ofCAstRewriterwhich 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classCAstRewriterExt.EdgeA control flow edge to be added to the CFG.-
Nested classes/interfaces inherited from class com.ibm.wala.cast.tree.rewrite.CAstRewriter
com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey<Self extends com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey<Self>>, 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<K>>
-
-
Constructor Summary
Constructors Constructor Description CAstRewriterExt(com.ibm.wala.cast.tree.CAst Ast, boolean recursive, NodePos rootContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEntity(com.ibm.wala.cast.tree.CAstNode anchor, com.ibm.wala.cast.tree.CAstEntity entity)com.ibm.wala.cast.tree.CAstNodeaddFlow(com.ibm.wala.cast.tree.CAstNode node, java.lang.Object label, com.ibm.wala.cast.tree.CAstNode target, com.ibm.wala.cast.tree.CAstControlFlowMap flow)com.ibm.wala.cast.tree.CAstNodeaddNode(com.ibm.wala.cast.tree.CAstNode node, com.ibm.wala.cast.tree.CAstControlFlowMap flow)protected java.util.Map<com.ibm.wala.cast.tree.CAstNode,java.util.Collection<com.ibm.wala.cast.tree.CAstEntity>>copyChildren(com.ibm.wala.cast.tree.CAstNode root, java.util.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, java.util.Map<com.ibm.wala.cast.tree.CAstNode,java.util.Collection<com.ibm.wala.cast.tree.CAstEntity>> children)protected com.ibm.wala.cast.tree.CAstControlFlowMapcopyFlow(java.util.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)voiddeleteFlow(com.ibm.wala.cast.tree.CAstNode node, com.ibm.wala.cast.tree.CAstEntity entity)protected voidenterEntity(com.ibm.wala.cast.tree.CAstEntity entity)protected com.ibm.wala.cast.tree.CAstNodeflowOutTo(java.util.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, java.lang.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.CAstEntitygetCurrentEntity()java.lang.Iterable<com.ibm.wala.cast.tree.CAstEntity>getEnclosingEntities()protected booleanisFlowDeleted(com.ibm.wala.cast.tree.CAstNode node, com.ibm.wala.cast.tree.CAstEntity entity)protected voidleaveEntity()com.ibm.wala.cast.tree.CAstEntityrewrite(com.ibm.wala.cast.tree.CAstEntity root)
-
-
-
Constructor Detail
-
CAstRewriterExt
public CAstRewriterExt(com.ibm.wala.cast.tree.CAst Ast, boolean recursive, NodePos rootContext)
-
-
Method Detail
-
addNode
public com.ibm.wala.cast.tree.CAstNode addNode(com.ibm.wala.cast.tree.CAstNode node, com.ibm.wala.cast.tree.CAstControlFlowMap flow)
-
addFlow
public com.ibm.wala.cast.tree.CAstNode addFlow(com.ibm.wala.cast.tree.CAstNode node, java.lang.Object label, com.ibm.wala.cast.tree.CAstNode target, com.ibm.wala.cast.tree.CAstControlFlowMap flow)
-
deleteFlow
public void deleteFlow(com.ibm.wala.cast.tree.CAstNode node, com.ibm.wala.cast.tree.CAstEntity entity)
-
isFlowDeleted
protected boolean isFlowDeleted(com.ibm.wala.cast.tree.CAstNode node, com.ibm.wala.cast.tree.CAstEntity entity)
-
getCurrentEntity
public com.ibm.wala.cast.tree.CAstEntity getCurrentEntity()
-
getEnclosingEntities
public java.lang.Iterable<com.ibm.wala.cast.tree.CAstEntity> getEnclosingEntities()
-
addEntity
public void addEntity(com.ibm.wala.cast.tree.CAstNode anchor, com.ibm.wala.cast.tree.CAstEntity entity)
-
copyChildren
protected java.util.Map<com.ibm.wala.cast.tree.CAstNode,java.util.Collection<com.ibm.wala.cast.tree.CAstEntity>> copyChildren(com.ibm.wala.cast.tree.CAstNode root, java.util.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, java.util.Map<com.ibm.wala.cast.tree.CAstNode,java.util.Collection<com.ibm.wala.cast.tree.CAstEntity>> children)- Overrides:
copyChildrenin classcom.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
-
flowOutTo
protected com.ibm.wala.cast.tree.CAstNode flowOutTo(java.util.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, java.lang.Object label, com.ibm.wala.cast.tree.CAstNode oldTarget, com.ibm.wala.cast.tree.CAstControlFlowMap orig, com.ibm.wala.cast.tree.CAstSourcePositionMap src)- Overrides:
flowOutToin classcom.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
-
copyFlow
protected com.ibm.wala.cast.tree.CAstControlFlowMap copyFlow(java.util.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)- Overrides:
copyFlowin classcom.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
-
rewrite
public com.ibm.wala.cast.tree.CAstEntity rewrite(com.ibm.wala.cast.tree.CAstEntity root)
- Overrides:
rewritein classcom.ibm.wala.cast.tree.rewrite.CAstRewriter<NodePos,com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey>
-
enterEntity
protected void enterEntity(com.ibm.wala.cast.tree.CAstEntity entity)
-
leaveEntity
protected void leaveEntity()
-
-