public NamedEventSet Put(string name, PParser.EventSetDeclContext tree) { NamedEventSet eventSet = new NamedEventSet(name, tree); CheckConflicts(eventSet, Namespace(eventSets), Namespace(interfaces)); eventSets.Add(name, eventSet); return(eventSet); }
public override object VisitEventSetDecl(PParser.EventSetDeclContext context) { string symbolName = context.name.GetText(); NamedEventSet decl = CurrentScope.Put(symbolName, context); nodesToDeclarations.Put(context, decl); return(null); }
public override object VisitEventSetDecl(PParser.EventSetDeclContext context) { // EVENTSET name=iden NamedEventSet es = (NamedEventSet)nodesToDeclarations.Get(context); // ASSIGN LBRACE eventSetLiteral RBRACE es.AddEvents((PEvent[])Visit(context.eventSetLiteral())); // SEMI return(es); }
public bool Lookup(string name, out NamedEventSet tree) { Scope current = this; while (current != null) { if (current.Get(name, out tree)) { return(true); } current = current.Parent; } tree = null; return(false); }
public static StateActionResults BuildActionSets(CompilationContext context, State state) { NamedEventSet defersSet = new NamedEventSet(state.Name + "_DEFERS", state.SourceLocation); NamedEventSet transSet = new NamedEventSet(state.Name + "_TRANS", state.SourceLocation); NamedEventSet dosSet = new NamedEventSet(state.Name + "_DOS", state.SourceLocation); List <(PEvent, Function)> dos = new List <(PEvent, Function)>(); List <(PEvent, int, string)> trans = new List <(PEvent, int, string)>(); foreach (KeyValuePair <PEvent, TypeChecker.AST.IStateAction> eventActionPair in state.AllEventHandlers) { PEvent pEvent = eventActionPair.Key; switch (eventActionPair.Value) { case EventDefer _: defersSet.AddEvent(pEvent); break; case EventDoAction eventDoAction: dosSet.AddEvent(pEvent); dos.Add((pEvent, eventDoAction.Target)); break; case EventGotoState eventGotoState: transSet.AddEvent(pEvent); string transFunName = eventGotoState.TransitionFunction == null ? "_P_NO_OP" : context.Names.GetNameForDecl(eventGotoState.TransitionFunction); trans.Add((pEvent, context.GetDeclNumber(eventGotoState.Target), "&" + transFunName)); break; case EventIgnore _: dosSet.AddEvent(pEvent); dos.Add((pEvent, null)); break; case EventPushState eventPushState: transSet.AddEvent(pEvent); trans.Add((pEvent, context.GetDeclNumber(eventPushState.Target), "NULL")); break; } } return(new StateActionResults(defersSet, transSet, dosSet, dos, trans)); }
public DataType(NamedEventSet eventSet) : base(TypeKind.Data) { }
public PermissionType(NamedEventSet eventSet) : base(TypeKind.Base) { origin = eventSet; AllowedPermissions = new Lazy<IReadOnlyList<PEvent>>(() => eventSet.Events.ToList()); }
public PermissionType(NamedEventSet eventSet) : base(TypeKind.Base) { origin = eventSet; EventSet = eventSet; }
public StateActionResults(NamedEventSet defersSet, NamedEventSet transSet, NamedEventSet dosSet, List <(PEvent, Function)> dos,
public bool Get(string name, out NamedEventSet tree) { return(eventSets.TryGetValue(name, out tree)); }
public BoundedType(NamedEventSet eventSet) : base(TypeKind.Bounded) { EventSet = eventSet; }