Esempio n. 1
0
        public override object VisitOnEventPushState(PParser.OnEventPushStateContext context)
        {
            //annotationSet?
            if (context.annotationSet() != null)
            {
                throw new NotImplementedException("push state annotations");
            }

            // PUSH stateName
            var targetState = FindState(context.stateName());

            // ON eventList
            var actions = new List <IStateAction>();

            foreach (var token in context.eventList().eventId())
            {
                if (!CurrentScope.Lookup(token.GetText(), out PEvent evt))
                {
                    throw Handler.MissingDeclaration(token, "event", token.GetText());
                }

                actions.Add(new EventPushState(token, evt, targetState));
            }
            return(actions.ToArray());
        }
Esempio n. 2
0
        public override object VisitOnEventPushState(PParser.OnEventPushStateContext context)
        {
            // PUSH stateName
            State targetState = FindState(context.stateName());

            // ON eventList
            List <IStateAction> actions = new List <IStateAction>();

            foreach (PParser.EventIdContext token in context.eventList().eventId())
            {
                if (!CurrentScope.Lookup(token.GetText(), out PEvent evt))
                {
                    throw Handler.MissingDeclaration(token, "event", token.GetText());
                }

                actions.Add(new EventPushState(token, evt, targetState));
            }

            return(actions.ToArray());
        }