public class CfgWaitBackend extends CfgDefaultVisitor
The component transforms input model in such a way that the result does not contain
CfgWaitStatement
nodes. It substitutes them
by sub-processes which are 'guarded' by predicates on new variables. Situations when
the same sequence of graph nodes can be executed both after and not after
CfgWaitStatement
node are also elaborated.
There is Zamia IG feature which is taken into account in this backend. The IG builder
creates CfgWaitStatement
objects every time when it
detects some process' sensitivity list. The builder puts this node at the end of process'
statements sequence. Such nodes are treated by the backend as finalizing and transformed
into EventList
sensitivity list components.
CfgVisitor.Status
Constructor and Description |
---|
CfgWaitBackend()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
onCfgModelBegin()
Starts visiting
CfgModel object. |
void |
onCfgModelEnd()
Finishes visiting
CfgModel object. |
void |
onModuleBegin(CfgModule module)
Starts visiting
CfgModule node. |
void |
onProcessBegin(CfgProcess process)
Starts visiting
CfgProcess node. |
void |
onWaitBegin(CfgWaitStatement wait)
Starts visiting
CfgWaitStatement node. |
getStatus, onAssertBegin, onAssertEnd, onBasicBlockBegin, onBasicBlockEnd, onCaseBegin, onCaseEnd, onLoopBegin, onLoopEnd, onModuleEnd, onNodeBegin, onNodeEnd, onProcessEnd, onRootBegin, onRootEnd, onSwitchBegin, onSwitchEnd, onWaitEnd
public void onCfgModelBegin()
CfgVisitor
CfgModel
object.onCfgModelBegin
in interface CfgVisitor
onCfgModelBegin
in class CfgDefaultVisitor
public void onCfgModelEnd()
CfgVisitor
CfgModel
object.onCfgModelEnd
in interface CfgVisitor
onCfgModelEnd
in class CfgDefaultVisitor
public void onModuleBegin(CfgModule module)
CfgVisitor
CfgModule
node.onModuleBegin
in interface CfgVisitor
onModuleBegin
in class CfgDefaultVisitor
module
- Module node to be visited.public void onProcessBegin(CfgProcess process)
CfgVisitor
CfgProcess
node.onProcessBegin
in interface CfgVisitor
onProcessBegin
in class CfgDefaultVisitor
process
- Process node to be visited.public void onWaitBegin(CfgWaitStatement wait)
CfgVisitor
CfgWaitStatement
node.onWaitBegin
in interface CfgVisitor
onWaitBegin
in class CfgDefaultVisitor
wait
- Wait statement to be visited.