From 04fa54d0776399590fc5e9726b7e0d7c2af2f707 Mon Sep 17 00:00:00 2001 From: triton Date: Wed, 6 Feb 2013 22:18:14 +0000 Subject: [PATCH] Move CLIGenerator to its own file. --- src/Generator/Generators/CLI/CLIGenerator.cs | 43 +++++++++++++ src/Generator/Generators/CLI/CLIHelpers.cs | 63 -------------------- 2 files changed, 43 insertions(+), 63 deletions(-) create mode 100644 src/Generator/Generators/CLI/CLIGenerator.cs delete mode 100644 src/Generator/Generators/CLI/CLIHelpers.cs diff --git a/src/Generator/Generators/CLI/CLIGenerator.cs b/src/Generator/Generators/CLI/CLIGenerator.cs new file mode 100644 index 00000000..7da3dca4 --- /dev/null +++ b/src/Generator/Generators/CLI/CLIGenerator.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using Cxxi.Passes; +using Cxxi.Types; + +namespace Cxxi.Generators.CLI +{ + public class CLIGenerator : Generator + { + private readonly ITypePrinter typePrinter; + + public CLIGenerator(Driver driver) : base(driver) + { + typePrinter = new CLITypePrinter(driver.TypeDatabase, driver.Library); + Type.TypePrinter = typePrinter; + } + + void WriteTemplate(TextTemplate template) + { + var file = Path.GetFileNameWithoutExtension(template.unit.FileName) + + Driver.Options.WrapperSuffix + "." + + template.FileExtension; + + var path = Path.Combine(Driver.Options.OutputDir, file); + + template.Generate(); + + Console.WriteLine(" Generated '" + file + "'."); + File.WriteAllText(Path.GetFullPath(path), template.ToString()); + } + + public override bool Generate(TranslationUnit unit) + { + var header = new CLIHeadersTemplate(Driver, unit); + WriteTemplate(header); + + var source = new CLISourcesTemplate(Driver, unit); + WriteTemplate(source); + + return true; + } + } +} \ No newline at end of file diff --git a/src/Generator/Generators/CLI/CLIHelpers.cs b/src/Generator/Generators/CLI/CLIHelpers.cs deleted file mode 100644 index a9dd718b..00000000 --- a/src/Generator/Generators/CLI/CLIHelpers.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.IO; -using Cxxi.Types; - -namespace Cxxi.Generators.CLI -{ - public class CLIGenerator : ILanguageGenerator - { - public DriverOptions Options { get; set; } - public Library Library { get; set; } - public ILibrary Transform { get; set; } - public ITypeMapDatabase TypeMapDatabase { get; set; } - public Generator Generator { get; set; } - - private readonly ITypePrinter typePrinter; - - public CLIGenerator(Generator generator) - { - Generator = generator; - typePrinter = new CLITypePrinter(TypeMapDatabase, Library); - Type.TypePrinter = typePrinter; - } - - T CreateTemplate(TranslationUnit unit) where T : CLITextTemplate, new() - { - var template = new T - { - Generator = Generator, - DriverOptions = Options, - Library = Library, - Transform = Transform, - Module = unit, - TypePrinter = typePrinter - }; - - return template; - } - - public static String WrapperSuffix = "_wrapper"; - - void WriteTemplate(TextTemplate template) - { - var file = Path.GetFileNameWithoutExtension(template.Module.FileName) + WrapperSuffix + "." - + template.FileExtension; - - var path = Path.Combine(Options.OutputDir, file); - - Console.WriteLine(" Generated '" + file + "'."); - File.WriteAllText(Path.GetFullPath(path), template.ToString()); - } - - public bool Generate(TranslationUnit unit) - { - var header = CreateTemplate(unit); - WriteTemplate(header); - - var source = CreateTemplate(unit); - WriteTemplate(source); - - return true; - } - } -} \ No newline at end of file