From 7364c6f6dbf460024ffc3fa5299891bb1a1d4c1f Mon Sep 17 00:00:00 2001 From: Yishai Galatzer Date: Mon, 13 Oct 2014 09:30:56 -0700 Subject: [PATCH] Expose code builder on generator result, and some tidying up --- .../Generator/CodeBuilderContext.cs | 2 +- .../Compiler/CodeTree/CodeTreeBuilder.cs | 2 -- src/Microsoft.AspNet.Razor/GeneratorResults.cs | 16 +++++++++++----- src/Microsoft.AspNet.Razor/RazorEngineHost.cs | 1 - .../RazorTemplateEngine.cs | 8 ++++---- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs b/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs index fa1d2eadcf..9a5337b909 100644 --- a/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs +++ b/src/Microsoft.AspNet.Razor/Generator/CodeBuilderContext.cs @@ -56,4 +56,4 @@ namespace Microsoft.AspNet.Razor.Generator /// public string Checksum { get; set; } } -} \ No newline at end of file +} diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs index 0a0d920930..888a1e9877 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs @@ -1,9 +1,7 @@ // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; using System.Collections.Generic; -using System.Diagnostics; using Microsoft.AspNet.Razor.Parser.SyntaxTree; namespace Microsoft.AspNet.Razor.Generator.Compiler diff --git a/src/Microsoft.AspNet.Razor/GeneratorResults.cs b/src/Microsoft.AspNet.Razor/GeneratorResults.cs index 85038be179..3f90c71218 100644 --- a/src/Microsoft.AspNet.Razor/GeneratorResults.cs +++ b/src/Microsoft.AspNet.Razor/GeneratorResults.cs @@ -9,32 +9,38 @@ namespace Microsoft.AspNet.Razor { public class GeneratorResults : ParserResults { - public GeneratorResults(ParserResults parserResults, CodeBuilderResult codeBuilderResult) + public GeneratorResults(ParserResults parserResults, CodeBuilderResult codeBuilderResult, CodeTree codeTree) : this(parserResults.Document, parserResults.ParserErrors, - codeBuilderResult) + codeBuilderResult, + codeTree) { } public GeneratorResults(Block document, IList parserErrors, - CodeBuilderResult codeBuilderResult) - : this(parserErrors.Count == 0, document, parserErrors, codeBuilderResult) + CodeBuilderResult codeBuilderResult, + CodeTree codeTree) + : this(parserErrors.Count == 0, document, parserErrors, codeBuilderResult, codeTree) { } protected GeneratorResults(bool success, Block document, IList parserErrors, - CodeBuilderResult codeBuilderResult) + CodeBuilderResult codeBuilderResult, + CodeTree codeTree) : base(success, document, parserErrors) { GeneratedCode = codeBuilderResult.Code; DesignTimeLineMappings = codeBuilderResult.DesignTimeLineMappings; + CodeTree = codeTree; } public string GeneratedCode { get; private set; } public IList DesignTimeLineMappings { get; private set; } + + public CodeTree CodeTree { get; private set; } } } diff --git a/src/Microsoft.AspNet.Razor/RazorEngineHost.cs b/src/Microsoft.AspNet.Razor/RazorEngineHost.cs index 8953e8d132..e941932d4e 100644 --- a/src/Microsoft.AspNet.Razor/RazorEngineHost.cs +++ b/src/Microsoft.AspNet.Razor/RazorEngineHost.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Microsoft.AspNet.Razor.Generator; using Microsoft.AspNet.Razor.Generator.Compiler; -using Microsoft.AspNet.Razor.Generator.Compiler.CSharp; using Microsoft.AspNet.Razor.Parser; using Microsoft.AspNet.Razor.TagHelpers; diff --git a/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs b/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs index 548107c142..72f06192e5 100644 --- a/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs +++ b/src/Microsoft.AspNet.Razor/RazorTemplateEngine.cs @@ -243,12 +243,12 @@ namespace Microsoft.AspNet.Razor rootNamespace = (rootNamespace ?? Host.DefaultNamespace) ?? DefaultNamespace; // Run the parser - RazorParser parser = CreateParser(); + var parser = CreateParser(); Debug.Assert(parser != null); - ParserResults results = parser.Parse(input); + var results = parser.Parse(input); // Generate code - RazorCodeGenerator generator = CreateCodeGenerator(className, rootNamespace, sourceFileName); + var generator = CreateCodeGenerator(className, rootNamespace, sourceFileName); generator.DesignTimeMode = Host.DesignTimeMode; generator.Visit(results); @@ -258,7 +258,7 @@ namespace Microsoft.AspNet.Razor var builderResult = builder.Build(); // Collect results and return - return new GeneratorResults(results, builderResult); + return new GeneratorResults(results, builderResult, codeBuilderContext.CodeTreeBuilder.CodeTree); } protected internal virtual RazorCodeGenerator CreateCodeGenerator(string className, string rootNamespace, string sourceFileName)