Example #1
0
        static void CompleteUsage(string script)
        {
            // 详细用法
            var app           = new SlothScript.Program(script);
            var compileResult = app.Compile();

            if (compileResult.success)
            {
                var startTime = DateTime.Now;
                var runResult = app.Run();
                var endTime   = DateTime.Now;
                Console.WriteLine("耗时:{0}ms", (endTime - startTime).TotalMilliseconds);
                if (runResult.success)
                {
                    Console.WriteLine("返回值 => " + runResult.returnVal);
                }
                else
                {
                    Console.WriteLine("错误信息 => " + runResult.error);
                }
            }
            else
            {
                Console.WriteLine("编译错误 => " + compileResult.output);
            }
        }
Example #2
0
        static void VmUsage()
        {
            var vm = new SlothScript.VM();
            // 添加函数库脚本到虚拟机
            var lib = new SlothScript.Program(@"
// 函数库
def max(x, y) do
  if x > y do
    return x;
  else
    return y;
  end;
end;
");

            lib.Compile();
            vm.AddScriptLib(lib);
            // 添加CS方法到虚拟机
            vm.AddCsharpMethod("cs_TestFoo", SlothScriptExport_TestFoo);
            // 在另外一个脚本中调用这两个方法
            var app = new SlothScript.Program(@"
// 测试函数库
a = 10;
b = cs_TestFoo(5,15); // csharp方法
return max(a, b);
");

            app.Compile();
            Console.WriteLine(app.Run(vm));                          // 将vm作为参数传入,app即可使用vm的环境来运行
            Console.WriteLine(vm.CallScriptFunction("max", 22, 33)); // csharp调用脚本函数
        }
Example #3
0
        static void SimplistUsage(string script)
        {
            // 最简用法
            var program = new SlothScript.Program(script);

            program.Compile();
            Console.WriteLine("ans=" + program.Run().returnVal);
        }