public void Build() { Dictionary<string, ExportsValue> exportsTable = new Dictionary<string, ExportsValue>(); // run through and initialize all of the modules. foreach (var module in _all["modules"]) { var moduleName = FixModuleName((string)module["name"]); var entry = new ProjectEntry(_analyzer, moduleName, null, true); var documentation = ParseDocumentation(module["desc"]); _analyzer.Modules.AddModule(moduleName, entry); exportsTable[moduleName] = entry.InitNodejsVariables(documentation); } // next create all of the classes foreach (var module in _all["modules"]) { var moduleName = FixModuleName((string)module["name"]); var exports = exportsTable[moduleName]; if (module.ContainsKey("classes")) { foreach (var klass in module["classes"]) { GenerateClass(exports, klass); } } if (module.ContainsKey("properties")) { foreach (var property in module["properties"]) { if (property.ContainsKey("methods")) { GenerateClass(exports, property); } } } } foreach (var module in _all["modules"]) { var moduleName = FixModuleName((string)module["name"]); var exports = exportsTable[moduleName]; Dictionary<string, FunctionSpecializer> specialMethods; _moduleSpecializations.TryGetValue(moduleName, out specialMethods); if (module.ContainsKey("methods")) { foreach (var method in module["methods"]) { GenerateMethod(exports, specialMethods, method); } } } foreach (var misc in _all["miscs"]) { if (misc["name"] == "Global Objects") { GenerateGlobals(misc["globals"]); foreach (var method in misc["methods"]) { GenerateMethod(_analyzer._globalObject, null, method); } break; } } }
public void Build() { Dictionary <string, ExportsValue> exportsTable = new Dictionary <string, ExportsValue>(); // run through and initialize all of the modules. foreach (var module in _all["modules"]) { var moduleName = FixModuleName((string)module["name"]); var entry = new ProjectEntry(_analyzer, moduleName, null, true); var documentation = ParseDocumentation(module["desc"]); _analyzer.Modules.AddModule(moduleName, entry); exportsTable[moduleName] = entry.InitNodejsVariables(documentation); } // next create all of the classes foreach (var module in _all["modules"]) { var moduleName = FixModuleName((string)module["name"]); var exports = exportsTable[moduleName]; if (module.ContainsKey("classes")) { foreach (var klass in module["classes"]) { GenerateClass(exports, klass); } } if (module.ContainsKey("properties")) { foreach (var property in module["properties"]) { if (property.ContainsKey("methods")) { GenerateClass(exports, property); } } } } foreach (var module in _all["modules"]) { var moduleName = FixModuleName((string)module["name"]); var exports = exportsTable[moduleName]; Dictionary <string, FunctionSpecializer> specialMethods; _moduleSpecializations.TryGetValue(moduleName, out specialMethods); if (module.ContainsKey("methods")) { foreach (var method in module["methods"]) { GenerateMethod(exports, specialMethods, method); } } } foreach (var misc in _all["miscs"]) { if (misc["name"] == "Global Objects") { GenerateGlobals(misc["globals"]); foreach (var method in misc["methods"]) { GenerateMethod(_analyzer._globalObject, null, method); } break; } } }