Plato on Github
Report Home
lang/main.js
Maintainability
129.28
Lines of code
76
Difficulty
12.27
Estimated Errors
0.43
Function weight
By Complexity
By SLOC
(function(sc) { "use strict"; require("./lang"); require("./dollar"); var main = {}; var $ = sc.lang.$; var random = sc.libs.random; var $process = null; var $currentEnvir = null; var $currentThread = {}; main.run = function(func) { if (!$process) { initialize(); } return func($); }; main.setCurrentEnvir = function($envir) { $currentEnvir = $envir; }; main.getCurrentEnvir = function() { return $currentEnvir; }; main.setCurrentThread = function($thread) { $currentThread = $thread; }; main.getCurrentThread = function() { return $currentThread; }; function initialize() { $process = $("Main").new(); $process._$interpreter = $("Interpreter").new(); $process._$mainThread = $("Thread").new($.Func()); $currentEnvir = $("Environment").new(); $currentThread = $process._$mainThread; // $interpreter._$s = SCServer.default(); random.setCurrent($process._$mainThread._randgen); // TODO: // SoundSystem.addProcess($process); // SoundSystem.start(); } $.addProperty("Environment", function(key, $value) { if ($value) { $currentEnvir.put($.Symbol(key), $value); return $value; } return $currentEnvir.at($.Symbol(key)); }); $.addProperty("This", function() { return $process.interpreter(); }); $.addProperty("ThisProcess", function() { return $process; }); $.addProperty("ThisThread", function() { return $currentThread; }); sc.lang.main = main; })(sc);