Skip to content

State Machine Analysis Data Structure

Rob Bocchino edited this page Jul 17, 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.

  • 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.

  • 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.

  • Transition graph: A map from transition graph nodes to sets of transition graph nodes that represents the possible transitions in the state machine. A transition graph node is one of the following kinds of state machine symbols: an initial transition symbol, a state definition symbol, or a junction definition symbol.

Clone this wiki locally