示例#1
0
        public Identifier ResolveGlobal(string moduleName, string globalName, IPlatform platform)
        {
            foreach (var program in project.Programs)
            {
                ModuleDescriptor mod;
                if (!program.EnvironmentMetadata.Modules.TryGetValue(moduleName, out mod))
                {
                    continue;
                }

                DataType dt;
                if (mod.GlobalsByName.TryGetValue(globalName, out dt))
                {
                    return(new Identifier(globalName, dt, new MemoryStorage()));
                }
            }

            foreach (var program in project.Programs)
            {
                DataType dt;
                if (program.EnvironmentMetadata.Globals.TryGetValue(globalName, out dt))
                {
                    return(new Identifier(globalName, dt, new MemoryStorage()));
                }
            }
            return(platform.LookupGlobalByName(moduleName, globalName));
        }
示例#2
0
        public Identifier ResolveGlobal(string moduleName, string globalName, IPlatform platform)
        {
            foreach (var program in project.Programs)
            {
                ModuleDescriptor mod;
                if (!program.EnvironmentMetadata.Modules.TryGetValue(moduleName, out mod))
                    continue;

                DataType dt;
                if (mod.Globals.TryGetValue(globalName, out dt))
                {
                    return new Identifier(globalName, dt, new MemoryStorage());
                }
            }

            foreach (var program in project.Programs)
            {
                DataType dt;
                if (program.EnvironmentMetadata.Globals.TryGetValue(globalName, out dt))
                {
                    return new Identifier(globalName, dt, new MemoryStorage());
                }
            }
            return platform.LookupGlobalByName(moduleName, globalName);
        }