예제 #1
0
        public int Run(params string[] args)
        {
            var config = new ProgramConfiguration(args);
            var engine = new mwr.HTMLEngine(config);
            int result;

            if (config.EnableReplay)
            {
                result = mwr.RecordReplayManager.RunReplay(config.ReplayFilename, config.ReplayParams);
            }
            else
            if (config.DumpJSOnly || !string.IsNullOrEmpty(config.InstJSPrefix))
            {
                LoadRuntime(config);

                foreach (var pair in _scripts)
                {
                    var Filename = System.IO.Path.GetFullPath(System.IO.Path.Combine(config.OutputDir, System.IO.Path.GetFileNameWithoutExtension(pair.Key) + "_inst.js"));
                    var output   = new System.IO.StreamWriter(Filename);
                    //mjr.AstWriter writer;
                    //if (config.DumpJSOnly)
                    //    writer = new mjr.AstWriter(output);
                    //else
                    //    writer = new mjr.CodeGen.JSIntrumentor(output);
                    //writer.Execute(_runtime.Scripts.GetOrAdd(pair.Value, pair.Key, _runtime));
                    output.Close();
                }
                result = 0;
            }
            else if (config.OnlyLex || config.OnlyParse || config.OnlyAnalyze || config.OnlyJit || config.DumpIRGraph)
            {
                LoadRuntime(config);
                foreach (var pair in _scripts)
                {
                    DoAll(_runtime.Scripts.GetOrAdd(pair.Value, pair.Key, _runtime), config);
                }
                _runtime.ShutDown();
                result = 0;
            }
            else
            {
                result = Run(null, config);
            }
            engine.ShutDown();
            return(result);
        }
예제 #2
0
파일: Program.cs 프로젝트: reshadi2/mcjs
    public int Run(params string[] args)
    {
      var config = new ProgramConfiguration(args);
      var engine = new mwr.HTMLEngine(config);
      int result;
      if (config.EnableReplay)
      {
        result = mwr.RecordReplayManager.RunReplay(config.ReplayFilename, config.ReplayParams);
      }
      else
        if (config.DumpJSOnly || !string.IsNullOrEmpty(config.InstJSPrefix))
        {
          LoadRuntime(config);

          foreach (var pair in _scripts)
          {
            var Filename = System.IO.Path.GetFullPath(System.IO.Path.Combine(config.OutputDir, System.IO.Path.GetFileNameWithoutExtension(pair.Key) + "_inst.js"));
            var output = new System.IO.StreamWriter(Filename);
            //mjr.AstWriter writer;
            //if (config.DumpJSOnly)
            //    writer = new mjr.AstWriter(output);
            //else
            //    writer = new mjr.CodeGen.JSIntrumentor(output);
            //writer.Execute(_runtime.Scripts.GetOrAdd(pair.Value, pair.Key, _runtime));
            output.Close();
          }
          result = 0;
        }
        else if (config.OnlyLex || config.OnlyParse || config.OnlyAnalyze || config.OnlyJit || config.DumpIRGraph)
        {
          LoadRuntime(config);
          foreach (var pair in _scripts)
            DoAll(_runtime.Scripts.GetOrAdd(pair.Value, pair.Key, _runtime), config);
          _runtime.ShutDown();
          result = 0;
        }
        else
          result = Run(null, config);
      engine.ShutDown();
      return result;
    }