Skip to content

State Machine Analysis Data Structure

Rob Bocchino edited this page Nov 4, 2024 · 36 revisions

the state machine analysis data structure represents the results of source analysis on an FPP state machine. It contains the following members.

  • Flattened choice transition map: A map from transition expressions to transitions. The keys in the map are transition expressions appearing in choices in the hierarchical state machine. For each key e, the map records the flattened transition represented by e . Each flattened transition records the entry and exit actions implied by the state hierarchy.

  • Flattened state transition map: A map m from signal symbols to state-transition maps. For each signal s in m, m(s) is a state transition map. Each key in m(s) is a leaf state. For each leaf state S in m(s), m(s)(S) records the flattened guarded transition out of S on signal s. Each flattened transition records 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 state map: A map from state machine symbols to their parent state 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.

  • Signal-transition map: The current signal-transition map in the computation of the flattened state transition map.

  • Symbol-scope map: A map from state machine symbols to their state machine scopes.

  • Reverse transition graph: A data structure like the transition graph that records, for each node n, the arcs from nodes n' to node n in the transition graph.

  • Transition graph: The transition graph for the state machine.

  • Type option map: A map from 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.

Clone this wiki locally