-
Notifications
You must be signed in to change notification settings - Fork 34
Check Typed Elements
This algorithm assigns a type option to each typed element. It checks the type options for consistency with the semantic rules.
-
A state machine definition smd.
-
A state machine analysis data structure sma representing the results of analysis so far.
-
sma with the type map updated if the check passes; otherwise an error.
-
Compute the type options of the typed elements.
-
Check the types of the actions and guards.
-
Let m be the type map of sma.
-
Set the visited symbol set of sma to the empty set.
-
Visit each typed element e of smd.
-
If e is an initial transition specifier, then set m(e) to None.
-
Otherwise if e is a state definition sd, then for each state transition specifier sts in sd
-
Let o be the type option specified in the signal of sts.
-
Set m(sts) to o.
-
-
Otherwise e is a junction j.
-
Let m be the reverse transition graph of sma.
-
Let E be the set of typed elements m(e).
-
Visit each typed element in E.
-
Let O be the set of type options of elements of E.
-
Let o be the common type option of O. If there is no common type, then return an error.
-
-
-
Visit each typed element e of smd.
-
Let o be the type option associated with e in the type map.
-
If e is a initial transition specifier, then check that o is convertible to the type option of each of the actions specified in e.
-
Otherwise if e is a state transition specifier or junction definition, then check that all guards and actions specified in e have type options o' such that o is convertible to o'.
-