public override object VisitNonDefaultEvent(PParser.NonDefaultEventContext context) { // HALT | iden var eventName = context.GetText(); if (!CurrentScope.Lookup(eventName, out PEvent pEvent)) { throw Handler.MissingDeclaration(context, "event", eventName); } return(pEvent); }
public override object VisitStateDefer(PParser.StateDeferContext context) { if (CurrentMachine.IsSpec) { throw Handler.DeferredEventInMonitor(context, CurrentMachine); } // DEFER nonDefaultEventList IList <PParser.NonDefaultEventContext> eventContexts = context.nonDefaultEventList()._events; IStateAction[] actions = new IStateAction[eventContexts.Count]; for (int i = 0; i < eventContexts.Count; i++) { PParser.NonDefaultEventContext token = eventContexts[i]; if (!CurrentScope.Lookup(token.GetText(), out PEvent evt)) { throw Handler.MissingDeclaration(token, "event", token.GetText()); } actions[i] = new EventDefer(token, evt); } return(actions); }