示例#1
0
        private static EvaluationResult Div(Context context, ModuleLiteral env, EvaluationStackFrame args)
        {
            int divident = Args.AsInt(args, 0);
            int divisor  = Args.AsInt(args, 1);

            return(DoMath(() => divident / divisor));
        }
示例#2
0
        private static EvaluationResult Abs(Context context, ModuleLiteral env, EvaluationStackFrame args)
        {
            int value = Args.AsInt(args, 0);

            // Cast to long to force an overflow for int.MinValue
            return(DoMath(() => checked ((int)Math.Abs((long)value))));
        }
示例#3
0
        private static EvaluationResult Pow(Context context, ModuleLiteral env, EvaluationStackFrame args)
        {
            int @base    = Args.AsInt(args, 0);
            int exponent = Args.AsInt(args, 1);

            return(DoMath(() => checked ((int)Math.Pow(@base, exponent))));
        }
示例#4
0
        private static EvaluationResult Sleep(Context context, ModuleLiteral env, EvaluationStackFrame args)
        {
            int milliseconds = Args.AsInt(args, 0);

            if (milliseconds >= 0)
            {
                Thread.Sleep(milliseconds);
            }

            return(EvaluationResult.Undefined);
        }