Exemplo n.º 1
0
        static void Main(string[] args)
        {
            int exitCode = 0;

            try {
                BatchScript.Init();
                var r     = DslExpression.CalculatorValue.NullObject;
                var vargs = BatchScript.NewCalculatorValueList();
                if (args.Length <= 0)
                {
                    r = BatchScript.Run(string.Empty, vargs);
                }
                else
                {
                    foreach (var arg in args)
                    {
                        vargs.Add(arg);
                    }
                    r = BatchScript.Run(args[0], vargs);
                }
                BatchScript.RecycleCalculatorValueList(vargs);
                if (!r.IsNullObject)
                {
                    exitCode = r.Get <int>();
                }
            } catch (Exception ex) {
                BatchScript.Log("exception:{0}\n{1}", ex.Message, ex.StackTrace);
                exitCode = -1;
            }
            Environment.Exit(exitCode);
        }
Exemplo n.º 2
0
 internal static void ReloadDsl()
 {
     lock (s_PluginLock) {
         string dslPath = Path.Combine(s_Context.CurrentPluginMetadata.PluginDirectory, "main.dsl");
         var    vargs   = BatchScript.NewCalculatorValueList();
         vargs.Add(s_Context.CurrentPluginMetadata.ID);
         vargs.Add(CalculatorValue.FromObject(s_Context.CurrentPluginMetadata));
         vargs.Add(CalculatorValue.FromObject(s_Context));
         BatchScript.Run(dslPath, vargs);
         BatchScript.RecycleCalculatorValueList(vargs);
         ShowLog("ReloadDsl");
     }
 }
Exemplo n.º 3
0
    protected override CalculatorValue OnCalc(IList <CalculatorValue> operands)
    {
        CalculatorValue r = CalculatorValue.NullObject;

        if (operands.Count >= 1)
        {
            string code = operands[0].As <string>();
            var    args = BatchScript.NewCalculatorValueList();
            for (int i = 1; i < operands.Count; ++i)
            {
                var arg = operands[i];
                args.Add(arg);
            }
            var id = BatchScript.Eval(code, new string[] { "$query", "$result", "$actionContext" });
            if (null != id)
            {
                r = BatchScript.Call(id, args);
            }
            BatchScript.RecycleCalculatorValueList(args);
        }
        return(r);
    }