コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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;
                }
            }
        }