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)); }
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); }