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)); }
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)); }