From ac7bdb2585762d26212d38078f64618c478a7029 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Sat, 28 Dec 2019 12:13:36 +0000 Subject: [PATCH] Refactor Clang builtins directory logic and move it to the managed side. This now matches systems Clang includes order on macOS which fixes a bug. Signed-off-by: Joao Matos Signed-off-by: Dimitar Dobrev --- src/CppParser/Bindings/CLI/CppParser.cpp | 16 +- src/CppParser/Bindings/CLI/CppParser.h | 11 +- .../CppSharp.CppParser.cs | 62 +-- .../CSharp/i686-apple-darwin12.4.0/Std.cs | 518 ++++++++++++++---- .../i686-pc-win32-msvc/CppSharp.CppParser.cs | 52 +- .../CppSharp.CppParser.cs | 62 +-- .../CSharp/x86_64-apple-darwin12.4.0/Std.cs | 518 ++++++++++++++---- .../CppSharp.CppParser.cs | 52 +- .../x86_64-linux-gnu/CppSharp.CppParser.cs | 52 +- .../CppSharp.CppParser.cs | 52 +- src/CppParser/CppParser.cpp | 4 + src/CppParser/CppParser.h | 9 +- src/CppParser/Parser.cpp | 25 - src/CppParser/ParserGen/ParserGen.cs | 19 +- src/Parser/ParserOptions.cs | 53 +- 15 files changed, 1031 insertions(+), 474 deletions(-) diff --git a/src/CppParser/Bindings/CLI/CppParser.cpp b/src/CppParser/Bindings/CLI/CppParser.cpp index f08fca9e..ef991a5f 100644 --- a/src/CppParser/Bindings/CLI/CppParser.cpp +++ b/src/CppParser/Bindings/CLI/CppParser.cpp @@ -421,16 +421,6 @@ void CppSharp::Parser::CppParserOptions::TargetTriple::set(System::String^ value ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->targetTriple = clix::marshalString(value); } -System::String^ CppSharp::Parser::CppParserOptions::ResourceDir::get() -{ - return clix::marshalString(((::CppSharp::CppParser::CppParserOptions*)NativePtr)->resourceDir); -} - -void CppSharp::Parser::CppParserOptions::ResourceDir::set(System::String^ value) -{ - ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->resourceDir = clix::marshalString(value); -} - bool CppSharp::Parser::CppParserOptions::NoStandardIncludes::get() { return ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->noStandardIncludes; @@ -511,6 +501,12 @@ void CppSharp::Parser::CppParserOptions::SkipFunctionBodies::set(bool value) ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->skipFunctionBodies = value; } +System::String^ CppSharp::Parser::CppParserOptions::ClangVersion::get() +{ + auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getClangVersion(); + return clix::marshalString(__ret); +} + unsigned int CppSharp::Parser::CppParserOptions::ArgumentsCount::get() { auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getArgumentsCount(); diff --git a/src/CppParser/Bindings/CLI/CppParser.h b/src/CppParser/Bindings/CLI/CppParser.h index 41bd20eb..769e2eba 100644 --- a/src/CppParser/Bindings/CLI/CppParser.h +++ b/src/CppParser/Bindings/CLI/CppParser.h @@ -150,12 +150,6 @@ namespace CppSharp void set(System::String^); } - property System::String^ ResourceDir - { - System::String^ get(); - void set(System::String^); - } - property bool NoStandardIncludes { bool get(); @@ -204,6 +198,11 @@ namespace CppSharp void set(bool); } + property System::String^ ClangVersion + { + System::String^ get(); + } + property unsigned int ArgumentsCount { unsigned int get(); diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs index 833666c3..e0f69b0c 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs @@ -47465,32 +47465,32 @@ namespace CppSharp internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C targetTriple; [FieldOffset(128)] - internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C resourceDir; - - [FieldOffset(140)] internal byte noStandardIncludes; - [FieldOffset(141)] + [FieldOffset(129)] internal byte noBuiltinIncludes; - [FieldOffset(142)] + [FieldOffset(130)] internal byte microsoftMode; - [FieldOffset(143)] + [FieldOffset(131)] internal byte verbose; - [FieldOffset(144)] + [FieldOffset(132)] internal byte unityBuild; - [FieldOffset(145)] + [FieldOffset(133)] internal byte skipPrivateDeclarations; - [FieldOffset(146)] + [FieldOffset(134)] internal byte skipLayoutInfo; - [FieldOffset(147)] + [FieldOffset(135)] internal byte skipFunctionBodies; + [FieldOffset(136)] + internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C clangVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptionsC2Ev")] @@ -47626,6 +47626,11 @@ namespace CppSharp EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions22clearSupportedStdTypesEv")] internal static extern void ClearSupportedStdTypes(global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions15getClangVersionEv")] + internal static extern void GetClangVersion(global::System.IntPtr @return, global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv")] @@ -47970,20 +47975,6 @@ namespace CppSharp } } - public string ResourceDir - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->resourceDir)); - return global::Std.BasicStringExtensions.Data(__basicStringRet0); - } - - set - { - global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->resourceDir), value); - } - } - public bool NoStandardIncludes { get @@ -48088,6 +48079,19 @@ namespace CppSharp } } + public string ClangVersion + { + get + { + var __ret = new global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C(); + __Internal.GetClangVersion(new IntPtr(&__ret), (__Instance + __PointerAdjustment)); + var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&__ret)); + var __retString0 = global::Std.BasicStringExtensions.Data(__basicStringRet0); + __basicStringRet0.Dispose(); + return __retString0; + } + } + public uint ArgumentsCount { get @@ -48694,16 +48698,6 @@ namespace Std { namespace Pair { - [StructLayout(LayoutKind.Explicit, Size = 16)] - public unsafe partial struct __Internalc__N_std_N___1_S_pair____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration - { - [FieldOffset(0)] - internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C first; - - [FieldOffset(12)] - internal global::System.IntPtr second; - } - [StructLayout(LayoutKind.Explicit, Size = 16)] public unsafe partial struct __Internalc__N_std_N___1_S_pair__1__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration { diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs index c06b242c..31a0b9e6 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs @@ -29,19 +29,302 @@ namespace Std { } -namespace Std -{ -} - namespace Std { namespace CompressedPair { [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internal + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C_S___rep_S2_ + { + [FieldOffset(0)] + internal global::Std.BasicString.Rep.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Template___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_N___1_S_allocator__S1_ { [FieldOffset(0)] - internal global::Std.BasicString.Rep.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __first_; + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S___tree_end_node_____N_std_N___1_S___tree_node_base___v___N_std_N___1_S_allocator____N_std_N___1_S___tree_node____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration_S3_ + { + [FieldOffset(0)] + internal global::Std.TreeEndNode.__Internal_Ptr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair__l___N_std_N___1_S___map_value_compare____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S___value_type__S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S1__Vb1 + { + [FieldOffset(0)] + internal uint __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Field___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Method___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Class___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Function___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ExpressionObsolete___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Stmt___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Expr___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair___i___N_std_N___1_S_allocator__i + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 4)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; } } @@ -144,7 +427,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -157,7 +440,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -170,7 +453,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -183,7 +466,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -196,7 +479,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -209,7 +492,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Function___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -222,7 +505,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Class___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -235,7 +518,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Template___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -248,7 +531,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -261,7 +544,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -274,7 +557,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -287,7 +570,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -300,7 +583,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -313,7 +596,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Field___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -326,7 +609,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Method___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -339,7 +622,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -352,7 +635,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -365,7 +648,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -378,7 +661,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -391,7 +674,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -404,7 +687,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -417,7 +700,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -430,7 +713,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -443,7 +726,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -456,7 +739,7 @@ namespace Std internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -469,7 +752,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -482,7 +765,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ExpressionObsolete___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -495,7 +778,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -508,7 +791,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -521,7 +804,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -534,7 +817,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Stmt___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -547,7 +830,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Expr___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -560,7 +843,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -573,7 +856,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -586,7 +869,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair___i___N_std_N___1_S_allocator__i __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -599,7 +882,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -612,7 +895,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -625,7 +908,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 12)] @@ -638,7 +921,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S1_ __end_cap_; } } } @@ -648,16 +931,16 @@ namespace Std namespace Tree { [StructLayout(LayoutKind.Explicit, Size = 12)] - public unsafe partial struct __Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ + public unsafe partial struct __Internalc__N_std_N___1_S___tree____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ { [FieldOffset(0)] internal global::System.IntPtr __begin_node_; [FieldOffset(4)] - internal global::Std.CompressedPair.__Internal __pair1_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S___tree_end_node_____N_std_N___1_S___tree_node_base___v___N_std_N___1_S_allocator____N_std_N___1_S___tree_node____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration_S3_ __pair1_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __pair3_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair__l___N_std_N___1_S___map_value_compare____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S___value_type__S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S1__Vb1 __pair3_; } } @@ -680,7 +963,76 @@ namespace Std public unsafe partial struct __Internalc__N_std_N___1_S_map____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S0____N_std_N___1_S_allocator____N_std_N___1_S_pair__1S0__S3_ { [FieldOffset(0)] - internal global::Std.Tree.__Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ __tree_; + internal global::Std.Tree.__Internalc__N_std_N___1_S___tree____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ __tree_; + } + } +} + +namespace Std +{ + namespace CharTraits + { + [StructLayout(LayoutKind.Explicit, Size = 1)] + public unsafe partial struct __Internal + { + } + } + + public unsafe partial class CharTraits<_CharT> : IDisposable + { + public global::System.IntPtr __Instance { get; protected set; } + + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary>(); + protected internal void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::Std.CharTraits<_CharT> __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new global::Std.CharTraits<_CharT>(native.ToPointer(), skipVTables); + } + + internal static global::Std.CharTraits<_CharT> __CreateInstance(global::Std.CharTraits.__Internal native, bool skipVTables = false) + { + return new global::Std.CharTraits<_CharT>(native, skipVTables); + } + + private static void* __CopyValue(global::Std.CharTraits.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::Std.CharTraits.__Internal)); + *(global::Std.CharTraits.__Internal*) ret = native; + return ret.ToPointer(); + } + + private CharTraits(global::Std.CharTraits.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected CharTraits(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + if (__Instance == IntPtr.Zero) + return; + global::Std.CharTraits<_CharT> __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + __Instance = IntPtr.Zero; } } } @@ -693,7 +1045,7 @@ namespace Std public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C { [FieldOffset(0)] - internal global::Std.CompressedPair.__Internal __r_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C_S___rep_S2_ __r_; [SuppressUnmanagedCodeSecurity] [DllImport("Std-symbols", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, @@ -877,72 +1229,6 @@ namespace Std } } - namespace CharTraits - { - [StructLayout(LayoutKind.Explicit, Size = 1)] - public unsafe partial struct __Internal - { - } - } - - public unsafe partial class CharTraits<_CharT> : IDisposable - { - public global::System.IntPtr __Instance { get; protected set; } - - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary>(); - protected internal void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::Std.CharTraits<_CharT> __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new global::Std.CharTraits<_CharT>(native.ToPointer(), skipVTables); - } - - internal static global::Std.CharTraits<_CharT> __CreateInstance(global::Std.CharTraits.__Internal native, bool skipVTables = false) - { - return new global::Std.CharTraits<_CharT>(native, skipVTables); - } - - private static void* __CopyValue(global::Std.CharTraits.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::Std.CharTraits.__Internal)); - *(global::Std.CharTraits.__Internal*) ret = native; - return ret.ToPointer(); - } - - private CharTraits(global::Std.CharTraits.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected CharTraits(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - if (__Instance == IntPtr.Zero) - return; - global::Std.CharTraits<_CharT> __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - __Instance = IntPtr.Zero; - } - } - public unsafe static partial class BasicStringExtensions { [StructLayout(LayoutKind.Explicit, Size = 0)] diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs index e03a996f..fc6102e6 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs @@ -47465,32 +47465,32 @@ namespace CppSharp internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple; [FieldOffset(152)] - internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C resourceDir; - - [FieldOffset(176)] internal byte noStandardIncludes; - [FieldOffset(177)] + [FieldOffset(153)] internal byte noBuiltinIncludes; - [FieldOffset(178)] + [FieldOffset(154)] internal byte microsoftMode; - [FieldOffset(179)] + [FieldOffset(155)] internal byte verbose; - [FieldOffset(180)] + [FieldOffset(156)] internal byte unityBuild; - [FieldOffset(181)] + [FieldOffset(157)] internal byte skipPrivateDeclarations; - [FieldOffset(182)] + [FieldOffset(158)] internal byte skipLayoutInfo; - [FieldOffset(183)] + [FieldOffset(159)] internal byte skipFunctionBodies; + [FieldOffset(160)] + internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0CppParserOptions@CppParser@CppSharp@@QAE@XZ")] @@ -47626,6 +47626,11 @@ namespace CppSharp EntryPoint="?clearSupportedStdTypes@CppParserOptions@CppParser@CppSharp@@QAEXXZ")] internal static extern void ClearSupportedStdTypes(global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getClangVersion@CppParserOptions@CppParser@CppSharp@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ")] + internal static extern void GetClangVersion(global::System.IntPtr __instance, global::System.IntPtr @return); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="?getArgumentsCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ")] @@ -47970,20 +47975,6 @@ namespace CppSharp } } - public string ResourceDir - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->resourceDir)); - return global::Std.BasicStringExtensions.Data(__basicStringRet0); - } - - set - { - global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->resourceDir), value); - } - } - public bool NoStandardIncludes { get @@ -48088,6 +48079,19 @@ namespace CppSharp } } + public string ClangVersion + { + get + { + var __ret = new global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C(); + __Internal.GetClangVersion((__Instance + __PointerAdjustment), new IntPtr(&__ret)); + var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&__ret)); + var __retString0 = global::Std.BasicStringExtensions.Data(__basicStringRet0); + __basicStringRet0.Dispose(); + return __retString0; + } + } + public uint ArgumentsCount { get diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs index 0668df29..643da34c 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs @@ -47464,32 +47464,32 @@ namespace CppSharp internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C targetTriple; [FieldOffset(256)] - internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C resourceDir; - - [FieldOffset(280)] internal byte noStandardIncludes; - [FieldOffset(281)] + [FieldOffset(257)] internal byte noBuiltinIncludes; - [FieldOffset(282)] + [FieldOffset(258)] internal byte microsoftMode; - [FieldOffset(283)] + [FieldOffset(259)] internal byte verbose; - [FieldOffset(284)] + [FieldOffset(260)] internal byte unityBuild; - [FieldOffset(285)] + [FieldOffset(261)] internal byte skipPrivateDeclarations; - [FieldOffset(286)] + [FieldOffset(262)] internal byte skipLayoutInfo; - [FieldOffset(287)] + [FieldOffset(263)] internal byte skipFunctionBodies; + [FieldOffset(264)] + internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C clangVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptionsC2Ev")] @@ -47625,6 +47625,11 @@ namespace CppSharp EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions22clearSupportedStdTypesEv")] internal static extern void ClearSupportedStdTypes(global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions15getClangVersionEv")] + internal static extern void GetClangVersion(global::System.IntPtr @return, global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv")] @@ -47969,20 +47974,6 @@ namespace CppSharp } } - public string ResourceDir - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->resourceDir)); - return global::Std.BasicStringExtensions.Data(__basicStringRet0); - } - - set - { - global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->resourceDir), value); - } - } - public bool NoStandardIncludes { get @@ -48087,6 +48078,19 @@ namespace CppSharp } } + public string ClangVersion + { + get + { + var __ret = new global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C(); + __Internal.GetClangVersion(new IntPtr(&__ret), (__Instance + __PointerAdjustment)); + var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&__ret)); + var __retString0 = global::Std.BasicStringExtensions.Data(__basicStringRet0); + __basicStringRet0.Dispose(); + return __retString0; + } + } + public uint ArgumentsCount { get @@ -48693,16 +48697,6 @@ namespace Std { namespace Pair { - [StructLayout(LayoutKind.Explicit, Size = 32)] - public unsafe partial struct __Internalc__N_std_N___1_S_pair____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration - { - [FieldOffset(0)] - internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C first; - - [FieldOffset(24)] - internal global::System.IntPtr second; - } - [StructLayout(LayoutKind.Explicit, Size = 32)] public unsafe partial struct __Internalc__N_std_N___1_S_pair__1__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration { diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs index 62fe9fe0..7ae75baa 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs @@ -29,19 +29,302 @@ namespace Std { } -namespace Std -{ -} - namespace Std { namespace CompressedPair { [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internal + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C_S___rep_S2_ + { + [FieldOffset(0)] + internal global::Std.BasicString.Rep.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Template___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_N___1_S_allocator__S1_ { [FieldOffset(0)] - internal global::Std.BasicString.Rep.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __first_; + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S___tree_end_node_____N_std_N___1_S___tree_node_base___v___N_std_N___1_S_allocator____N_std_N___1_S___tree_node____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration_S3_ + { + [FieldOffset(0)] + internal global::Std.TreeEndNode.__Internal_Ptr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair__l___N_std_N___1_S___map_value_compare____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S___value_type__S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S1__Vb1 + { + [FieldOffset(0)] + internal ulong __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Field___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Method___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Class___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Function___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ExpressionObsolete___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Stmt___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Expr___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair___i___N_std_N___1_S_allocator__i + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; + } + + [StructLayout(LayoutKind.Explicit, Size = 8)] + public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S1_ + { + [FieldOffset(0)] + internal global::System.IntPtr __value_; } } @@ -144,7 +427,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -157,7 +440,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -170,7 +453,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -183,7 +466,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -196,7 +479,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -209,7 +492,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Function___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -222,7 +505,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Class___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -235,7 +518,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Template___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -248,7 +531,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -261,7 +544,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -274,7 +557,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -287,7 +570,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -300,7 +583,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -313,7 +596,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Field___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -326,7 +609,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Method___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -339,7 +622,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -352,7 +635,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -365,7 +648,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -378,7 +661,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -391,7 +674,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -404,7 +687,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -417,7 +700,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -430,7 +713,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -443,7 +726,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -456,7 +739,7 @@ namespace Std internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -469,7 +752,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -482,7 +765,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_ExpressionObsolete___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -495,7 +778,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -508,7 +791,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -521,7 +804,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -534,7 +817,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Stmt___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -547,7 +830,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_Expr___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -560,7 +843,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -573,7 +856,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -586,7 +869,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair___i___N_std_N___1_S_allocator__i __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -599,7 +882,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -612,7 +895,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -625,7 +908,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_N___1_S_allocator__S1_ __end_cap_; } [StructLayout(LayoutKind.Explicit, Size = 24)] @@ -638,7 +921,7 @@ namespace Std internal global::System.IntPtr __end_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __end_cap_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S1_ __end_cap_; } } } @@ -648,16 +931,16 @@ namespace Std namespace Tree { [StructLayout(LayoutKind.Explicit, Size = 24)] - public unsafe partial struct __Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ + public unsafe partial struct __Internalc__N_std_N___1_S___tree____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ { [FieldOffset(0)] internal global::System.IntPtr __begin_node_; [FieldOffset(8)] - internal global::Std.CompressedPair.__Internal __pair1_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S___tree_end_node_____N_std_N___1_S___tree_node_base___v___N_std_N___1_S_allocator____N_std_N___1_S___tree_node____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration_S3_ __pair1_; [FieldOffset(16)] - internal global::Std.CompressedPair.__Internal __pair3_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair__l___N_std_N___1_S___map_value_compare____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S___value_type__S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S1__Vb1 __pair3_; } } @@ -680,7 +963,76 @@ namespace Std public unsafe partial struct __Internalc__N_std_N___1_S_map____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S0____N_std_N___1_S_allocator____N_std_N___1_S_pair__1S0__S3_ { [FieldOffset(0)] - internal global::Std.Tree.__Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ __tree_; + internal global::Std.Tree.__Internalc__N_std_N___1_S___tree____N_std_N___1_S___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ __tree_; + } + } +} + +namespace Std +{ + namespace CharTraits + { + [StructLayout(LayoutKind.Explicit, Size = 1)] + public unsafe partial struct __Internal + { + } + } + + public unsafe partial class CharTraits<_CharT> : IDisposable + { + public global::System.IntPtr __Instance { get; protected set; } + + protected int __PointerAdjustment; + internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary>(); + protected internal void*[] __OriginalVTables; + + protected bool __ownsNativeInstance; + + internal static global::Std.CharTraits<_CharT> __CreateInstance(global::System.IntPtr native, bool skipVTables = false) + { + return new global::Std.CharTraits<_CharT>(native.ToPointer(), skipVTables); + } + + internal static global::Std.CharTraits<_CharT> __CreateInstance(global::Std.CharTraits.__Internal native, bool skipVTables = false) + { + return new global::Std.CharTraits<_CharT>(native, skipVTables); + } + + private static void* __CopyValue(global::Std.CharTraits.__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(global::Std.CharTraits.__Internal)); + *(global::Std.CharTraits.__Internal*) ret = native; + return ret.ToPointer(); + } + + private CharTraits(global::Std.CharTraits.__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + NativeToManagedMap[__Instance] = this; + } + + protected CharTraits(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new global::System.IntPtr(native); + } + + public void Dispose() + { + Dispose(disposing: true); + } + + public virtual void Dispose(bool disposing) + { + if (__Instance == IntPtr.Zero) + return; + global::Std.CharTraits<_CharT> __dummy; + NativeToManagedMap.TryRemove(__Instance, out __dummy); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + __Instance = IntPtr.Zero; } } } @@ -693,7 +1045,7 @@ namespace Std public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C { [FieldOffset(0)] - internal global::Std.CompressedPair.__Internal __r_; + internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C_S___rep_S2_ __r_; [SuppressUnmanagedCodeSecurity] [DllImport("Std-symbols", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, @@ -877,72 +1229,6 @@ namespace Std } } - namespace CharTraits - { - [StructLayout(LayoutKind.Explicit, Size = 1)] - public unsafe partial struct __Internal - { - } - } - - public unsafe partial class CharTraits<_CharT> : IDisposable - { - public global::System.IntPtr __Instance { get; protected set; } - - protected int __PointerAdjustment; - internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary>(); - protected internal void*[] __OriginalVTables; - - protected bool __ownsNativeInstance; - - internal static global::Std.CharTraits<_CharT> __CreateInstance(global::System.IntPtr native, bool skipVTables = false) - { - return new global::Std.CharTraits<_CharT>(native.ToPointer(), skipVTables); - } - - internal static global::Std.CharTraits<_CharT> __CreateInstance(global::Std.CharTraits.__Internal native, bool skipVTables = false) - { - return new global::Std.CharTraits<_CharT>(native, skipVTables); - } - - private static void* __CopyValue(global::Std.CharTraits.__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(global::Std.CharTraits.__Internal)); - *(global::Std.CharTraits.__Internal*) ret = native; - return ret.ToPointer(); - } - - private CharTraits(global::Std.CharTraits.__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - NativeToManagedMap[__Instance] = this; - } - - protected CharTraits(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new global::System.IntPtr(native); - } - - public void Dispose() - { - Dispose(disposing: true); - } - - public virtual void Dispose(bool disposing) - { - if (__Instance == IntPtr.Zero) - return; - global::Std.CharTraits<_CharT> __dummy; - NativeToManagedMap.TryRemove(__Instance, out __dummy); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - __Instance = IntPtr.Zero; - } - } - public unsafe static partial class BasicStringExtensions { [StructLayout(LayoutKind.Explicit, Size = 0)] diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs index c1acc3e7..29887a27 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs @@ -47464,32 +47464,32 @@ namespace CppSharp internal global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple; [FieldOffset(272)] - internal global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C resourceDir; - - [FieldOffset(304)] internal byte noStandardIncludes; - [FieldOffset(305)] + [FieldOffset(273)] internal byte noBuiltinIncludes; - [FieldOffset(306)] + [FieldOffset(274)] internal byte microsoftMode; - [FieldOffset(307)] + [FieldOffset(275)] internal byte verbose; - [FieldOffset(308)] + [FieldOffset(276)] internal byte unityBuild; - [FieldOffset(309)] + [FieldOffset(277)] internal byte skipPrivateDeclarations; - [FieldOffset(310)] + [FieldOffset(278)] internal byte skipLayoutInfo; - [FieldOffset(311)] + [FieldOffset(279)] internal byte skipFunctionBodies; + [FieldOffset(280)] + internal global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptionsC2Ev")] @@ -47625,6 +47625,11 @@ namespace CppSharp EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions22clearSupportedStdTypesEv")] internal static extern void ClearSupportedStdTypes(global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions15getClangVersionB5cxx11Ev")] + internal static extern void GetClangVersion(global::System.IntPtr @return, global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv")] @@ -47969,20 +47974,6 @@ namespace CppSharp } } - public string ResourceDir - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->resourceDir)); - return global::Std.BasicStringExtensions.Data(__basicStringRet0); - } - - set - { - global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->resourceDir), value); - } - } - public bool NoStandardIncludes { get @@ -48087,6 +48078,19 @@ namespace CppSharp } } + public string ClangVersion + { + get + { + var __ret = new global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C(); + __Internal.GetClangVersion(new IntPtr(&__ret), (__Instance + __PointerAdjustment)); + var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&__ret)); + var __retString0 = global::Std.BasicStringExtensions.Data(__basicStringRet0); + __basicStringRet0.Dispose(); + return __retString0; + } + } + public uint ArgumentsCount { get diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs index 92623b20..c56300c8 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs @@ -47464,32 +47464,32 @@ namespace CppSharp internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple; [FieldOffset(224)] - internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C resourceDir; - - [FieldOffset(232)] internal byte noStandardIncludes; - [FieldOffset(233)] + [FieldOffset(225)] internal byte noBuiltinIncludes; - [FieldOffset(234)] + [FieldOffset(226)] internal byte microsoftMode; - [FieldOffset(235)] + [FieldOffset(227)] internal byte verbose; - [FieldOffset(236)] + [FieldOffset(228)] internal byte unityBuild; - [FieldOffset(237)] + [FieldOffset(229)] internal byte skipPrivateDeclarations; - [FieldOffset(238)] + [FieldOffset(230)] internal byte skipLayoutInfo; - [FieldOffset(239)] + [FieldOffset(231)] internal byte skipFunctionBodies; + [FieldOffset(232)] + internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptionsC2Ev")] @@ -47625,6 +47625,11 @@ namespace CppSharp EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions22clearSupportedStdTypesEv")] internal static extern void ClearSupportedStdTypes(global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions15getClangVersionEv")] + internal static extern void GetClangVersion(global::System.IntPtr @return, global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv")] @@ -47969,20 +47974,6 @@ namespace CppSharp } } - public string ResourceDir - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->resourceDir)); - return global::Std.BasicStringExtensions.Data(__basicStringRet0); - } - - set - { - global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->resourceDir), value); - } - } - public bool NoStandardIncludes { get @@ -48087,6 +48078,19 @@ namespace CppSharp } } + public string ClangVersion + { + get + { + var __ret = new global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C(); + __Internal.GetClangVersion(new IntPtr(&__ret), (__Instance + __PointerAdjustment)); + var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&__ret)); + var __retString0 = global::Std.BasicStringExtensions.Data(__basicStringRet0); + __basicStringRet0.Dispose(); + return __retString0; + } + } + public uint ArgumentsCount { get diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs index f66a4f08..4587d8a9 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs @@ -47465,32 +47465,32 @@ namespace CppSharp internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple; [FieldOffset(272)] - internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C resourceDir; - - [FieldOffset(304)] internal byte noStandardIncludes; - [FieldOffset(305)] + [FieldOffset(273)] internal byte noBuiltinIncludes; - [FieldOffset(306)] + [FieldOffset(274)] internal byte microsoftMode; - [FieldOffset(307)] + [FieldOffset(275)] internal byte verbose; - [FieldOffset(308)] + [FieldOffset(276)] internal byte unityBuild; - [FieldOffset(309)] + [FieldOffset(277)] internal byte skipPrivateDeclarations; - [FieldOffset(310)] + [FieldOffset(278)] internal byte skipLayoutInfo; - [FieldOffset(311)] + [FieldOffset(279)] internal byte skipFunctionBodies; + [FieldOffset(280)] + internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="??0CppParserOptions@CppParser@CppSharp@@QEAA@XZ")] @@ -47626,6 +47626,11 @@ namespace CppSharp EntryPoint="?clearSupportedStdTypes@CppParserOptions@CppParser@CppSharp@@QEAAXXZ")] internal static extern void ClearSupportedStdTypes(global::System.IntPtr __instance); + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, + EntryPoint="?getClangVersion@CppParserOptions@CppParser@CppSharp@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ")] + internal static extern void GetClangVersion(global::System.IntPtr __instance, global::System.IntPtr @return); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="?getArgumentsCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ")] @@ -47970,20 +47975,6 @@ namespace CppSharp } } - public string ResourceDir - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->resourceDir)); - return global::Std.BasicStringExtensions.Data(__basicStringRet0); - } - - set - { - global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->resourceDir), value); - } - } - public bool NoStandardIncludes { get @@ -48088,6 +48079,19 @@ namespace CppSharp } } + public string ClangVersion + { + get + { + var __ret = new global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C(); + __Internal.GetClangVersion((__Instance + __PointerAdjustment), new IntPtr(&__ret)); + var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__CreateInstance(new global::System.IntPtr(&__ret)); + var __retString0 = global::Std.BasicStringExtensions.Data(__basicStringRet0); + __basicStringRet0.Dispose(); + return __retString0; + } + } + public uint ArgumentsCount { get diff --git a/src/CppParser/CppParser.cpp b/src/CppParser/CppParser.cpp index bbdbb6ae..db5a3615 100644 --- a/src/CppParser/CppParser.cpp +++ b/src/CppParser/CppParser.cpp @@ -7,6 +7,7 @@ #include "CppParser.h" #include "Parser.h" +#include namespace CppSharp { namespace CppParser { @@ -21,11 +22,14 @@ CppParserOptions::CppParserOptions() , skipPrivateDeclarations(true) , skipLayoutInfo(false) , skipFunctionBodies(true) + , clangVersion(CLANG_VERSION_STRING) { } CppParserOptions::~CppParserOptions() {} +std::string CppParserOptions::getClangVersion() { return clangVersion; } + DEF_VECTOR_STRING(CppParserOptions, Arguments) DEF_VECTOR_STRING(CppParserOptions, SourceFiles) DEF_VECTOR_STRING(CppParserOptions, IncludeDirs) diff --git a/src/CppParser/CppParser.h b/src/CppParser/CppParser.h index 7a6f51d0..ab75d86c 100644 --- a/src/CppParser/CppParser.h +++ b/src/CppParser/CppParser.h @@ -11,6 +11,9 @@ #include "Helpers.h" #include "Target.h" +#define CS_INTERNAL +#define CS_READONLY + namespace CppSharp { namespace CppParser { using namespace CppSharp::CppParser::AST; @@ -20,6 +23,8 @@ struct CS_API CppParserOptions CppParserOptions(); ~CppParserOptions(); + std::string getClangVersion(); + VECTOR_STRING(Arguments) std::string libraryFile; // C/C++ header file names. @@ -37,7 +42,6 @@ struct CS_API CppParserOptions int toolSetToUse; std::string targetTriple; - std::string resourceDir; bool noStandardIncludes; bool noBuiltinIncludes; @@ -47,6 +51,9 @@ struct CS_API CppParserOptions bool skipPrivateDeclarations; bool skipLayoutInfo; bool skipFunctionBodies; + +private: + std::string clangVersion; }; enum class ParserDiagnosticLevel diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 599687a2..d498d424 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -211,22 +211,6 @@ void Parser::ReadClassLayout(Class* Class, const clang::RecordDecl* RD, //-----------------------------------// -// Compute the path to the resource directory. -static std::string GetClangResourceDir(std::string baseResourceDir) -{ - llvm::SmallString<128> Path(baseResourceDir); - - llvm::StringRef ClangResourceDir(CLANG_RESOURCE_DIR); - if (ClangResourceDir != "") - llvm::sys::path::append(Path, ClangResourceDir); - else - llvm::sys::path::append(Path, "lib", "clang", CLANG_VERSION_STRING); - - return Path.str(); -} - -//-----------------------------------// - static clang::TargetCXXABI::Kind ConvertToClangTargetCXXABI(CppSharp::CppParser::AST::CppAbi abi) { @@ -320,15 +304,6 @@ void Parser::Setup() if (opts->verbose) HSOpts.Verbose = true; - // Initialize the builtin compiler headers. - HSOpts.ResourceDir = GetClangResourceDir(opts->resourceDir); - - llvm::SmallString<128> ResourceDir(HSOpts.ResourceDir); - llvm::sys::path::append(ResourceDir, "include"); - - HSOpts.AddPath(ResourceDir.str(), clang::frontend::System, /*IsFramework=*/false, - /*IgnoreSysRoot=*/false); - for (unsigned I = 0, E = opts->IncludeDirs.size(); I != E; ++I) { const auto& s = opts->IncludeDirs[I]; diff --git a/src/CppParser/ParserGen/ParserGen.cs b/src/CppParser/ParserGen/ParserGen.cs index 7b5298ec..3a10127a 100644 --- a/src/CppParser/ParserGen/ParserGen.cs +++ b/src/CppParser/ParserGen/ParserGen.cs @@ -104,27 +104,12 @@ namespace CppSharp options.MicrosoftMode = false; options.NoBuiltinIncludes = true; - if (Platform.IsMacOS) - { - var headersPaths = new List { - Path.Combine(GetSourceDirectory("deps"), "llvm/tools/clang/lib/Headers"), - Path.Combine(GetSourceDirectory("deps"), "libcxx", "include"), - "/usr/include", - }; - - foreach (var header in headersPaths) - Console.WriteLine(header); - - foreach (var header in headersPaths) - options.AddSystemIncludeDirs(header); - } - var headersPath = Path.Combine(GetSourceDirectory("build"), "headers", "osx"); - options.AddSystemIncludeDirs(Path.Combine(headersPath, "include")); - options.AddSystemIncludeDirs(Path.Combine(headersPath, "clang", "4.2", "include")); options.AddSystemIncludeDirs(Path.Combine(headersPath, "libcxx", "include")); + options.AddSystemIncludeDirs(options.BuiltinsDir); + options.AddSystemIncludeDirs(Path.Combine(headersPath, "include")); options.AddArguments("-stdlib=libc++"); } diff --git a/src/Parser/ParserOptions.cs b/src/Parser/ParserOptions.cs index 997d5b09..898b3014 100644 --- a/src/Parser/ParserOptions.cs +++ b/src/Parser/ParserOptions.cs @@ -76,7 +76,6 @@ namespace CppSharp.Parser SkipFunctionBodies = options.SkipFunctionBodies; SkipLayoutInfo = options.SkipLayoutInfo; ForceClangToolchainLookup = options.ForceClangToolchainLookup; - ResourceDir = options.ResourceDir; } public bool IsItaniumLikeAbi => !IsMicrosoftAbi; @@ -208,6 +207,8 @@ namespace CppSharp.Parser NoStandardIncludes = true; NoBuiltinIncludes = true; + AddSystemIncludeDirs(BuiltinsDir); + vsVersion = MSVCToolchain.FindVSVersion(vsVersion); foreach (var include in MSVCToolchain.GetSystemIncludes(vsVersion)) AddSystemIncludeDirs(include); @@ -222,11 +223,22 @@ namespace CppSharp.Parser AddArguments("-fdelayed-template-parsing"); } + /// + /// Set to true to opt for Xcode Clang builtin headers + /// + public bool UseXcodeBuiltins; + public void SetupXcode() { var cppIncPath = XcodeToolchain.GetXcodeCppIncludesFolder(); AddSystemIncludeDirs(cppIncPath); + var builtinsPath = XcodeToolchain.GetXcodeBuiltinIncludesFolder(); + if (UseXcodeBuiltins) + AddSystemIncludeDirs(builtinsPath); + else + AddSystemIncludeDirs(BuiltinsDir); + var includePath = XcodeToolchain.GetXcodeIncludesFolder(); AddSystemIncludeDirs(includePath); @@ -242,6 +254,7 @@ namespace CppSharp.Parser if (!Platform.IsLinux) { compiler = "gcc"; + // Search for the available GCC versions on the provided headers. var versions = Directory.EnumerateDirectories(Path.Combine(headersPath, "usr", "include", "c++")); @@ -252,15 +265,19 @@ namespace CppSharp.Parser string gccVersionPath = versions.First(); longVersion = shortVersion = gccVersionPath.Substring( gccVersionPath.LastIndexOf(Path.DirectorySeparatorChar) + 1); + return; } + var info = new ProcessStartInfo(Environment.GetEnvironmentVariable("CXX") ?? "gcc", "-v"); info.RedirectStandardError = true; info.CreateNoWindow = true; info.UseShellExecute = false; + var process = Process.Start(info); if (process == null) throw new SystemException("GCC compiler was not found."); + process.WaitForExit(); var output = process.StandardError.ReadToEnd(); @@ -282,8 +299,10 @@ namespace CppSharp.Parser string compiler, longVersion, shortVersion; GetUnixCompilerInfo(headersPath, out compiler, out longVersion, out shortVersion); - string[] versions = {longVersion, shortVersion}; - string[] triples = {"x86_64-linux-gnu", "x86_64-pc-linux-gnu"}; + AddSystemIncludeDirs(BuiltinsDir); + + string[] versions = { longVersion, shortVersion }; + string[] triples = { "x86_64-linux-gnu", "x86_64-pc-linux-gnu" }; if (compiler == "gcc") { foreach (var version in versions) @@ -319,8 +338,6 @@ namespace CppSharp.Parser { SetupArguments(); - SetupBuiltinIncludes(); - if (!NoBuiltinIncludes) SetupIncludes(); } @@ -380,25 +397,23 @@ namespace CppSharp.Parser AddArguments("-fno-rtti"); } - private void SetupBuiltinIncludes() + public string BuiltinsDir { - // If we have an explicit resource directory, then do nothing. - if (!string.IsNullOrEmpty(ResourceDir)) - return; - - // Else use the resource directory that was bundled next to the - // binaries by the build bootstrap scripts. - var assemblyDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - - if (!Directory.Exists(Path.Combine(assemblyDir, "lib", "clang"))) - throw new Exception("Clang resource folder 'lib/clang/' was not found."); - - ResourceDir = assemblyDir; + get + { + var assemblyDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var builtinsDir = Path.Combine(assemblyDir, "lib", "clang", ClangVersion, "include"); + return builtinsDir; + } } private void SetupIncludes() { - switch(Platform.Host) + // Check that the builtin includes folder exists. + if (!Directory.Exists(BuiltinsDir)) + throw new Exception($"Clang resource folder 'lib/clang/{ClangVersion}/include' was not found."); + + switch (Platform.Host) { case TargetPlatform.Windows: SetupMSVC();