public StateMachine(DeltaFunction <S, A> deltaFunction, IEnumerable <S> startStates) { this.deltaFunction = deltaFunction; this.startStates = startStates; cursors = new LinkedList <S>(startStates); retainCursorOnDeadTransitions = false; }
public EventStateMachine(DeltaFunction <S, A> deltaFunction, ICollection <S> startStates) : base(deltaFunction, startStates) { stateActions = new StateDictionary <S, ActionInfo>(deltaFunction.States); transitionActions = new TransitionDictionary <S, A, ActionInfo>(deltaFunction.States, deltaFunction.Alphabet); invokeEnterActionsOnJump = true; invokeExitActionsOnJump = true; }
public StateMachine(DeltaFunction <S, A> deltaFunction, params S[] startStates) : this(deltaFunction, (IEnumerable <S>)startStates) { }
public EventStateMachine(DeltaFunction <S, A> deltaFunction, params S[] startStates) : this(deltaFunction, (ICollection <S>)startStates) { }
public static void Add <S, A>(this DeltaFunction <S, A> deltaFunction, ValueTuple <S, A, S> tuple) { deltaFunction.Define(tuple.Item1, tuple.Item2, tuple.Item3); }