![]() |
lingua-franca 0.10.1
Lingua Franca code generator
|
A directed graph representing the state space of an LF program. More...
Inherits org.lflang.graph.DirectedGraph< T >.
Public Member Functions | |
| void | addEdge (T sink, T source) |
| Add a new directed edge to the graph. | |
| void | addEdges (T sink, List< T > sources) |
| Add new directed edges to the graph. | |
| void | addNode (StateSpaceNode node) |
| Before adding the node, assign it an index. | |
| void | addNode (T node) |
| Add the given node to the graph. | |
| void | clear () |
| DirectedGraph< T > | copy () |
| Obtain a copy of this graph by creating an new instance and copying the adjacency maps. | |
| void | display () |
| Pretty print the diagram. | |
| int | edgeCount () |
| Return the number of directed edges in this graph. | |
| CodeBuilder | generateDot () |
| Generate a dot file from the state space diagram. | |
| Set< T > | getDownstreamAdjacentNodes (T node) |
| Return all immediate downstream neighbors of a given node. | |
| StateSpaceNode | getDownstreamNode (StateSpaceNode node) |
| Get the immediately downstream node. | |
| Set< T > | getUpstreamAdjacentNodes (T node) |
| Return all immediate upstream neighbors of a given node. | |
| boolean | hasNode (T node) |
| Return true if this graph has the given node in it. | |
| Set< T > | leafNodes () |
| Return the leaf nodes of this graph. | |
| void | merge (DirectedGraph< T > another) |
| Merge another directed graph into this one. | |
| int | nodeCount () |
| Return the number of nodes in this graph. | |
| Set< T > | nodes () |
| Return an unmodifiable set of nodes in this graph. | |
| void | removeEdge (T sink, T source) |
| Remove a directed edge from the graph. | |
| void | removeNode (T node) |
| Remove the given node from the graph. | |
| Set< T > | rootNodes () |
| Return the root nodes of this graph. | |
| String | toDOT () |
| Return the DOT (GraphViz) representation of the graph. | |
| String | toString () |
| Return a textual list of the nodes. | |
Public Attributes | |
| StateSpaceNode | head |
| The first node of the state space diagram. | |
| StateSpaceNode | loopNode |
| The previously encountered node which the tail node goes back to, i.e. | |
| StateSpaceNode | loopNodeNext |
| Store the state when the loop node is reached for the 2nd time. | |
| long | loopPeriod |
| The logical time elapsed for each loop iteration. | |
| StateSpaceNode | tail |
| The last node of the state space diagram. | |
Protected Member Functions | |
| void | graphChanged () |
| Mark the graph to have changed so that any cached analysis is refreshed accordingly. | |
A directed graph representing the state space of an LF program.
|
inherited |
Add a new directed edge to the graph.
The first argument is the downstream node, the second argument the upstream node. If either argument is null, do nothing.
| sink | The downstream immediate neighbor. |
| source | The upstream immediate neighbor. |
Implements org.lflang.graph.Graph< T >.
|
inherited |
Add new directed edges to the graph.
The first argument is the downstream node, the second argument a set of upstream nodes.
| sink | The downstream immediate neighbor. |
| sources | The upstream immediate neighbors. |
Implements org.lflang.graph.Graph< T >.
| void org.lflang.analyses.statespace.StateSpaceDiagram.addNode | ( | StateSpaceNode | node | ) |
Before adding the node, assign it an index.
|
inherited |
Add the given node to the graph.
Implements org.lflang.graph.Graph< T >.
|
inherited |
|
inherited |
Obtain a copy of this graph by creating an new instance and copying the adjacency maps.
| void org.lflang.analyses.statespace.StateSpaceDiagram.display | ( | ) |
Pretty print the diagram.
|
inherited |
Return the number of directed edges in this graph.
Implements org.lflang.graph.Graph< T >.
| CodeBuilder org.lflang.analyses.statespace.StateSpaceDiagram.generateDot | ( | ) |
Generate a dot file from the state space diagram.
|
inherited |
Return all immediate downstream neighbors of a given node.
| node | The node to report the immediate downstream neighbors of. |
| StateSpaceNode org.lflang.analyses.statespace.StateSpaceDiagram.getDownstreamNode | ( | StateSpaceNode | node | ) |
Get the immediately downstream node.
|
inherited |
Return all immediate upstream neighbors of a given node.
| node | The node to report the immediate upstream neighbors of. |
|
protectedinherited |
Mark the graph to have changed so that any cached analysis is refreshed accordingly.
Reimplemented in org.lflang.graph.PrecedenceGraph< T extends Object >.
|
inherited |
Return true if this graph has the given node in it.
| node | The node to look for. |
Implements org.lflang.graph.Graph< T >.
|
inherited |
Return the leaf nodes of this graph.
Leaf nodes have no downstream neighbors.
|
inherited |
Merge another directed graph into this one.
| another | The graph to merge into this one. |
|
inherited |
Return the number of nodes in this graph.
Implements org.lflang.graph.Graph< T >.
|
inherited |
Return an unmodifiable set of nodes in this graph.
Implements org.lflang.graph.Graph< T >.
|
inherited |
Remove a directed edge from the graph.
| sink | The downstream immediate neighbor. |
| source | The upstream immediate neighbor. |
Implements org.lflang.graph.Graph< T >.
|
inherited |
Remove the given node from the graph.
This also eliminates any edges from upstream and to downstream neighbors of this node.
| node | The node to remove. |
Implements org.lflang.graph.Graph< T >.
|
inherited |
Return the root nodes of this graph.
Root nodes have no upstream neighbors.
|
inherited |
Return the DOT (GraphViz) representation of the graph.
Implements org.lflang.graph.Graph< T >.
Reimplemented in org.lflang.generator.ReactionInstanceGraph.
|
inherited |
Return a textual list of the nodes.
| StateSpaceNode org.lflang.analyses.statespace.StateSpaceDiagram.head |
The first node of the state space diagram.
| StateSpaceNode org.lflang.analyses.statespace.StateSpaceDiagram.loopNode |
The previously encountered node which the tail node goes back to, i.e.
the location where the back loop happens.
| StateSpaceNode org.lflang.analyses.statespace.StateSpaceDiagram.loopNodeNext |
Store the state when the loop node is reached for the 2nd time.
This is used to calculate the elapsed logical time on the back loop edge.
| long org.lflang.analyses.statespace.StateSpaceDiagram.loopPeriod |
The logical time elapsed for each loop iteration.
| StateSpaceNode org.lflang.analyses.statespace.StateSpaceDiagram.tail |
The last node of the state space diagram.