コード例 #1
0
        override public void WriteTo(ParserNodeContext Context)
        {
            //DynamicUtils.CountArray

            //Foreach(TemplateContext Context, String VarName, dynamic Expression, Action Iteration, Action Else = null)

            Context.WriteLine("Context.NewScope(delegate() {");
            Context.Indent(delegate()
            {
                Context.Write("Foreach(Context, {0}, ", StringUtils.EscapeString(VarName));
                Context.Indent(delegate()
                {
                    LoopIterator.WriteTo(Context);
                });
                Context.Write(", ");
                Context.WriteLine("new EmptyDelegate(delegate() {");
                Context.Indent(delegate()
                {
                    BodyBlock.WriteTo(Context);
                });
                Context.Write("})");
                if (!(ElseBlock is DummyParserNode))
                {
                    Context.Write(", ");
                    Context.WriteLine("new EmptyDelegate(delegate() {");
                    ElseBlock.WriteTo(Context);
                    Context.Write("})");
                }
                Context.WriteLine(");");          // Foreach
            });
            Context.WriteLine("});");             // Context.NewScope
        }
コード例 #2
0
 public override void WriteTo(ParserNodeContext Context)
 {
     Context.Write("DynamicUtils.Access(");
     Parent.WriteTo(Context);
     Context.Write(",");
     Key.WriteTo(Context);
     Context.Write(")");
 }
コード例 #3
0
 public override void WriteTo(ParserNodeContext Context)
 {
     Context.Write("Autoescape(Context, ");
     AutoescapeExpression.WriteTo(Context);
     Context.WriteLine(", new EmptyDelegate(delegate() {");
     Body.WriteTo(Context);
     Context.WriteLine("}));");
 }
コード例 #4
0
 override public void WriteTo(ParserNodeContext Context)
 {
     Context.Write("DynamicUtils.BinaryOperation_" + DynamicUtils.GetOpName(Operator) + "(");
     LeftNode.WriteTo(Context);
     Context.Write(",");
     RightNode.WriteTo(Context);
     Context.Write(")");
 }
コード例 #5
0
 public override void WriteTo(ParserNodeContext Context)
 {
     Context.Write("if (DynamicUtils.ConvertToBool(");
     ConditionNode.WriteTo(Context);
     Context.Write(")) {");
     Context.WriteLine("");
     BodyIfNode.WriteTo(Context);
     Context.Write("}");
     if (!(BodyElseNode is DummyParserNode))
     {
         Context.Write(" else {");
         BodyElseNode.WriteTo(Context);
         Context.Write("}");
     }
     Context.WriteLine("");
 }
コード例 #6
0
        public override void WriteTo(ParserNodeContext Context)
        {
            switch (Operator)
            {
            case "?":
                Context.Write("DynamicUtils.ConvertToBool(");
                ConditionNode.WriteTo(Context);
                Context.Write(")");
                Context.Write("?");
                Context.Write("(");
                TrueNode.WriteTo(Context);
                Context.Write(")");
                Context.Write(":");
                Context.Write("(");
                FalseNode.WriteTo(Context);
                Context.Write(")");
                break;

            default:
                throw (new Exception(String.Format("Unknown Operator '{0}'", Operator)));
            }
        }