diff --git a/src/Generator/Templates/CSharpModule.cs b/src/Generator/Templates/CSharpModule.cs
deleted file mode 100644
index 885e2632..00000000
--- a/src/Generator/Templates/CSharpModule.cs
+++ /dev/null
@@ -1,684 +0,0 @@
-// ------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version: 10.0.0.0
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-// ------------------------------------------------------------------------------
-namespace Cxxi.Templates
-{
- using System;
-
-
- #line 1 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
- [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")]
- public partial class CSharpModule : CSharpModuleBase
- {
- public virtual string TransformText()
- {
- this.Write("using System;\r\nusing System.Runtime.InteropServices;\r\n\r\nnamespace ");
-
- #line 6 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
- this.Write(this.ToStringHelper.ToStringWithCulture(SafeIdentifier(Library.Name)));
-
- #line default
- #line hidden
- this.Write("\r\n{\r\n");
-
- #line 8 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
- GenerateDeclarations();
-
-
- #line default
- #line hidden
- this.Write("}\r\n\r\n");
- return this.GenerationEnvironment.ToString();
- }
-
- #line 13 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateDeclarations()
-{
- PushIndent(DefaultIndent);
-
- bool NeedsNewline = false;
-
- // Generate all the enum declarations for the module.
- for(int i = 0; i < Module.Global.Enums.Count; ++i)
- {
- var E = Module.Global.Enums[i];
- if (E.Ignore) continue;
-
- GenerateEnum(E);
- NeedsNewline = true;
- if (i < Module.Global.Enums.Count - 1)
- WriteLine("");
- }
-
- if (NeedsNewline)
- WriteLine("");
-
- NeedsNewline = false;
-
- // Generate all the struct/class declarations for the module.
- for(int i = 0; i < Module.Global.Classes.Count; ++i)
- {
- var C = Module.Global.Classes[i];
- if (C.Ignore) continue;
-
- GenerateClass(C);
- NeedsNewline = true;
- if (i < Module.Global.Classes.Count - 1)
- WriteLine("");
- }
-
- if (NeedsNewline)
- WriteLine("");
-
- if (Module.Global.HasFunctions)
- {
- WriteLine("public partial class " + SafeIdentifier(Library.Name));
- WriteLine("{");
- PushIndent(DefaultIndent);
- }
-
- // Generate all the function declarations for the module.
- foreach(var E in Module.Global.Functions)
- {
- GenerateFunction(E);
- }
-
- if (Module.Global.HasFunctions)
- {
- PopIndent();
- WriteLine("}");
- }
-
- PopIndent();
-}
-
-
- #line default
- #line hidden
-
- #line 75 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateTypeCommon(Declaration T)
-{
- GenerateSummary(T.BriefComment);
- GenerateDebug(T);
-}
-
-
- #line default
- #line hidden
-
- #line 83 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateClass(Class C)
-{
- if(C.Ignore) return;
- GenerateTypeCommon(C);
-
- Write("public ");
-
- if (C.IsAbstract)
- Write("abstract ");
-
- Write("class {0}", C.Name);
-
- if (C.HasBase)
- Write(" : {0}", C.Bases[0].Class.Name);
-
- WriteLine(String.Empty);
- WriteLine("{");
-
- PushIndent(DefaultIndent);
- foreach(var F in C.Fields)
- {
- GenerateTypeCommon(F);
- WriteLine("public {0} {1};", F.Type, F.Name);
- }
- PopIndent();
-
- WriteLine("}");
-}
-
-
- #line default
- #line hidden
-
- #line 115 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateFunction(Function F)
-{
- if(F.Ignore) return;
- GenerateTypeCommon(F);
-
-
- #line default
- #line hidden
-
- #line 120 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("[DllImport(\"");
-
-
- #line default
- #line hidden
-
- #line 121 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(this.ToStringHelper.ToStringWithCulture(SafeIdentifier(Library.Name)));
-
-
- #line default
- #line hidden
-
- #line 121 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(".dll\")]\r\npublic static extern ");
-
-
- #line default
- #line hidden
-
- #line 122 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(this.ToStringHelper.ToStringWithCulture(F.ReturnType));
-
-
- #line default
- #line hidden
-
- #line 122 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(" ");
-
-
- #line default
- #line hidden
-
- #line 122 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(this.ToStringHelper.ToStringWithCulture(SafeIdentifier(F.Name)));
-
-
- #line default
- #line hidden
-
- #line 122 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("(");
-
-
- #line default
- #line hidden
-
- #line 122 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-for(int i = 0; i < F.Parameters.Count; ++i)
-{
- var P = F.Parameters[i];
- Write("{0} {1}", P.Type, SafeIdentifier(P.Name));
- if (i < F.Parameters.Count - 1)
- Write(", ");
-}
-
-
- #line default
- #line hidden
-
- #line 130 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(");\r\n");
-
-
- #line default
- #line hidden
-
- #line 131 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-WriteLine("");
-}
-
-
- #line default
- #line hidden
-
- #line 136 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateDebug(Declaration T)
-{
- if(Options.OutputDebug && !String.IsNullOrWhiteSpace(T.DebugText))
- WriteLine("// DEBUG: " + T.DebugText);
-}
-
-
- #line default
- #line hidden
-
- #line 144 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateSummary(string Comment)
-{
- if(String.IsNullOrWhiteSpace(Comment))
- return;
-
-
- #line default
- #line hidden
-
- #line 149 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("/// \r\n/// ");
-
-
- #line default
- #line hidden
-
- #line 151 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(this.ToStringHelper.ToStringWithCulture(Comment));
-
-
- #line default
- #line hidden
-
- #line 151 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("\r\n/// \r\n");
-
-
- #line default
- #line hidden
-
- #line 153 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-}
-
-
- #line default
- #line hidden
-
- #line 157 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateInlineSummary(string Comment)
-{
- if(String.IsNullOrWhiteSpace(Comment))
- return;
-
-
- #line default
- #line hidden
-
- #line 162 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("/// ");
-
-
- #line default
- #line hidden
-
- #line 163 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(this.ToStringHelper.ToStringWithCulture(Comment));
-
-
- #line default
- #line hidden
-
- #line 163 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(" \r\n");
-
-
- #line default
- #line hidden
-
- #line 164 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-}
-
-
- #line default
- #line hidden
-
- #line 168 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-public void GenerateEnum(Enumeration E)
-{
- if(E.Ignore) return;
- GenerateTypeCommon(E);
-
- if(E.Modifiers.HasFlag(Enumeration.EnumModifiers.Flags))
- WriteLine("[Flags]");
-
-
- #line default
- #line hidden
-
- #line 176 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("public enum ");
-
-
- #line default
- #line hidden
-
- #line 177 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write(this.ToStringHelper.ToStringWithCulture(SafeIdentifier(E.Name)));
-
-
- #line default
- #line hidden
-
- #line 177 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("\r\n");
-
-
- #line default
- #line hidden
-
- #line 178 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-if(E.Type.Type != PrimitiveType.Int32)
- WriteLine(" : {0}", E.Type.Type.ConvertToTypeName());
-WriteLine("{");
-
-PushIndent(DefaultIndent);
-for(int i = 0; i < E.Items.Count; ++i)
-{
- var I = E.Items[i];
- GenerateInlineSummary(I.Comment);
- if (I.ExplicitValue)
- Write(String.Format("{0} = {1}", SafeIdentifier(I.Name), I.Value));
- else
- Write(String.Format("{0}", SafeIdentifier(I.Name)));
-
- if (i < E.Items.Count - 1)
- WriteLine(",");
-}
-PopIndent();
-WriteLine("");
-
-
- #line default
- #line hidden
-
- #line 198 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-this.Write("}\r\n");
-
-
- #line default
- #line hidden
-
- #line 200 "C:\Users\Tritonite\Development\cxxi\src\Generator\Templates\CSharpModule.tt"
-
-}
-
-
- #line default
- #line hidden
- }
-
- #line default
- #line hidden
- #region Base class
- ///
- /// Base class for this transformation
- ///
- [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")]
- public class CSharpModuleBase
- {
- #region Fields
- private global::System.Text.StringBuilder generationEnvironmentField;
- private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField;
- private global::System.Collections.Generic.List indentLengthsField;
- private string currentIndentField = "";
- private bool endsWithNewline;
- private global::System.Collections.Generic.IDictionary sessionField;
- #endregion
- #region Properties
- ///
- /// The string builder that generation-time code is using to assemble generated output
- ///
- protected System.Text.StringBuilder GenerationEnvironment
- {
- get
- {
- if ((this.generationEnvironmentField == null))
- {
- this.generationEnvironmentField = new global::System.Text.StringBuilder();
- }
- return this.generationEnvironmentField;
- }
- set
- {
- this.generationEnvironmentField = value;
- }
- }
- ///
- /// The error collection for the generation process
- ///
- public System.CodeDom.Compiler.CompilerErrorCollection Errors
- {
- get
- {
- if ((this.errorsField == null))
- {
- this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection();
- }
- return this.errorsField;
- }
- }
- ///
- /// A list of the lengths of each indent that was added with PushIndent
- ///
- private System.Collections.Generic.List indentLengths
- {
- get
- {
- if ((this.indentLengthsField == null))
- {
- this.indentLengthsField = new global::System.Collections.Generic.List();
- }
- return this.indentLengthsField;
- }
- }
- ///
- /// Gets the current indent we use when adding lines to the output
- ///
- public string CurrentIndent
- {
- get
- {
- return this.currentIndentField;
- }
- }
- ///
- /// Current transformation session
- ///
- public virtual global::System.Collections.Generic.IDictionary Session
- {
- get
- {
- return this.sessionField;
- }
- set
- {
- this.sessionField = value;
- }
- }
- #endregion
- #region Transform-time helpers
- ///
- /// Write text directly into the generated output
- ///
- public void Write(string textToAppend)
- {
- if (string.IsNullOrEmpty(textToAppend))
- {
- return;
- }
- // If we're starting off, or if the previous text ended with a newline,
- // we have to append the current indent first.
- if (((this.GenerationEnvironment.Length == 0)
- || this.endsWithNewline))
- {
- this.GenerationEnvironment.Append(this.currentIndentField);
- this.endsWithNewline = false;
- }
- // Check if the current text ends with a newline
- if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture))
- {
- this.endsWithNewline = true;
- }
- // This is an optimization. If the current indent is "", then we don't have to do any
- // of the more complex stuff further down.
- if ((this.currentIndentField.Length == 0))
- {
- this.GenerationEnvironment.Append(textToAppend);
- return;
- }
- // Everywhere there is a newline in the text, add an indent after it
- textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField));
- // If the text ends with a newline, then we should strip off the indent added at the very end
- // because the appropriate indent will be added when the next time Write() is called
- if (this.endsWithNewline)
- {
- this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length));
- }
- else
- {
- this.GenerationEnvironment.Append(textToAppend);
- }
- }
- ///
- /// Write text directly into the generated output
- ///
- public void WriteLine(string textToAppend)
- {
- this.Write(textToAppend);
- this.GenerationEnvironment.AppendLine();
- this.endsWithNewline = true;
- }
- ///
- /// Write formatted text directly into the generated output
- ///
- public void Write(string format, params object[] args)
- {
- this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args));
- }
- ///
- /// Write formatted text directly into the generated output
- ///
- public void WriteLine(string format, params object[] args)
- {
- this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args));
- }
- ///
- /// Raise an error
- ///
- public void Error(string message)
- {
- System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError();
- error.ErrorText = message;
- this.Errors.Add(error);
- }
- ///
- /// Raise a warning
- ///
- public void Warning(string message)
- {
- System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError();
- error.ErrorText = message;
- error.IsWarning = true;
- this.Errors.Add(error);
- }
- ///
- /// Increase the indent
- ///
- public void PushIndent(string indent)
- {
- if ((indent == null))
- {
- throw new global::System.ArgumentNullException("indent");
- }
- this.currentIndentField = (this.currentIndentField + indent);
- this.indentLengths.Add(indent.Length);
- }
- ///
- /// Remove the last indent that was added with PushIndent
- ///
- public string PopIndent()
- {
- string returnValue = "";
- if ((this.indentLengths.Count > 0))
- {
- int indentLength = this.indentLengths[(this.indentLengths.Count - 1)];
- this.indentLengths.RemoveAt((this.indentLengths.Count - 1));
- if ((indentLength > 0))
- {
- returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength));
- this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength));
- }
- }
- return returnValue;
- }
- ///
- /// Remove any indentation
- ///
- public void ClearIndent()
- {
- this.indentLengths.Clear();
- this.currentIndentField = "";
- }
- #endregion
- #region ToString Helpers
- ///
- /// Utility class to produce culture-oriented representation of an object as a string.
- ///
- public class ToStringInstanceHelper
- {
- private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture;
- ///
- /// Gets or sets format provider to be used by ToStringWithCulture method.
- ///
- public System.IFormatProvider FormatProvider
- {
- get
- {
- return this.formatProviderField ;
- }
- set
- {
- if ((value != null))
- {
- this.formatProviderField = value;
- }
- }
- }
- ///
- /// This is called from the compile/run appdomain to convert objects within an expression block to a string
- ///
- public string ToStringWithCulture(object objectToConvert)
- {
- if ((objectToConvert == null))
- {
- throw new global::System.ArgumentNullException("objectToConvert");
- }
- System.Type t = objectToConvert.GetType();
- System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] {
- typeof(System.IFormatProvider)});
- if ((method == null))
- {
- return objectToConvert.ToString();
- }
- else
- {
- return ((string)(method.Invoke(objectToConvert, new object[] {
- this.formatProviderField })));
- }
- }
- }
- private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper();
- public ToStringInstanceHelper ToStringHelper
- {
- get
- {
- return this.toStringHelperField;
- }
- }
- #endregion
- }
- #endregion
-}