public override object VisitInterfaceDecl(PParser.InterfaceDeclContext context) { // TYPE name=Iden var mInterface = (Interface)nodesToDeclarations.Get(context); // LPAREN type? RPAREN mInterface.PayloadType = ResolveType(context.type()); IEventSet eventSet; if (context.RECEIVES() == null) { eventSet = UniversalEventSet.Instance; } else { eventSet = new EventSet(); if (context.nonDefaultEventList()?._events is IList <PParser.NonDefaultEventContext> events) { foreach (var eventContext in events) { eventSet.AddEvent((PEvent)Visit(eventContext)); } } } mInterface.ReceivableEvents = eventSet; return(mInterface); }
private Scope(ITranslationErrorHandler handler, Scope parent = null) { this.handler = handler; parent?.children.Remove(this); Parent = parent; parent?.children.Add(this); EventSet eventSetWithHalt = new EventSet(); eventSetWithHalt.AddEvent(new PEvent("halt", null)); UniversalEventSet = parent == null ? eventSetWithHalt : parent.UniversalEventSet; }