public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
{
ValidateArguments(arguments, 4);
var oldText = ArgToString(arguments, 0);
var startPos = ArgToInt(arguments, 1);
var nCharsToReplace = ArgToInt(arguments, 2);
var newText = ArgToString(arguments, 3);
var firstPart = GetFirstPart(oldText, startPos);
var lastPart = GetLastPart(oldText, startPos, nCharsToReplace);
var result = string.Concat(firstPart, newText, lastPart);
return CreateResult(result, DataType.String);
}