public override string Execute(ExecutionContext context) { var output = new StringBuilder(); double counter = context.GetDoubleFrom(Start.Evaluate(context)); while(true) { context.SetVariable(Variable, counter); output.Append(ExecuteChildren(context)); counter = context.GetDoubleFrom(context.GetVariable(Variable)); counter += Step == null ? 1.0 : context.GetDoubleFrom(Step.Evaluate(context)); if(counter >= context.GetDoubleFrom(End.Evaluate(context))) { break; } } return output.ToString(); }