Class CAstControlFlowRecorder
java.lang.Object
com.ibm.wala.cast.tree.impl.CAstControlFlowRecorder
- All Implemented Interfaces:
CAstControlFlowMap
An implementation of a CAstControlFlowMap that is designed to be used by producers of CAPA asts.
In addition to implementing the control flow map, it additionally allows clients to record
control flow mappings in terms of some arbitrary type object that are then mapped to CAstNodes by
the client. These objects can be anything, but one common use is that some type of parse tree is
walked to build a capa ast, with control flow being recorded in terms of parse tree nodes and
then ast nodes being mapped to parse tree nodes.
Note that, at present, support for mapping control flow on ast nodes directly is clunky. It is necessary to establish that an ast nodes maps to itself, i.e. call xx.map(node, node).
- Author:
- Julian Dolby (dolby@us.ibm.com)
-
Field Summary
Fields inherited from interface com.ibm.wala.cast.tree.CAstControlFlowMap
EXCEPTION_TO_EXIT, SWITCH_DEFAULT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a control-flow edge from the `from' node to the `to' node with the (possibly null) label `label'.void
addAll
(CAstControlFlowMap other) Returns an iterator of all CAstNodes for which this map contains control flow mapping information.Return a collection of control-flow ast nodes that have this one as a possible target.Return the target ast node of the control-flow instruction denoted by from with respect to the given label.getTargetLabels
(CAstNode from) Return a collection of all labels for which the control-flow ast nodefrom
has a target.boolean
void
Establish a mapping between some object `node' and the ast node `ast'.toString()
-
Constructor Details
-
CAstControlFlowRecorder
-
-
Method Details
-
getTarget
Description copied from interface:CAstControlFlowMap
Return the target ast node of the control-flow instruction denoted by from with respect to the given label.- Specified by:
getTarget
in interfaceCAstControlFlowMap
-
getTargetLabels
Description copied from interface:CAstControlFlowMap
Return a collection of all labels for which the control-flow ast nodefrom
has a target.- Specified by:
getTargetLabels
in interfaceCAstControlFlowMap
-
getSourceNodes
Description copied from interface:CAstControlFlowMap
Return a collection of control-flow ast nodes that have this one as a possible target.- Specified by:
getSourceNodes
in interfaceCAstControlFlowMap
-
getMappedNodes
Description copied from interface:CAstControlFlowMap
Returns an iterator of all CAstNodes for which this map contains control flow mapping information.- Specified by:
getMappedNodes
in interfaceCAstControlFlowMap
-
add
-
map
-
addAll
-
isMapped
-
toString
-