-
Notifications
You must be signed in to change notification settings - Fork 34
Analysis Data Structure
The Analysis data structure represents the results of FPP source analysis.
It contains the following members.
-
Component map: A map from component symbols to the corresponding components.
-
Component instance map: A map from component instance symbols to the corresponding component instances.
-
Dependency file set: The set of files on which the analysis transitively depends. Used to calculate the inputs to FPP analysis tools. Included files do not appear in this set.
-
Dictionary map: A map from topology symbols to the corresponding dictionaries.
-
Direct dependency file set The set of files on which the analysis directly depends. Used to calculate the inputs to external build environments. Included files do appear in this set.
-
Included file set: The set of files included when parsing input.
-
Input file set: The set of files presented to the analyzer.
-
Level: A nonnegative integer representing the level of recursive analysis.
-
Location specifier map: A map from pairs (symbol kind, qualified name) to location specifiers. Each entry in the map represents the specified location of a symbol.
-
Missing dependency file set: The subset of the dependency file set consisting of files that could not be opened.
-
Nested scope: A nested scope object that represents the current position in a scope traversal.
-
Parent symbol map: A map from symbols to their parent symbols. For example, the symbol for a constant definition appearing inside a module M is mapped to the symbol M.
-
Scope name list: A list of unqualified names representing the enclosing scopes, with the innermost name at the head of the list. For example, inside module
B
whereB
is insideA
andA
is at the top level, the scope name list is[ B, A ]
. -
State machine map: A map from state machine symbols to the corresponding state machines.
-
Topology map: A map from topology symbols to the corresponding topologies.
-
Type map: A map from type and constant symbols, expressions, and type names to their types.
-
Use-def map: A map from uses (expressions and qualified identifiers that refer to definitions) to the symbols representing their definitions.
-
Use-def matching list: The list of use-def matchings on the current use-def path. Used during cycle analysis.
-
Use-def symbol set: The set of symbols on the current use-def path. Used during cycle analysis.
-
Used symbol set: The set of symbols used. Used during code generation.
-
Value map: A map from constant symbols and expressions to their values.
-
Visited symbol set: The set of symbols visited so far.
An empty analysis data structure has the following configuration:
-
The sets, lists, and maps are empty.
-
The nested scope contains a single empty scope representing the global scope.