コード例 #1
0
ファイル: ForNode.cs プロジェクト: strager/osq2osb
        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();
        }