Пример #1
0
        protected override Variable Evaluate(ParsingScript script)
        {
            string funcName = Utils.GetToken(script, Constants.NEXT_OR_END_ARRAY);
            var initPointer = script.Pointer;

            List<Variable> args = script.GetFunctionArgs();

            string arg1 = Utils.GetSafeString(args, 0, null);
            string arg2 = Utils.GetSafeString(args, 1, null);
            string arg3 = Utils.GetSafeString(args, 2, null);

            ParserFunction func = ParserFunction.GetFunction(funcName, script);
            Utils.CheckNotNull(funcName, func, script);

            if (func is CustomFunction)
            {
                CommonFunctions.RunOnMainThread(func as CustomFunction, arg1, arg2, arg3);
                return Variable.EmptyInstance;
            }

            ParsingScript tempScript = script.GetTempScript(script.String, initPointer);
            PrintConsoleFunction.Print("RunOnMain rest=" + tempScript.Rest);
            CommonFunctions.RunFunctionOnMainThread(func, tempScript);
            //Thread.Sleep(100);
            return Variable.EmptyInstance;
        }