internal override void Eval(ProcessingContext context) { StackFrame[] frameArray = new StackFrame[this.argCount]; for (int i = 0; i < this.argCount; i++) { frameArray[i] = context[i]; } StringBuilder builder = new StringBuilder(); while (frameArray[0].basePtr <= frameArray[0].endPtr) { builder.Length = 0; for (int k = 0; k < this.argCount; k++) { builder.Append(context.PeekString(frameArray[k].basePtr)); } context.SetValue(context, frameArray[this.argCount - 1].basePtr, builder.ToString()); for (int m = 0; m < this.argCount; m++) { frameArray[m].basePtr++; } } for (int j = 0; j < (this.argCount - 1); j++) { context.PopFrame(); } }
internal override void Eval(ProcessingContext context) { Fx.Assert(context != null, ""); StackFrame[] args = new StackFrame[argCount]; for (int i = 0; i < this.argCount; ++i) { args[i] = context[i]; } StringBuilder builder = new StringBuilder(); while (args[0].basePtr <= args[0].endPtr) { builder.Length = 0; for (int i = 0; i < this.argCount; ++i) { builder.Append(context.PeekString(args[i].basePtr)); } context.SetValue(context, args[this.argCount - 1].basePtr, builder.ToString()); for (int i = 0; i < this.argCount; ++i) { args[i].basePtr++; } } for (int i = 0; i < this.argCount - 1; ++i) { context.PopFrame(); } }