public class CfgWaitBackend extends CfgEmptyVisitor
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.
ModelVisitor.Status
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
NAME
The backend name.
|
Constructor and Description |
---|
CfgWaitBackend()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
onModelBegin(Model model)
Starts visiting
Model object. |
void |
onModelEnd(Model model)
Finishes visiting
Model object. |
void |
onModuleBegin(Module module)
Starts visiting
Module node. |
void |
onProcessBegin(ModuleProcess process)
Starts visiting
ModuleProcess node. |
void |
onWaitBegin(CfgWaitStatement wait)
Starts visiting
CfgWaitStatement node. |
onAssertBegin, onAssertEnd, onBlockBegin, onBlockEnd, onCaseBegin, onCaseEnd, onLoopBegin, onLoopEnd, onSwitchBegin, onSwitchEnd, onWaitEnd
getStatus, onModuleEnd, onProcessEnd, onRootBegin, onRootEnd, onStatementBegin, onStatementEnd
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getStatus, onModuleEnd, onProcessEnd, onRootBegin, onRootEnd, onStatementBegin, onStatementEnd
public static final java.lang.String NAME
public void onModelBegin(Model model)
ModelVisitor
Model
object.onModelBegin
in interface ModelVisitor
onModelBegin
in class ModelEmptyVisitor
model
- The model to be visited.public void onModelEnd(Model model)
ModelVisitor
Model
object.onModelEnd
in interface ModelVisitor
onModelEnd
in class ModelEmptyVisitor
model
- The model to be visited.public void onModuleBegin(Module module)
ModelVisitor
Module
node.onModuleBegin
in interface ModelVisitor
onModuleBegin
in class ModelEmptyVisitor
module
- Module node to be visited.public void onProcessBegin(ModuleProcess process)
ModelVisitor
ModuleProcess
node.onProcessBegin
in interface ModelVisitor
onProcessBegin
in class ModelEmptyVisitor
process
- Process node to be visited.public void onWaitBegin(CfgWaitStatement wait)
CfgVisitor
CfgWaitStatement
node.onWaitBegin
in interface CfgVisitor
onWaitBegin
in class CfgEmptyVisitor
wait
- Wait statement to be visited.