public class ArgExpandOperator<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> extends java.lang.Object implements ExpandOperator<CfaNodeT,CfaEdgeT,SignatureT>
ExpandOperator
and wraps the output with an ARG node.| Modifier and Type | Field and Description |
|---|---|
protected ArgAbstractStateFactory |
argAbstractStateFactory |
protected ExpandOperator<CfaNodeT,CfaEdgeT,SignatureT> |
wrappedExpandOperator |
| Constructor and Description |
|---|
ArgExpandOperator(ExpandOperator<CfaNodeT,CfaEdgeT,SignatureT> wrappedExpandOperator,
ArgAbstractStateFactory argAbstractStateFactory)
Create a wrapper expand operator.
|
| Modifier and Type | Method and Description |
|---|---|
ArgAbstractState |
expand(AbstractState expandedInitialState,
AbstractState reducedExitState,
CfaNodeT blockEntryNode,
Call call)
Reconstructs the state of the caller of a procedure using the information of the expanded initial state, the reduced exit state, the block entry node (that can be used to retrieve the CFA
subgraph of the function), and the call to the procedure.
|
protected final ExpandOperator<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> wrappedExpandOperator
protected final ArgAbstractStateFactory argAbstractStateFactory
public ArgExpandOperator(ExpandOperator<CfaNodeT,CfaEdgeT,SignatureT> wrappedExpandOperator, ArgAbstractStateFactory argAbstractStateFactory)
wrappedExpandOperator - an expand operator to be wrappedargAbstractStateFactory - an ARG node factorypublic ArgAbstractState expand(AbstractState expandedInitialState, AbstractState reducedExitState, CfaNodeT blockEntryNode, Call call)
ExpandOperatorexpand in interface ExpandOperator<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature>expandedInitialState - the entry state of the called procedure before any reductionreducedExitState - the state of the called procedure in its exit nodeblockEntryNode - the entry node of the called procedurecall - the information of the call to the procedureRebuildOperator to be solved