CIF simulator: allow input components to add new transitions
As discussed at #710 (comment 1526083), where we want to add commands to the CIF simulator trace input mode to allow assigning new values to input variables:
[...] an input component can only choose from transitions it is given. It currently can't make up new transitions.
- I've pondered this a bit. My first thought was that an input component could just invent new transitions when it chooses, and return those. But, if that is the only transition possible, the rest of the simulator doesn't know about this yet-to-be-created new transition, and may decide there is deadlock, before even asking the input component.
- My current thought is to allow the input component to add additional possible transitions, before choosing a transition. As an input component represents the environment, it could add additional transitions from the environment. These must be event transitions for the
tau
event, to ensure they don't synchronize with automata, and thus don't influence the computation of other transitions. This requires changes in at leastInputComponent
andRuntimeSpec.calcEventTransitions
.- I think @freijnen will have the same exact issue, as he's working on allowing the simulator to update input variables via SVG input mappings (#227 (closed)). @freijnen, what do you think about this one? Can you align on this with @brentelia27? You both need it, and it should be implemented only once, of course.