Пример #1
0
        public override object VisitEventDecl(PParser.EventDeclContext context)
        {
            // EVENT name=Iden
            var pEvent = (PEvent)nodesToDeclarations.Get(context);

            // cardinality?
            var hasAssume   = context.cardinality()?.ASSUME() != null;
            var hasAssert   = context.cardinality()?.ASSERT() != null;
            var cardinality = int.Parse(context.cardinality()?.IntLiteral().GetText() ?? "-1");

            pEvent.Assume = hasAssume ? cardinality : -1;
            pEvent.Assert = hasAssert ? cardinality : -1;

            // (COLON type)?
            pEvent.PayloadType = ResolveType(context.type());

            // annotationSet?
            if (context.annotationSet() != null)
            {
                throw new NotImplementedException("event annotations");
            }

            // SEMI
            return(pEvent);
        }
Пример #2
0
        public PEvent Put(string name, PParser.EventDeclContext tree)
        {
            PEvent @event = new PEvent(name, tree);

            CheckConflicts(@event, Namespace(events), Namespace(enumElems));
            events.Add(name, @event);
            return(@event);
        }
Пример #3
0
        public override object VisitEventDecl(PParser.EventDeclContext context)
        {
            string symbolName = context.name.GetText();
            PEvent decl       = CurrentScope.Put(symbolName, context);

            nodesToDeclarations.Put(context, decl);
            CurrentScope.UniversalEventSet.AddEvent(decl);
            return(null);
        }
Пример #4
0
        public override object VisitEventDecl(PParser.EventDeclContext context)
        {
            string symbolName = context.name.GetText();
            PEvent decl       = CurrentScope.Put(symbolName, context);

            nodesToDeclarations.Put(context, decl);
            UniversalEventSet.Instance.AddEvent(decl); // TODO: do we actually want to do this?
            return(null);
        }
Пример #5
0
        public override object VisitEventDecl(PParser.EventDeclContext context)
        {
            // EVENT name=Iden
            PEvent pEvent = (PEvent)nodesToDeclarations.Get(context);

            // cardinality?
            bool hasAssume   = context.cardinality()?.ASSUME() != null;
            bool hasAssert   = context.cardinality()?.ASSERT() != null;
            int  cardinality = int.Parse(context.cardinality()?.IntLiteral().GetText() ?? "-1");

            pEvent.Assume = hasAssume ? cardinality : -1;
            pEvent.Assert = hasAssert ? cardinality : -1;

            // (COLON type)?
            pEvent.PayloadType = ResolveType(context.type());

            // SEMI
            return(pEvent);
        }