Difference between revisions of "XCSG:ControlFlow (Node)"
From AtlasWiki
m (TheodoreMurdock moved page ControlFlow (Node) to XCSG:ControlFlow (Node)) |
(→Specification: adding controlFlowCondition tag) |
||
Line 17: | Line 17: | ||
| name = controlFlowExitPoint | | name = controlFlowExitPoint | ||
| description = Present on a ControlFlow node if it is a possible exit point for the [[Function]] it is in. | | description = Present on a ControlFlow node if it is a possible exit point for the [[Function]] it is in. | ||
+ | }} | ||
+ | |||
+ | {{XCSGTag | ||
+ | | name = controlFlowCondition | ||
+ | | description = Present on ControlFlow nodes that represent the condition of a loop or branching statement. | ||
}} | }} |
Revision as of 15:06, 12 June 2014
A ControlFlow node represents a portion of a Method, usually a simple statement or a portion of a compound statement (such as the initialization, condition, and update expressions of a for loop).
In rare cases, a ControlFlow node may exist simply to provide additional structure, this is the case for the MasterLoopNode of do-while loops.
Specification
Metaclass | ControlFlow (Node) |
---|---|
Extends | Node |
Description | Represents a simple statement, or a portion of a compound statement that plays a role in the control flow of a Method. |
Direct Subkinds | Break, Continue, ControlFlowCondition, Loop |
---|
All Superkinds | Node, ModelElement |
---|
Specified In Edges | |||
---|---|---|---|
In Edge | Predecessor | Multiplicity | Description |
HasControlFlow | Function | 1 | Connects a Function to any ControlFlow (Node)s it contains. |
LoopChild | Loop | 0..1 | Connects a Loop node to ControlFlow (Node) |
Known Possible In Edges | ||||
---|---|---|---|---|
In Edge | Predecessor | Multiplicity | Description | |
ControlFlow (Edge) | ControlFlow (Node) | ✱ | Links Control Flow nodes to other ControlFlow nodes that follow them in the program order of a Function declaration. Multiple edges from the same ControlFlow node indicate branching of control flow. | |
ControlFlowBackEdge | ControlFlow (Node) | ✱ | A ControlFlow edge representing a branch or jump to an earlier location in the same Function, due to a loop or goto.
| |
Inherited From | In Edge | Predecessor | Multiplicity | Description |
Node | Contains | Node | 1 | Indicates that the predecessor contains the successor in a sense specified by the specific type of Contains edge. |
Known Possible Out Edges | ||||
---|---|---|---|---|
Out Edge | Successor | Multiplicity | Description | |
ControlFlow (Edge) | ControlFlow (Node) | ✱ | Links Control Flow nodes to other ControlFlow nodes that follow them in the program order of a Function declaration. Multiple edges from the same ControlFlow node indicate branching of control flow. | |
ControlFlowBackEdge | ControlFlow (Node) | ✱ | A ControlFlow edge representing a branch or jump to an earlier location in the same Function, due to a loop or goto.
| |
Inherited From | Out Edge | Successor | Multiplicity | Description |
Node | Contains | Node | ✱ | Indicates that the predecessor contains the successor in a sense specified by the specific type of Contains edge. |
Tag | controlFlowRoot |
---|---|
Description | Present on the ControlFlow node representing the entry point of the Function it is contained in. |
Tag | controlFlowExitPoint |
---|---|
Description | Present on a ControlFlow node if it is a possible exit point for the Function it is in. |
Tag | controlFlowCondition |
---|---|
Description | Present on ControlFlow nodes that represent the condition of a loop or branching statement. |