Esempio n. 1
0
 public ParsedEnum(Enumeration e)
 {
     Comments = new ParsedComment(e);
     Name     = !string.IsNullOrWhiteSpace(e.Name) ? e.Name : throw new ArgumentException("Enum name cannot be blank");
     BaseType = GetBaseTypeName(e.BuiltinType);
     Members  = from i in e.Items
                select(i.Name, e.GetItemValueAsString(i), new ParsedComment( i ));
 }
        public ParsedFunctionSignature(Function f)
        {
            if (f.IsOperator || f.IsThisCall)
            {
                throw new ArgumentException("Unsupported function type", nameof(f));
            }

            Signature  = f.FunctionType.Type as FunctionType;
            Comments   = new ParsedComment(f);
            Name       = f.Name;
            Attributes = f.Attributes;
            Introducer = "public static extern ";
        }
        public ParsedFunctionSignature(TypedefNameDecl td)
        {
            if (td.TryGetFunctionSignature(out FunctionType signature))
            {
                if (signature.CallingConvention != CppSharp.AST.CallingConvention.C)
                {
                    throw new NotSupportedException("Only delegates with the 'C' Calling convention are supported");
                }

                Signature  = signature;
                Comments   = new ParsedComment(td);
                Name       = td.Name;
                Attributes = new[] { UnmanagedFunctionPointerAttrib };
                Introducer = "public delegate ";
            }
            else
            {
                throw new ArgumentException("pointer to function type required");
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("<!--\r\n;; ========================================================================" +
                       "======\r\n;; <auto-generated>\r\n;;     This file was generated by a tool.\r\n;;     R" +
                       "untime Version: ");

            #line 10 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ToolVersion));

            #line default
            #line hidden
            this.Write(@"
;;
;;     Changes to this file may cause incorrect behavior and will be lost if
;;     the code is regenerated.
;; </auto-generated>
;; <usage>
;;     This file contains the bare bones skeleton doc comments info that the
;;     generated code files refer to. If the original source contained comments,
;;     those comments are generated here as the ""remarks"" element to aid in
;;     completing the docs. This always generated file is created with a .g.xml
;;     extension, however the generated C# code includes the form with the "".g""
;;     in the extension. This prevents the generation of this skeleton from
;;     overwriting any customized docs data. Any new entries need merging into
;;     the real version with all the manual edits.
;; </usage>
;; ==============================================================================
-->
<LibLlvmAPI>
");

            #line 28 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            foreach (var e in Enums)
            {
            #line default
            #line hidden
                this.Write("    <Enumeration name=\"");

            #line 29 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden
                this.Write("\">\r\n        <summary>TODO: Provide summary for ");

            #line 30 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden
                this.Write(" Enumeration</summary>\r\n");

            #line 31 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                if (e.Comments.Any())
                {
            #line default
            #line hidden
                    this.Write("        <remarks>\r\n");

            #line 33 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    foreach (var commentLine in e.Comments)
                    {
            #line default
            #line hidden
                        this.Write("            ");

            #line 34 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(commentLine));

            #line default
            #line hidden
                        this.Write("\r\n");

            #line 35 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("        </remarks>\r\n");

            #line 37 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden

            #line 38 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                foreach (var enumItem in e.Members)
                {
            #line default
            #line hidden
                    this.Write("        <Item name=\"");

            #line 39 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(enumItem.Name));

            #line default
            #line hidden
                    this.Write("\">\r\n            <summary>TODO: Provide summary for ");

            #line 40 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden
                    this.Write(".");

            #line 40 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(enumItem.Name));

            #line default
            #line hidden
                    this.Write(" Enumeration</summary>\r\n        </Item>\r\n");

            #line 42 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    </Enumeration>\r\n");

            #line 44 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            }

            #line default
            #line hidden

            #line 45 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            foreach (var d in Delegates)
            {
            #line default
            #line hidden
                this.Write("    <Delegate name=\"");

            #line 46 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

            #line default
            #line hidden
                this.Write("\">\r\n        <summary>TODO: Provide summary for Delegate ");

            #line 47 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

            #line default
            #line hidden
                this.Write("</summary>\r\n");

            #line 48 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                foreach (var p in d.ParameterNames)
                {
            #line default
            #line hidden
                    this.Write("        <param name=\"");

            #line 49 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(p));

            #line default
            #line hidden
                    this.Write("\">TODO: Provide details of parameter ");

            #line 49 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(p));

            #line default
            #line hidden
                    this.Write("</param>\r\n");

            #line 50 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden

            #line 50 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                if (d.HasNonVoidReturn)
                {
            #line default
            #line hidden
                    this.Write("        <returns>TODO: Document return value</returns>\r\n");

            #line 52 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    </Delegate>\r\n");

            #line 54 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            }

            #line default
            #line hidden

            #line 55 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            foreach (var f in Functions)
            {
            #line default
            #line hidden
                this.Write("    <Function name=\"");

            #line 56 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(f.Name));

            #line default
            #line hidden
                this.Write("\">\r\n        <summary>TODO: Provide summary for Function ");

            #line 57 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(f.Name));

            #line default
            #line hidden
                this.Write("</summary>\r\n");

            #line 58 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                foreach (var p in f.ParameterNames)
                {
            #line default
            #line hidden
                    this.Write("        <param name=\"");

            #line 59 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(p));

            #line default
            #line hidden
                    this.Write("\">TODO: Provide details of parameter ");

            #line 59 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(p));

            #line default
            #line hidden
                    this.Write("</param>\r\n");

            #line 60 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden

            #line 60 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                if (f.HasNonVoidReturn)
                {
            #line default
            #line hidden
                    this.Write("        <returns>TODO: Document return value</returns>\r\n");

            #line 62 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    </Function>\r\n");

            #line 64 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            }

            #line default
            #line hidden

            #line 65 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            foreach (var s in ValueTypes)
            {
            #line default
            #line hidden
                this.Write("    <Struct name=\"");

            #line 66 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(s.Name));

            #line default
            #line hidden
                this.Write("\">\r\n        <summary>TODO: Provide summary for struct ");

            #line 67 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(s.Name));

            #line default
            #line hidden
                this.Write("</summary>\r\n");

            #line 68 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                var parsedComments = new ParsedComment(s);
                if (parsedComments.Any())
                {
            #line default
            #line hidden
                    this.Write("        <remarks>\r\n");

            #line 71 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    foreach (var commentLine in parsedComments)
                    {
            #line default
            #line hidden
                        this.Write("            ");

            #line 72 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(commentLine));

            #line default
            #line hidden
                        this.Write("\r\n");

            #line 73 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("        </remarks>\r\n");

            #line 75 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden

            #line 76 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                foreach (var fld in s.Fields)
                {
            #line default
            #line hidden
                    this.Write("        <Field name=\"");

            #line 77 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(fld.Name));

            #line default
            #line hidden
                    this.Write("\">\r\n            <summary>TODO: Provide summary for field ");

            #line 78 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(s.Name));

            #line default
            #line hidden
                    this.Write(".");

            #line 78 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(fld.Name));

            #line default
            #line hidden
                    this.Write("</summary>\r\n        </Field>\r\n");

            #line 80 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    </Struct>\r\n");

            #line 82 "D:\GitHub\Ubiquity.NET\Ubiquity.NET.Llvm\src\Interop\LlvmBindingsGenerator\Templates\T4\ExternalDocXmlTemplate.tt"
            }

            #line default
            #line hidden
            this.Write("</LibLlvmAPI>\r\n");
            return(this.GenerationEnvironment.ToString());
        }
Esempio n. 5
0
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("// ------------------------------------------------------------------------------" +
                       "\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//     Runtime" +
                       " Version: ");

            #line 9 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ToolVersion));

            #line default
            #line hidden
            this.Write("\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost i" +
                       "f\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n// -------------------" +
                       "-----------------------------------------------------------\r\n\r\n");

            #line 16 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            foreach (var import in Imports)
            {
            #line default
            #line hidden
                this.Write("using ");

            #line 17 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(import));

            #line default
            #line hidden
                this.Write(";\r\n");

            #line 18 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            }

            #line default
            #line hidden
            this.Write("\r\nnamespace Llvm.NET.Interop\r\n{\r\n");

            #line 22 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            foreach (var e in Enums)
            {
            #line default
            #line hidden
                this.Write("    /// <include file=\"");

            #line 23 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(XDocIncludePath));

            #line default
            #line hidden
                this.Write("\" path=\'LibLlvmAPI/Enumeration[@name=\"");

            #line 23 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden
                this.Write("\"]/*[not(self::Item)]\' />\r\n    [GeneratedCode(\"LlvmBindingsGenerator\",\"");

            #line 24 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(ToolVersion));

            #line default
            #line hidden
                this.Write("\")]\r\n    public enum ");

            #line 25 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden
                this.Write(" : ");

            #line 25 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(e.BaseType));

            #line default
            #line hidden
                this.Write("\r\n    {\r\n");

            #line 27 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                foreach (var m in e.Members)
                {
            #line default
            #line hidden

            #line 28 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    foreach (var commentLine in e.Comments)
                    {
            #line default
            #line hidden
                        this.Write("        // ");

            #line 29 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(commentLine));

            #line default
            #line hidden
                        this.Write("\r\n");

            #line 30 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("        /// <include file=\"");

            #line 31 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(XDocIncludePath));

            #line default
            #line hidden
                    this.Write("\" path=\'LibLlvmAPI/Enumeration[@name=\"");

            #line 31 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(e.Name));

            #line default
            #line hidden
                    this.Write("\"]/Item[@name=\"");

            #line 31 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(m.Name));

            #line default
            #line hidden
                    this.Write("\"]/*\' />\r\n        ");

            #line 32 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(m.Name));

            #line default
            #line hidden
                    this.Write(" = ");

            #line 32 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(m.Value));

            #line default
            #line hidden
                    this.Write(",\r\n");

            #line 33 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    }\r\n\r\n");

            #line 36 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            }
            foreach (var d in Delegates)
            {
            #line default
            #line hidden

            #line 38 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                foreach (var commentLine in d.Comments)
                {
            #line default
            #line hidden
                    this.Write("        // ");

            #line 39 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(commentLine));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 40 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    /// <include file=\"");

            #line 41 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(XDocIncludePath));

            #line default
            #line hidden
                this.Write("\" path=\'LibLlvmAPI/Delegate[@name=\"");

            #line 41 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

            #line default
            #line hidden
                this.Write("\"]/*\' />\r\n");

            #line 42 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                foreach (var attrib in d.Attributes)
                {
            #line default
            #line hidden
                    this.Write("    ");

            #line 43 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(attrib.AsString()));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 44 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    ");

            #line 45 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(d));

            #line default
            #line hidden
                this.Write("\r\n");

            #line 46 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            }

            #line default
            #line hidden

            #line 47 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            foreach (var s in ValueTypes)
            {
                var parsedComment = new ParsedComment(s);
                foreach (var commentLine in parsedComment)
                {
            #line default
            #line hidden
                    this.Write("        // ");

            #line 50 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(commentLine));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 51 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    /// <include file=\"");

            #line 52 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(XDocIncludePath));

            #line default
            #line hidden
                this.Write("\" path=\'LibLlvmAPI/Struct[@name=\"");

            #line 52 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(s.Name));

            #line default
            #line hidden
                this.Write("\"]/*[not(self::Field)]\' />\r\n");

            #line 53 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                foreach (var sa in s.Attributes)
                {
            #line default
            #line hidden
                    this.Write("    ");

            #line 54 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(sa.AsString()));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 55 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    public struct ");

            #line 56 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(s.Name));

            #line default
            #line hidden
                this.Write("\r\n    {\r\n");

            #line 58 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                foreach (var fld in s.Fields)
                {
            #line default
            #line hidden
                    this.Write("        /// <include file=\"");

            #line 59 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(XDocIncludePath));

            #line default
            #line hidden
                    this.Write("\" path=\'LibLlvmAPI/struct[@name=\"");

            #line 59 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(s.Name));

            #line default
            #line hidden
                    this.Write("\"]/Field[@name=\"");

            #line 59 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(fld.Name));

            #line default
            #line hidden
                    this.Write("\"]/*\' />\r\n");

            #line 60 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    foreach (var fa in fld.Attributes)
                    {
            #line default
            #line hidden
                        this.Write("        ");

            #line 61 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(fa.AsString()));

            #line default
            #line hidden
                        this.Write("\r\n");

            #line 62 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("        public ");

            #line 63 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(fld.Type));

            #line default
            #line hidden
                    this.Write(" ");

            #line 63 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(fld.Name));

            #line default
            #line hidden
                    this.Write(";\r\n");

            #line 64 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("    }\r\n\r\n");

            #line 67 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            }

            #line default
            #line hidden
            this.Write("    public static partial class NativeMethods\r\n    {\r\n");

            #line 70 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            foreach (var f in Functions)
            {
            #line default
            #line hidden
                this.Write("        /// <include file=\"");

            #line 71 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(XDocIncludePath));

            #line default
            #line hidden
                this.Write("\" path=\'LibLlvmAPI/Function[@name=\"");

            #line 71 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(f.Name));

            #line default
            #line hidden
                this.Write("\"]/*\' />\r\n");

            #line 72 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                foreach (var a in f.Attributes)
                {
            #line default
            #line hidden
                    this.Write("        ");

            #line 73 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(a.AsString()));

            #line default
            #line hidden
                    this.Write("\r\n");

            #line 74 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                }

            #line default
            #line hidden
                this.Write("        ");

            #line 75 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(f));

            #line default
            #line hidden
                this.Write("\r\n");

            #line 76 "D:\GitHub\Ubiquity.NET\Llvm.Net\src\Interop\LlvmBindingsGenerator\Templates\T4\PerHeaderInteropTemplate.tt"
            }

            #line default
            #line hidden
            this.Write("    }\r\n}\r\n");
            return(this.GenerationEnvironment.ToString());
        }