コード例 #1
0
        public static DynValue sub(ScriptExecutionContext executionContext, CallbackArguments args)
        {
            DynValue arg_s = args.AsType(0, "sub", DataType.String, false);
            DynValue arg_i = args.AsType(1, "sub", DataType.Number, true);
            DynValue arg_j = args.AsType(2, "sub", DataType.Number, true);

            StringRange range = StringRange.FromLuaRange(arg_i, arg_j, -1);
            string      s     = range.ApplyToString(arg_s.String);

            return(DynValue.NewString(s));
        }
コード例 #2
0
        private static DynValue PerformByteLike(DynValue vs, DynValue vi, DynValue vj, Func <int, int> filter)
        {
            StringRange range = StringRange.FromLuaRange(vi, vj, null);
            string      s     = range.ApplyToString(vs.String);

            int length = s.Length;

            DynValue[] rets = new DynValue[length];

            for (int i = 0; i < length; ++i)
            {
                rets[i] = DynValue.NewNumber(filter((int)s[i]));
            }

            return(DynValue.NewTuple(rets));
        }