Ejemplo n.º 1
0
 private void ResetState()
 {
     crntEventList.Clear();
     crntStringList.Clear();
     moduleExprStack.Clear();
     monitorNameListStack.Clear();
     crntModuleDecl = null;
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
        }