Skip to content

Commit

Permalink
Support multi file generation in the Binding generator (#43)
Browse files Browse the repository at this point in the history
* Adding some basic support for multi-file generation.

* Regenerating the ClangSharp as multi-file

* Adding an OutputBuilder so we don't continuously open/close file streams

* Changing the writer to only emit required usings
  • Loading branch information
tannergooding committed May 9, 2019
1 parent c537cfc commit 7876c0f
Show file tree
Hide file tree
Showing 125 changed files with 2,192 additions and 1,697 deletions.
1 change: 0 additions & 1 deletion ClangSharp/Extensions/CXSourceRangeList.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

namespace ClangSharp
{
Expand Down
1 change: 0 additions & 1 deletion ClangSharp/Extensions/CXTranslationUnit.cs
@@ -1,5 +1,4 @@
using System;
using System.Runtime.CompilerServices;

namespace ClangSharp
{
Expand Down
10 changes: 10 additions & 0 deletions ClangSharp/Generated/CXAvailabilityKind.cs
@@ -0,0 +1,10 @@
namespace ClangSharp
{
public enum CXAvailabilityKind
{
CXAvailability_Available = 0,
CXAvailability_Deprecated = 1,
CXAvailability_NotAvailable = 2,
CXAvailability_NotAccessible = 3,
}
}
26 changes: 26 additions & 0 deletions ClangSharp/Generated/CXCallingConv.cs
@@ -0,0 +1,26 @@
namespace ClangSharp
{
public enum CXCallingConv
{
CXCallingConv_Default = 0,
CXCallingConv_C = 1,
CXCallingConv_X86StdCall = 2,
CXCallingConv_X86FastCall = 3,
CXCallingConv_X86ThisCall = 4,
CXCallingConv_X86Pascal = 5,
CXCallingConv_AAPCS = 6,
CXCallingConv_AAPCS_VFP = 7,
CXCallingConv_X86RegCall = 8,
CXCallingConv_IntelOclBicc = 9,
CXCallingConv_Win64 = 10,
CXCallingConv_X86_64Win64 = 10,
CXCallingConv_X86_64SysV = 11,
CXCallingConv_X86VectorCall = 12,
CXCallingConv_Swift = 13,
CXCallingConv_PreserveMost = 14,
CXCallingConv_PreserveAll = 15,
CXCallingConv_AArch64VectorCall = 16,
CXCallingConv_Invalid = 100,
CXCallingConv_Unexposed = 200,
}
}
9 changes: 9 additions & 0 deletions ClangSharp/Generated/CXChildVisitResult.cs
@@ -0,0 +1,9 @@
namespace ClangSharp
{
public enum CXChildVisitResult
{
CXChildVisit_Break = 0,
CXChildVisit_Continue = 1,
CXChildVisit_Recurse = 2,
}
}
14 changes: 14 additions & 0 deletions ClangSharp/Generated/CXClientData.cs
@@ -0,0 +1,14 @@
using System;

namespace ClangSharp
{
public partial struct CXClientData
{
public CXClientData(IntPtr pointer)
{
Pointer = pointer;
}

public IntPtr Pointer;
}
}
10 changes: 10 additions & 0 deletions ClangSharp/Generated/CXCodeCompleteResults.cs
@@ -0,0 +1,10 @@
using System;

namespace ClangSharp
{
public partial struct CXCodeCompleteResults
{
public IntPtr Results;
public uint NumResults;
}
}
11 changes: 11 additions & 0 deletions ClangSharp/Generated/CXCodeComplete_Flags.cs
@@ -0,0 +1,11 @@
namespace ClangSharp
{
public enum CXCodeComplete_Flags
{
CXCodeComplete_IncludeMacros = 1,
CXCodeComplete_IncludeCodePatterns = 2,
CXCodeComplete_IncludeBriefComments = 4,
CXCodeComplete_SkipPreamble = 8,
CXCodeComplete_IncludeCompletionsWithFixIts = 16,
}
}
10 changes: 10 additions & 0 deletions ClangSharp/Generated/CXComment.cs
@@ -0,0 +1,10 @@
using System;

namespace ClangSharp
{
public partial struct CXComment
{
public IntPtr ASTNode;
public CXTranslationUnit TranslationUnit;
}
}
10 changes: 10 additions & 0 deletions ClangSharp/Generated/CXCommentInlineCommandRenderKind.cs
@@ -0,0 +1,10 @@
namespace ClangSharp
{
public enum CXCommentInlineCommandRenderKind
{
CXCommentInlineCommandRenderKind_Normal = 0,
CXCommentInlineCommandRenderKind_Bold = 1,
CXCommentInlineCommandRenderKind_Monospaced = 2,
CXCommentInlineCommandRenderKind_Emphasized = 3,
}
}
19 changes: 19 additions & 0 deletions ClangSharp/Generated/CXCommentKind.cs
@@ -0,0 +1,19 @@
namespace ClangSharp
{
public enum CXCommentKind
{
CXComment_Null = 0,
CXComment_Text = 1,
CXComment_InlineCommand = 2,
CXComment_HTMLStartTag = 3,
CXComment_HTMLEndTag = 4,
CXComment_Paragraph = 5,
CXComment_BlockCommand = 6,
CXComment_ParamCommand = 7,
CXComment_TParamCommand = 8,
CXComment_VerbatimBlockCommand = 9,
CXComment_VerbatimBlockLine = 10,
CXComment_VerbatimLine = 11,
CXComment_FullComment = 12,
}
}
9 changes: 9 additions & 0 deletions ClangSharp/Generated/CXCommentParamPassDirection.cs
@@ -0,0 +1,9 @@
namespace ClangSharp
{
public enum CXCommentParamPassDirection
{
CXCommentParamPassDirection_In = 0,
CXCommentParamPassDirection_Out = 1,
CXCommentParamPassDirection_InOut = 2,
}
}
14 changes: 14 additions & 0 deletions ClangSharp/Generated/CXCompilationDatabase.cs
@@ -0,0 +1,14 @@
using System;

namespace ClangSharp
{
public partial struct CXCompilationDatabase
{
public CXCompilationDatabase(IntPtr pointer)
{
Pointer = pointer;
}

public IntPtr Pointer;
}
}
8 changes: 8 additions & 0 deletions ClangSharp/Generated/CXCompilationDatabase_Error.cs
@@ -0,0 +1,8 @@
namespace ClangSharp
{
public enum CXCompilationDatabase_Error
{
CXCompilationDatabase_NoError = 0,
CXCompilationDatabase_CanNotLoadDatabase = 1,
}
}
14 changes: 14 additions & 0 deletions ClangSharp/Generated/CXCompileCommand.cs
@@ -0,0 +1,14 @@
using System;

namespace ClangSharp
{
public partial struct CXCompileCommand
{
public CXCompileCommand(IntPtr pointer)
{
Pointer = pointer;
}

public IntPtr Pointer;
}
}
14 changes: 14 additions & 0 deletions ClangSharp/Generated/CXCompileCommands.cs
@@ -0,0 +1,14 @@
using System;

namespace ClangSharp
{
public partial struct CXCompileCommands
{
public CXCompileCommands(IntPtr pointer)
{
Pointer = pointer;
}

public IntPtr Pointer;
}
}
27 changes: 27 additions & 0 deletions ClangSharp/Generated/CXCompletionChunkKind.cs
@@ -0,0 +1,27 @@
namespace ClangSharp
{
public enum CXCompletionChunkKind
{
CXCompletionChunk_Optional = 0,
CXCompletionChunk_TypedText = 1,
CXCompletionChunk_Text = 2,
CXCompletionChunk_Placeholder = 3,
CXCompletionChunk_Informative = 4,
CXCompletionChunk_CurrentParameter = 5,
CXCompletionChunk_LeftParen = 6,
CXCompletionChunk_RightParen = 7,
CXCompletionChunk_LeftBracket = 8,
CXCompletionChunk_RightBracket = 9,
CXCompletionChunk_LeftBrace = 10,
CXCompletionChunk_RightBrace = 11,
CXCompletionChunk_LeftAngle = 12,
CXCompletionChunk_RightAngle = 13,
CXCompletionChunk_Comma = 14,
CXCompletionChunk_ResultType = 15,
CXCompletionChunk_Colon = 16,
CXCompletionChunk_SemiColon = 17,
CXCompletionChunk_Equal = 18,
CXCompletionChunk_HorizontalSpace = 19,
CXCompletionChunk_VerticalSpace = 20,
}
}
31 changes: 31 additions & 0 deletions ClangSharp/Generated/CXCompletionContext.cs
@@ -0,0 +1,31 @@
namespace ClangSharp
{
public enum CXCompletionContext
{
CXCompletionContext_Unexposed = 0,
CXCompletionContext_AnyType = 1,
CXCompletionContext_AnyValue = 2,
CXCompletionContext_ObjCObjectValue = 4,
CXCompletionContext_ObjCSelectorValue = 8,
CXCompletionContext_CXXClassTypeValue = 16,
CXCompletionContext_DotMemberAccess = 32,
CXCompletionContext_ArrowMemberAccess = 64,
CXCompletionContext_ObjCPropertyAccess = 128,
CXCompletionContext_EnumTag = 256,
CXCompletionContext_UnionTag = 512,
CXCompletionContext_StructTag = 1024,
CXCompletionContext_ClassTag = 2048,
CXCompletionContext_Namespace = 4096,
CXCompletionContext_NestedNameSpecifier = 8192,
CXCompletionContext_ObjCInterface = 16384,
CXCompletionContext_ObjCProtocol = 32768,
CXCompletionContext_ObjCCategory = 65536,
CXCompletionContext_ObjCInstanceMessage = 131072,
CXCompletionContext_ObjCClassMessage = 262144,
CXCompletionContext_ObjCSelectorName = 524288,
CXCompletionContext_MacroName = 1048576,
CXCompletionContext_NaturalLanguage = 2097152,
CXCompletionContext_IncludedFile = 4194304,
CXCompletionContext_Unknown = 8388607,
}
}
8 changes: 8 additions & 0 deletions ClangSharp/Generated/CXCompletionResult.cs
@@ -0,0 +1,8 @@
namespace ClangSharp
{
public partial struct CXCompletionResult
{
public CXCursorKind CursorKind;
public CXCompletionString CompletionString;
}
}
14 changes: 14 additions & 0 deletions ClangSharp/Generated/CXCompletionString.cs
@@ -0,0 +1,14 @@
using System;

namespace ClangSharp
{
public partial struct CXCompletionString
{
public CXCompletionString(IntPtr pointer)
{
Pointer = pointer;
}

public IntPtr Pointer;
}
}
11 changes: 11 additions & 0 deletions ClangSharp/Generated/CXCursor.cs
@@ -0,0 +1,11 @@
using System;

namespace ClangSharp
{
public partial struct CXCursor
{
public CXCursorKind kind;
public int xdata;
public IntPtr data0; public IntPtr data1; public IntPtr data2;
}
}
10 changes: 10 additions & 0 deletions ClangSharp/Generated/CXCursorAndRangeVisitor.cs
@@ -0,0 +1,10 @@
using System;

namespace ClangSharp
{
public partial struct CXCursorAndRangeVisitor
{
public IntPtr context;
public IntPtr visit;
}
}

0 comments on commit 7876c0f

Please sign in to comment.