-
Notifications
You must be signed in to change notification settings - Fork 40
State Machine Analysis Data Structure
The State machine analysis data structure represents the results of source analysis on an FPP state machine. It contains the following members.
-
Flattened initial transition: An optional transition. The value is None until it is filled in by the analysis. Once filled in, this value represents the initial transition in the flattened state machine. It goes to a leaf state or junction, and it records all the actions implied by the entry actions and initial transition specifiers in the state machine.
-
Flattened junction transition map: A map from enter expressions to state or junction transitions. The keys in the map are enter expressions appearing in junctions in the hierarchical state machine. For each key e, the map records the transition represented by e in the flattened state machine. Each transition records all the entry and exit actions implied by the state hierarchy.
-
Flattened state transition map: A map m from state definition symbols to signal-transition maps. The keys in the map are leaf states in the hierarchical state machine. For each key S in m, m(S) is a signal-transition map. For each signal s in m(S), m(S)(s) records the transition out of S on signal s in the flattened state machine. Each transition records all the entry and exit actions implied by the state hierarchy.
-
Nested scope: A state machine nested scope object that represents the current position in a scope traversal.
-
Parent symbol map: A map from state machine symbols to their parent state machine symbols. For example, the symbol for a state definition appearing inside a state definition S is mapped to the symbol S.
-
Scope name list: A list of unqualified names representing the enclosing scopes, with the innermost name at the head of the list. The scope name list operates in the same way as the scope name list for the analysis data structure.
-
Symbol-scope map: A map from state machine symbols to their state machine scopes.
-
Terminal node map: A map from transition graph nodes to integers. For each node n, it records the number of arcs in the transition graph that have n as their terminal nodes.
-
Transition graph node set: The set of transition graph nodes in the transition graph path.
-
Transition graph path: A list of transition graph arcs representing the current path being traversed in the transition graph.
-
Transition graph: The transition graph for the state machine.
-
Type map: A map from node identifiers representing typed elements to optional types.
-
Use-def map: A map from uses (identifiers and qualified identifiers that refer to definitions of state machine symbols) to the state machine symbols representing their definitions.
-
Visited symbol set: The set of state machine symbols visited so far.