private void AddCoStates(int issuePoint, LocalVariableState lvState, IEnumerable <TAVerb> states) { Contract.Requires(states != null); TAVerb first = states.First(); CoFSMInfo cfi = _coFSMs[first.Target]; if (cfi.AddVerbs(issuePoint, lvState, states)) { foreach (var tup in cfi.GetVerbs(issuePoint, lvState)) { TAVerb tav = tup.Item1; CoStateInfo csi = tup.Item2; if (csi.StateAction == null) { InitCoState(tav, csi); if (tav.During != null) { foreach (AbstractEvent ev in tav.During.Sensitivity) { cfi.Sensitivity.Add(((SignalBase)ev.Owner).Descriptor); } } } } } }
public void ImplementCoState(int issuePoint, IEnumerable <TAVerb> states, int step, IFunctionBuilder builder) { LocalVariableState lvState = _templ.ExportLocalVariableState(); AddCoStates(issuePoint, lvState, states); TAVerb first = states.First(); CoFSMInfo cfi = _coFSMs[first.Target]; var tup = cfi.GetVerbs(issuePoint, lvState).ElementAt(step); CoStateInfo csi = tup.Item2; ImplementCoStateAction(cfi, csi, builder); }