Esempio n. 1
0
        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);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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);
        }