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