private void ResetState() { crntEventList.Clear(); crntStringList.Clear(); moduleExprStack.Clear(); monitorNameListStack.Clear(); crntModuleDecl = null; }
private PLink_Root.ModuleDecl GetCurrentModuleDecl(Span span) { if (crntModuleDecl != null) { return(crntModuleDecl); } crntModuleDecl = PLink_Root.MkModuleDecl(); crntModuleDecl.name = MkString(string.Empty, span); crntModuleDecl.Span = span; return(crntModuleDecl); }
private void AddModuleDecl(string name, Span nameSpan, Span span) { var moduleDecl = GetCurrentModuleDecl(span); moduleDecl.Span = span; moduleDecl.name = MkString(name, nameSpan); moduleDecl.id = (PLink_Root.IArgType_ModuleDecl__1)MkUniqueId(span); //add the module decl if (IsValidName(LProgramTopDecl.Module, name, nameSpan)) { LinkTopDeclNames.moduleNames.Add(name); } parseLinker.ModuleDecl.Add(moduleDecl); foreach (var machine in crntStringList) { var moduleContains = PLink_Root.MkModuleContains(); moduleContains.mod = (PLink_Root.IArgType_ModuleContains__0)moduleDecl; moduleContains.mach = (PLink_Root.IArgType_ModuleContains__1)machine; parseLinker.ModuleContains.Add(moduleContains); } crntStringList.Clear(); crntModuleDecl = null; }