PureFSM
|
Guard negation. More...
Guard negation.
Guard | the first guard of a set |
Guards... | the rest guards |
Allows to specify a set of guards, that are not allowed to match the transition. Must contain at least one guard. Guard negation means that the transition is matched, if the current guard is any, except the negated guards.
Be aware that State Machine does not check, if the union of negation sets is not strictly included in the set of all guards. E.g, there are two transitions with negated guard sets, \(T_1 = \{a_1, ..., a_n\}\) and \(T_2 = \{b_1, ..., b_n\}\), \(T_1 \cap T_2 = \emptyset\). The whole guard set is \(G\), and \(T_1 \in G, T_2 \in G\).
In case if \(T_1 \cup T_2 \neq G\), i.e there is at least one guard that is not included in both sets, \(G - (T_1 \cup T_2) = D, D \neq \emptyset\), the behaviour is undefined. If the current guard \(g_c \in D\), then it is matched to both transitions.