private IEnumerable <INscNode> GetStateSwitchNodes(OptimizedStateMachine machine) { var query = from t in machine.Transitions select new CaseNode("StateEnum", t.CurrentState, EventSwitch(t)); return(query); }
public INscNode Generate(OptimizedStateMachine machine) { return(new FsmNode { ClassName = machine.Header.Fsm, ActionsName = machine.Header.Actions, Events = new EnumNode("Event", machine.Events), States = new EnumNode("StateEnum", machine.States), Delegators = new EventDelegatorsNode(machine.Events), HandleEvent = new HandleEventNode(StateSwitch(machine)), Initial = new StatePropertyNode(machine.Header.Initial), }); }
private SwitchCaseNode StateSwitch(OptimizedStateMachine machine) { return(new SwitchCaseNode("State", GetStateSwitchNodes(machine))); }