示例#1
0
        public override object Execute(object[] args, ExecutionContext ctx)
        {
            Functor f   = ctx.GetFunction("ct");
            int     res = Convert.ToInt32(f.Execute(args, ctx));

            while (res > 9)
            {
                res = Convert.ToInt32(f.Execute(new object[] { res }, ctx));
            }
            return(res);
        }
示例#2
0
        public override object GetValue(ExecutionContext ctx)
        {
            string    functionName = function.GetValue(ctx).ToString();
            Functor   f            = ctx.GetFunction(functionName);
            ArrayList arguments    = new ArrayList();

            if (!emptyArgsList)
            {
                if (args.GetType() == typeof(Sequence <Expression>))
                {
                    Sequence <Expression> seq = (Sequence <Expression>)args;

                    foreach (Expression ex in (Sequence <Expression>)args)
                    {
                        arguments.Add(ex.GetValue(ctx));
                    }
                }
                else
                {
                    arguments.Add(((Expression)args).GetValue(ctx));
                }
            }
            return(f.Execute(arguments.ToArray(), ctx));
        }