Indent() public method

public Indent ( System.Action Action ) : void
Action System.Action
return void
Beispiel #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
        }
		public override 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(async delegate() {");
				Context.Indent(delegate()
				{
					BodyBlock.WriteTo(Context);
				});
				Context.Write("})");
				if (!(ElseBlock is DummyParserNode))
				{
					Context.Write(", ");
					Context.WriteLine("new EmptyDelegate(async delegate() {");
					ElseBlock.WriteTo(Context);
					Context.Write("})");
				}
				Context.WriteLine(");");  // Foreach
			});
			Context.WriteLine("});"); // Context.NewScope
		}
Beispiel #3
0
		protected void RenderCodeTo(TextWriter TextWriter)
		{
			var TemplateHandler = new TemplateParser(Tokens, TextWriter);
			var Context = new ParserNodeContext(TextWriter, TemplateFactory);
			TemplateHandler.Reset();
			var ParserNode = TemplateHandler.HandleLevel_Root();

			//OptimizedParserNode.Dump();
			Context.WriteLine("using System;");
			Context.WriteLine("using System.Collections.Generic;");
			Context.WriteLine("using System.Threading.Tasks;");
			Context.WriteLine("using CSharpUtils.Templates;");
			Context.WriteLine("using CSharpUtils.Templates.Runtime;");
			Context.WriteLine("using CSharpUtils.Templates.TemplateProvider;");
			Context.WriteLine("");
			//Context.WriteLine("namespace CSharpUtils.Templates.CompiledTemplates {");
			Context.Indent(delegate()
			{
				Context.WriteLine("class CompiledTemplate_TempTemplate : TemplateCode {");

				Context.Indent(delegate()
				{
					Context.WriteLine("public CompiledTemplate_TempTemplate(TemplateFactory TemplateFactory = null) : base(TemplateFactory) { }");
					Context.WriteLine("");

					Context.WriteLine("public override void SetBlocks(Dictionary<String, RenderDelegate> Blocks) {");
					Context.Indent(delegate()
					{
						foreach (var BlockPair in TemplateHandler.Blocks)
						{
							Context.WriteLine(String.Format("SetBlock(Blocks, {0}, Block_{1});", StringUtils.EscapeString(BlockPair.Key), BlockPair.Key));
						}
					});
					Context.WriteLine("}");
					Context.WriteLine("");

					Context.WriteLine("async protected override Task LocalRenderAsync(TemplateContext Context) {");
					Context.Indent(delegate()
					{
						ParserNode.OptimizeAndWrite(Context);
					});
					Context.WriteLine("}"); // Method

					foreach (var BlockPair in TemplateHandler.Blocks)
					{
						Context.WriteLine("");
						Context.WriteLine("public async Task Block_" + BlockPair.Key + "(TemplateContext Context) {");
						Context.Indent(delegate()
						{
							BlockPair.Value.OptimizeAndWrite(Context);
						});
						Context.WriteLine("}"); // Method
					}
				});

				Context.WriteLine("}"); // class
			});

			//Context.WriteLine("}"); // namespace
		}